gecko-dev/dom/indexedDB/ipc/PIndexedDBDatabase.ipdl

70 lines
1.5 KiB
Plaintext

/* 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/. */
include protocol PIndexedDB;
include protocol PIndexedDBTransaction;
include "mozilla/dom/indexedDB/SerializationHelpers.h";
using struct mozilla::dom::indexedDB::DatabaseInfoGuts from "mozilla/dom/indexedDB/DatabaseInfo.h";
using struct mozilla::dom::indexedDB::ObjectStoreInfoGuts from "mozilla/dom/indexedDB/DatabaseInfo.h";
using mozilla::dom::indexedDB::IDBTransaction::Mode from "mozilla/dom/indexedDB/IDBTransaction.h";
namespace mozilla {
namespace dom {
namespace indexedDB {
namespace ipc {
struct NormalTransactionParams
{
nsString[] names;
Mode mode;
};
struct VersionChangeTransactionParams
{
DatabaseInfoGuts dbInfo;
ObjectStoreInfoGuts[] osInfo;
uint64_t oldVersion;
};
union TransactionParams
{
NormalTransactionParams;
VersionChangeTransactionParams;
};
} // namespace ipc
protocol PIndexedDBDatabase
{
manager PIndexedDB;
manages PIndexedDBTransaction;
parent:
__delete__();
Close(bool unlinked);
child:
Success(DatabaseInfoGuts dbInfo, ObjectStoreInfoGuts[] osInfo);
Error(nsresult rv);
Blocked(uint64_t oldVersion);
VersionChange(uint64_t oldVersion, uint64_t newVersion);
Invalidate();
both:
PIndexedDBTransaction(TransactionParams params);
};
} // namespace indexedDB
} // namespace dom
} // namespace mozilla