michael@0: /* This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this file, michael@0: * You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: michael@0: include protocol PIndexedDB; michael@0: include protocol PIndexedDBTransaction; michael@0: michael@0: include "mozilla/dom/indexedDB/SerializationHelpers.h"; michael@0: michael@0: using struct mozilla::dom::indexedDB::DatabaseInfoGuts from "mozilla/dom/indexedDB/DatabaseInfo.h"; michael@0: using struct mozilla::dom::indexedDB::ObjectStoreInfoGuts from "mozilla/dom/indexedDB/DatabaseInfo.h"; michael@0: using mozilla::dom::indexedDB::IDBTransaction::Mode from "mozilla/dom/indexedDB/IDBTransaction.h"; michael@0: michael@0: namespace mozilla { michael@0: namespace dom { michael@0: namespace indexedDB { michael@0: michael@0: namespace ipc { michael@0: michael@0: struct NormalTransactionParams michael@0: { michael@0: nsString[] names; michael@0: Mode mode; michael@0: }; michael@0: michael@0: struct VersionChangeTransactionParams michael@0: { michael@0: DatabaseInfoGuts dbInfo; michael@0: ObjectStoreInfoGuts[] osInfo; michael@0: uint64_t oldVersion; michael@0: }; michael@0: michael@0: union TransactionParams michael@0: { michael@0: NormalTransactionParams; michael@0: VersionChangeTransactionParams; michael@0: }; michael@0: michael@0: } // namespace ipc michael@0: michael@0: protocol PIndexedDBDatabase michael@0: { michael@0: manager PIndexedDB; michael@0: michael@0: manages PIndexedDBTransaction; michael@0: michael@0: parent: michael@0: __delete__(); michael@0: michael@0: Close(bool unlinked); michael@0: michael@0: child: michael@0: Success(DatabaseInfoGuts dbInfo, ObjectStoreInfoGuts[] osInfo); michael@0: michael@0: Error(nsresult rv); michael@0: michael@0: Blocked(uint64_t oldVersion); michael@0: michael@0: VersionChange(uint64_t oldVersion, uint64_t newVersion); michael@0: michael@0: Invalidate(); michael@0: michael@0: both: michael@0: PIndexedDBTransaction(TransactionParams params); michael@0: }; michael@0: michael@0: } // namespace indexedDB michael@0: } // namespace dom michael@0: } // namespace mozilla