1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
2 * vim: set ts=8 sw=4 et tw=80:
4 * ***** BEGIN LICENSE BLOCK *****
5 * Version: MPL 1.1/GPL 2.0/LGPL 2.1
7 * The contents of this file are subject to the Mozilla Public License Version
8 * 1.1 (the "License"); you may not use this file except in compliance with
9 * the License. You may obtain a copy of the License at
10 * http://www.mozilla.org/MPL/
12 * Software distributed under the License is distributed on an "AS IS" basis,
13 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
14 * for the specific language governing rights and limitations under the
17 * The Original Code is mozilla.org code.
19 * The Initial Developer of the Original Code is
20 * The Mozilla Foundation.
21 * Portions created by the Initial Developer are Copyright (C) 2010
22 * the Initial Developer. All Rights Reserved.
25 * Ben Newman <b{enjam,newma}n@mozilla.com> (original author)
27 * Alternatively, the contents of this file may be used under the terms of
28 * either of the GNU General Public License Version 2 or later (the "GPL"),
29 * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
30 * in which case the provisions of the GPL or the LGPL are applicable instead
31 * of those above. If you wish to allow use of your version of this file only
32 * under the terms of either the GPL or the LGPL, and not to allow others to
33 * use your version of this file under the terms of the MPL, indicate your
34 * decision by deleting the provisions above and replace them with the notice
35 * and other provisions required by the GPL or the LGPL. If you do not delete
36 * the provisions above, a recipient may use your version of this file under
37 * the terms of any one of the MPL, the GPL or the LGPL.
39 * ***** END LICENSE BLOCK ***** */
41 include protocol PContextWrapper;
43 include "mozilla/jsipc/CPOWTypes.h";
45 using mozilla::void_t;
54 nullable PObjectWrapper;
58 bool; // We'd like to use JSBool here, but JSBool is really JSIntn,
59 // and IPC::ParamTraits mistakes JSIntn for int.
62 union OperationStatus {
64 JSVariant; // Exception thrown.
67 rpc protocol PObjectWrapper
69 manager PContextWrapper;
72 __delete__(); // unroot
74 rpc AddProperty(nsString id)
75 returns (OperationStatus status);
77 rpc GetProperty(nsString id)
78 returns (OperationStatus status,
81 rpc SetProperty(nsString id,
83 returns (OperationStatus status,
86 rpc DelProperty(nsString id)
87 returns (OperationStatus status,
90 rpc NewEnumerateInit()
91 returns (OperationStatus status,
95 rpc NewEnumerateNext(JSVariant in_state)
96 returns (OperationStatus status,
100 async NewEnumerateDestroy(JSVariant in_state);
102 rpc NewResolve(nsString id,
104 returns (OperationStatus status,
105 nullable PObjectWrapper obj2);
107 rpc Convert(JSType type)
108 returns (OperationStatus status,
111 rpc Call(PObjectWrapper receiver,
113 returns (OperationStatus status,
116 rpc Construct(JSVariant[] argv)
117 returns (OperationStatus status,
118 nullable PObjectWrapper rval);
120 rpc HasInstance(JSVariant v)
121 returns (OperationStatus status,