dom/quota/PersistenceType.h

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

michael@0 1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
michael@0 2 /* vim: set ts=2 et sw=2 tw=80: */
michael@0 3 /* This Source Code Form is subject to the terms of the Mozilla Public
michael@0 4 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
michael@0 5 * You can obtain one at http://mozilla.org/MPL/2.0/. */
michael@0 6
michael@0 7 #ifndef mozilla_dom_quota_persistencetype_h__
michael@0 8 #define mozilla_dom_quota_persistencetype_h__
michael@0 9
michael@0 10 #include "mozilla/dom/quota/QuotaCommon.h"
michael@0 11
michael@0 12 #include "mozilla/dom/StorageTypeBinding.h"
michael@0 13
michael@0 14 BEGIN_QUOTA_NAMESPACE
michael@0 15
michael@0 16 enum PersistenceType
michael@0 17 {
michael@0 18 PERSISTENCE_TYPE_PERSISTENT = 0,
michael@0 19 PERSISTENCE_TYPE_TEMPORARY,
michael@0 20
michael@0 21 // Only needed for IPC serialization helper, should never be used in code.
michael@0 22 PERSISTENCE_TYPE_INVALID
michael@0 23 };
michael@0 24
michael@0 25 inline void
michael@0 26 PersistenceTypeToText(PersistenceType aPersistenceType, nsACString& aText)
michael@0 27 {
michael@0 28 switch (aPersistenceType) {
michael@0 29 case PERSISTENCE_TYPE_PERSISTENT:
michael@0 30 aText.AssignLiteral("persistent");
michael@0 31 return;
michael@0 32 case PERSISTENCE_TYPE_TEMPORARY:
michael@0 33 aText.AssignLiteral("temporary");
michael@0 34 return;
michael@0 35
michael@0 36 case PERSISTENCE_TYPE_INVALID:
michael@0 37 default:
michael@0 38 MOZ_CRASH("Bad persistence type value!");
michael@0 39 }
michael@0 40
michael@0 41 MOZ_ASSUME_UNREACHABLE("Should never get here!");
michael@0 42 }
michael@0 43
michael@0 44 inline PersistenceType
michael@0 45 PersistenceTypeFromText(const nsACString& aText)
michael@0 46 {
michael@0 47 if (aText.EqualsLiteral("persistent")) {
michael@0 48 return PERSISTENCE_TYPE_PERSISTENT;
michael@0 49 }
michael@0 50
michael@0 51 if (aText.EqualsLiteral("temporary")) {
michael@0 52 return PERSISTENCE_TYPE_TEMPORARY;
michael@0 53 }
michael@0 54
michael@0 55 MOZ_ASSUME_UNREACHABLE("Should never get here!");
michael@0 56 }
michael@0 57
michael@0 58 inline nsresult
michael@0 59 NullablePersistenceTypeFromText(const nsACString& aText,
michael@0 60 Nullable<PersistenceType> *aPersistenceType)
michael@0 61 {
michael@0 62 if (aText.IsVoid()) {
michael@0 63 *aPersistenceType = Nullable<PersistenceType>();
michael@0 64 return NS_OK;
michael@0 65 }
michael@0 66
michael@0 67 if (aText.EqualsLiteral("persistent")) {
michael@0 68 *aPersistenceType = Nullable<PersistenceType>(PERSISTENCE_TYPE_PERSISTENT);
michael@0 69 return NS_OK;
michael@0 70 }
michael@0 71
michael@0 72 if (aText.EqualsLiteral("temporary")) {
michael@0 73 *aPersistenceType = Nullable<PersistenceType>(PERSISTENCE_TYPE_TEMPORARY);
michael@0 74 return NS_OK;
michael@0 75 }
michael@0 76
michael@0 77 return NS_ERROR_UNEXPECTED;
michael@0 78 }
michael@0 79
michael@0 80 inline mozilla::dom::StorageType
michael@0 81 PersistenceTypeToStorage(PersistenceType aPersistenceType)
michael@0 82 {
michael@0 83 return mozilla::dom::StorageType(static_cast<int>(aPersistenceType));
michael@0 84 }
michael@0 85
michael@0 86 inline PersistenceType
michael@0 87 PersistenceTypeFromStorage(const Optional<mozilla::dom::StorageType>& aStorage,
michael@0 88 PersistenceType aDefaultPersistenceType)
michael@0 89 {
michael@0 90 if (aStorage.WasPassed()) {
michael@0 91 return PersistenceType(static_cast<int>(aStorage.Value()));
michael@0 92 }
michael@0 93
michael@0 94 return aDefaultPersistenceType;
michael@0 95 }
michael@0 96
michael@0 97 END_QUOTA_NAMESPACE
michael@0 98
michael@0 99 #endif // mozilla_dom_quota_persistencetype_h__

mercurial