dom/indexedDB/PBackgroundIDBRequest.ipdl
author Jan Varga <jan.varga@gmail.com>
Wed, 09 Sep 2015 13:15:05 +0200
changeset 261558 ac51f970e85df6b96344c11f3e2f056fb30dfdb9
parent 205216 14a2fe92d07b642025f16d2e527bb3b0d12d8807
child 282276 b04361fcbafcb20cfab95999b6a7b37633dd3bc7
permissions -rw-r--r--
Bug 771288 - Multiprocess FileHandle support (FileHandle on PBackground); r=baku

/* 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 PBackgroundIDBTransaction;
include protocol PBackgroundIDBVersionChangeTransaction;
include protocol PBackgroundMutableFile;
include protocol PBlob;

include PBackgroundIDBSharedTypes;

include "mozilla/dom/indexedDB/SerializationHelpers.h";

using struct mozilla::void_t
  from "ipc/IPCMessageUtils.h";

using class mozilla::dom::indexedDB::Key
  from "mozilla/dom/indexedDB/Key.h";

namespace mozilla {
namespace dom {
namespace indexedDB {

struct ObjectStoreAddResponse
{
  Key key;
};

struct ObjectStorePutResponse
{
  Key key;
};

struct ObjectStoreGetResponse
{
  SerializedStructuredCloneReadInfo cloneInfo;
};

struct ObjectStoreGetAllResponse
{
  SerializedStructuredCloneReadInfo[] cloneInfos;
};

struct ObjectStoreGetAllKeysResponse
{
  Key[] keys;
};

struct ObjectStoreDeleteResponse
{ };

struct ObjectStoreClearResponse
{ };

struct ObjectStoreCountResponse
{
  uint64_t count;
};

struct IndexGetResponse
{
  SerializedStructuredCloneReadInfo cloneInfo;
};

struct IndexGetKeyResponse
{
  Key key;
};

struct IndexGetAllResponse
{
  SerializedStructuredCloneReadInfo[] cloneInfos;
};

struct IndexGetAllKeysResponse
{
  Key[] keys;
};

struct IndexCountResponse
{
  uint64_t count;
};

union RequestResponse
{
  nsresult;
  ObjectStoreGetResponse;
  ObjectStoreAddResponse;
  ObjectStorePutResponse;
  ObjectStoreDeleteResponse;
  ObjectStoreClearResponse;
  ObjectStoreCountResponse;
  ObjectStoreGetAllResponse;
  ObjectStoreGetAllKeysResponse;
  IndexGetResponse;
  IndexGetKeyResponse;
  IndexGetAllResponse;
  IndexGetAllKeysResponse;
  IndexCountResponse;
};

protocol PBackgroundIDBRequest
{
  manager PBackgroundIDBTransaction or PBackgroundIDBVersionChangeTransaction;

child:
  __delete__(RequestResponse response);
};

} // namespace indexedDB
} // namespace dom
} // namespace mozilla