gecko-dev/ipc/ipdl/test/cxx/PTestJSON.ipdl

55 lines
832 B
Plaintext

include protocol PTestHandle;
using struct mozilla::void_t from "ipc/IPCMessageUtils.h";
using struct mozilla::null_t from "ipc/IPCMessageUtils.h";
namespace mozilla {
namespace _ipdltest {
union Key {
// int;
// double;
nsString;
};
struct KeyValue {
Key key;
JSONVariant value;
};
union JSONVariant {
void_t;
null_t;
bool;
int;
double;
nsString;
PTestHandle;
KeyValue[];
JSONVariant[];
};
sync protocol PTestJSON {
manages PTestHandle;
child:
async Start();
parent:
async PTestHandle();
sync Test(JSONVariant i)
returns (JSONVariant o);
async __delete__();
state START:
send Start goto TEST;
state TEST:
recv PTestHandle goto TEST;
recv Test goto TEST;
recv __delete__;
};
} // namespace mozilla
} // namespace _ipdltest