summaryrefslogtreecommitdiffstats
path: root/dom/quota/CommonMetadata.h
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 09:22:09 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 09:22:09 +0000
commit43a97878ce14b72f0981164f87f2e35e14151312 (patch)
tree620249daf56c0258faa40cbdcf9cfba06de2a846 /dom/quota/CommonMetadata.h
parentInitial commit. (diff)
downloadfirefox-43a97878ce14b72f0981164f87f2e35e14151312.tar.xz
firefox-43a97878ce14b72f0981164f87f2e35e14151312.zip
Adding upstream version 110.0.1.upstream/110.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'dom/quota/CommonMetadata.h')
-rw-r--r--dom/quota/CommonMetadata.h72
1 files changed, 72 insertions, 0 deletions
diff --git a/dom/quota/CommonMetadata.h b/dom/quota/CommonMetadata.h
new file mode 100644
index 0000000000..094c965195
--- /dev/null
+++ b/dom/quota/CommonMetadata.h
@@ -0,0 +1,72 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set ts=8 sts=2 et sw=2 tw=80: */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ * You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef DOM_QUOTA_COMMONMETADATA_H_
+#define DOM_QUOTA_COMMONMETADATA_H_
+
+#include <utility>
+#include "mozilla/dom/quota/Client.h"
+#include "mozilla/dom/quota/PersistenceType.h"
+#include "nsString.h"
+
+namespace mozilla::dom::quota {
+
+struct PrincipalMetadata {
+ nsCString mSuffix;
+ nsCString mGroup;
+ nsCString mOrigin;
+
+ // These explicit constructors exist to prevent accidental aggregate
+ // initialization which could for example initialize mSuffix as group and
+ // mGroup as origin (if only two string arguments are used).
+ PrincipalMetadata() = default;
+
+ PrincipalMetadata(nsCString aSuffix, nsCString aGroup, nsCString aOrigin)
+ : mSuffix{std::move(aSuffix)},
+ mGroup{std::move(aGroup)},
+ mOrigin{std::move(aOrigin)} {}
+};
+
+struct OriginMetadata : public PrincipalMetadata {
+ PersistenceType mPersistenceType;
+
+ OriginMetadata() = default;
+
+ OriginMetadata(nsCString aSuffix, nsCString aGroup, nsCString aOrigin,
+ PersistenceType aPersistenceType)
+ : PrincipalMetadata(std::move(aSuffix), std::move(aGroup),
+ std::move(aOrigin)),
+ mPersistenceType(aPersistenceType) {}
+
+ OriginMetadata(PrincipalMetadata&& aPrincipalMetadata,
+ PersistenceType aPersistenceType)
+ : PrincipalMetadata(std::move(aPrincipalMetadata)),
+ mPersistenceType(aPersistenceType) {}
+};
+
+struct FullOriginMetadata : OriginMetadata {
+ bool mPersisted;
+ int64_t mLastAccessTime;
+
+ FullOriginMetadata() = default;
+
+ FullOriginMetadata(OriginMetadata aOriginMetadata, bool aPersisted,
+ int64_t aLastAccessTime)
+ : OriginMetadata(std::move(aOriginMetadata)),
+ mPersisted(aPersisted),
+ mLastAccessTime(aLastAccessTime) {}
+};
+
+struct ClientMetadata : OriginMetadata {
+ const Client::Type mClientType;
+
+ ClientMetadata(OriginMetadata aOriginMetadata, Client::Type aClientType)
+ : OriginMetadata(std::move(aOriginMetadata)), mClientType(aClientType) {}
+};
+
+} // namespace mozilla::dom::quota
+
+#endif // DOM_QUOTA_COMMONMETADATA_H_