diff -r 000000000000 -r 6474c204b198 dom/indexedDB/ipc/PIndexedDBRequest.ipdl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dom/indexedDB/ipc/PIndexedDBRequest.ipdl Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,113 @@ +/* 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