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

114 lines
1.8 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 PBlob;
include protocol PIndexedDBCursor;
include protocol PIndexedDBIndex;
include protocol PIndexedDBObjectStore;
include "mozilla/dom/indexedDB/SerializationHelpers.h";
using class mozilla::dom::indexedDB::Key from "mozilla/dom/indexedDB/Key.h";
using struct mozilla::dom::indexedDB::SerializedStructuredCloneReadInfo from "mozilla/dom/indexedDB/IndexedDatabase.h";
using struct mozilla::void_t from "ipc/IPCMessageUtils.h";
namespace mozilla {
namespace dom {
namespace indexedDB {
namespace ipc {
struct GetResponse
{
SerializedStructuredCloneReadInfo cloneInfo;
PBlob[] blobs;
};
struct GetKeyResponse
{
Key key;
};
struct BlobArray
{
PBlob[] blobs;
};
struct GetAllResponse
{
SerializedStructuredCloneReadInfo[] cloneInfos;
BlobArray[] blobs;
};
struct GetAllKeysResponse
{
Key[] keys;
};
struct AddResponse
{
Key key;
};
struct PutResponse
{
Key key;
};
struct DeleteResponse
{ };
struct ClearResponse
{ };
struct CountResponse
{
uint64_t count;
};
union OpenCursorResponse
{
PIndexedDBCursor;
void_t;
};
struct ContinueResponse
{
Key key;
Key objectKey;
SerializedStructuredCloneReadInfo cloneInfo;
PBlob[] blobs;
};
union ResponseValue
{
nsresult;
GetResponse;
GetKeyResponse;
GetAllResponse;
GetAllKeysResponse;
AddResponse;
PutResponse;
DeleteResponse;
ClearResponse;
CountResponse;
OpenCursorResponse;
ContinueResponse;
};
} // namespace ipc
protocol PIndexedDBRequest
{
manager PIndexedDBObjectStore or PIndexedDBIndex or PIndexedDBCursor;
child:
__delete__(ResponseValue response);
};
} // namespace indexedDB
} // namespace dom
} // namespace mozilla