summaryrefslogtreecommitdiffstats
path: root/dom/indexedDB/IndexedDatabaseInlines.h
diff options
context:
space:
mode:
Diffstat (limited to 'dom/indexedDB/IndexedDatabaseInlines.h')
-rw-r--r--dom/indexedDB/IndexedDatabaseInlines.h106
1 files changed, 106 insertions, 0 deletions
diff --git a/dom/indexedDB/IndexedDatabaseInlines.h b/dom/indexedDB/IndexedDatabaseInlines.h
new file mode 100644
index 000000000..830c2f110
--- /dev/null
+++ b/dom/indexedDB/IndexedDatabaseInlines.h
@@ -0,0 +1,106 @@
+/* -*- 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 IndexedDatabaseInlines_h
+#define IndexedDatabaseInlines_h
+
+#ifndef mozilla_dom_indexeddatabase_h__
+#error Must include IndexedDatabase.h first
+#endif
+
+#include "FileInfo.h"
+#include "IDBMutableFile.h"
+#include "mozilla/dom/indexedDB/PBackgroundIDBSharedTypes.h"
+#include "mozilla/dom/File.h"
+#include "nsIInputStream.h"
+
+namespace mozilla {
+namespace dom {
+namespace indexedDB {
+
+inline
+StructuredCloneFile::StructuredCloneFile()
+ : mType(eBlob)
+{
+ MOZ_COUNT_CTOR(StructuredCloneFile);
+}
+
+inline
+StructuredCloneFile::~StructuredCloneFile()
+{
+ MOZ_COUNT_DTOR(StructuredCloneFile);
+}
+
+inline
+bool
+StructuredCloneFile::operator==(const StructuredCloneFile& aOther) const
+{
+ return this->mBlob == aOther.mBlob &&
+ this->mMutableFile == aOther.mMutableFile &&
+ this->mFileInfo == aOther.mFileInfo &&
+ this->mType == aOther.mType;
+}
+
+inline
+StructuredCloneReadInfo::StructuredCloneReadInfo()
+ : mDatabase(nullptr)
+ , mHasPreprocessInfo(false)
+{
+ MOZ_COUNT_CTOR(StructuredCloneReadInfo);
+}
+
+inline
+StructuredCloneReadInfo::StructuredCloneReadInfo(
+ StructuredCloneReadInfo&& aCloneReadInfo)
+ : mData(Move(aCloneReadInfo.mData))
+{
+ MOZ_ASSERT(&aCloneReadInfo != this);
+ MOZ_COUNT_CTOR(StructuredCloneReadInfo);
+
+ mFiles.Clear();
+ mFiles.SwapElements(aCloneReadInfo.mFiles);
+ mDatabase = aCloneReadInfo.mDatabase;
+ aCloneReadInfo.mDatabase = nullptr;
+ mHasPreprocessInfo = aCloneReadInfo.mHasPreprocessInfo;
+ aCloneReadInfo.mHasPreprocessInfo = false;
+}
+
+inline
+StructuredCloneReadInfo::StructuredCloneReadInfo(
+ SerializedStructuredCloneReadInfo&& aCloneReadInfo)
+ : mData(Move(aCloneReadInfo.data().data))
+ , mDatabase(nullptr)
+ , mHasPreprocessInfo(aCloneReadInfo.hasPreprocessInfo())
+{
+ MOZ_COUNT_CTOR(StructuredCloneReadInfo);
+}
+
+inline
+StructuredCloneReadInfo::~StructuredCloneReadInfo()
+{
+ MOZ_COUNT_DTOR(StructuredCloneReadInfo);
+}
+
+inline StructuredCloneReadInfo&
+StructuredCloneReadInfo::operator=(StructuredCloneReadInfo&& aCloneReadInfo)
+{
+ MOZ_ASSERT(&aCloneReadInfo != this);
+
+ mData = Move(aCloneReadInfo.mData);
+ mFiles.Clear();
+ mFiles.SwapElements(aCloneReadInfo.mFiles);
+ mDatabase = aCloneReadInfo.mDatabase;
+ aCloneReadInfo.mDatabase = nullptr;
+ mHasPreprocessInfo = aCloneReadInfo.mHasPreprocessInfo;
+ aCloneReadInfo.mHasPreprocessInfo = false;
+ return *this;
+}
+
+} // namespace indexedDB
+} // namespace dom
+} // namespace mozilla
+
+#endif // IndexedDatabaseInlines_h