gecko/ipc/ipdl/test/cxx/PTestDataStructures.ipdl

220 lines
4.3 KiB
Plaintext
Raw Normal View History

include protocol PTestDataStructuresSub;
using mozilla::null_t;
using nsIntRegion;
namespace mozilla {
namespace _foo {
union IntDouble {
int;
double;
};
struct SIntDouble {
int i;
double d;
};
union IntDoubleArrays {
int;
int[];
double[];
};
struct SIntDoubleArrays {
int i;
int[] ai;
double[] ad;
};
union Actors {
int;
int[];
PTestDataStructuresSub[];
};
struct SActors {
int i;
int[] ai;
PTestDataStructuresSub[] ap;
};
union Unions {
int;
int[];
PTestDataStructuresSub[];
Actors[];
};
struct Structs {
int i;
int[] ai;
PTestDataStructuresSub[] ap;
SActors[] aa;
};
union WithStructs {
int;
int[];
PTestDataStructuresSub[];
SActors[];
Structs[];
};
struct WithUnions {
int i;
int[] ai;
PTestDataStructuresSub[] ap;
Actors[] aa;
Unions[] au;
};
struct CommonAttrs { bool dummy; };
struct FooAttrs { int dummy; };
struct BarAttrs { float dummy; };
union SpecificAttrs {
FooAttrs;
BarAttrs;
};
struct Attrs {
CommonAttrs common;
SpecificAttrs specific;
};
struct SetAttrs {
PTestDataStructuresSub x;
Attrs attrs;
};
union Op { null_t; SetAttrs; };
struct ShmemStruct {
int i;
Shmem mem;
};
} // namespace _foo
} // namespace mozilla
namespace mozilla {
namespace _ipdltest {
sync protocol PTestDataStructures {
manages PTestDataStructuresSub;
child:
PTestDataStructuresSub(int i);
Start();
parent:
__delete__();
sync Test1(int[] i1)
returns (int[] o1);
sync Test2(PTestDataStructuresSub[] i1)
returns (PTestDataStructuresSub[] o1);
sync Test3(IntDouble i1,
IntDouble i2)
returns (IntDouble o1,
IntDouble o2);
sync Test4(IntDouble[] i1)
returns (IntDouble[] o1);
sync Test5(IntDoubleArrays i1,
IntDoubleArrays i2,
IntDoubleArrays i3)
returns (IntDoubleArrays o1,
IntDoubleArrays o2,
IntDoubleArrays o3);
sync Test6(IntDoubleArrays[] i1)
returns (IntDoubleArrays[] o1);
sync Test7(Actors i1,
Actors i2,
Actors i3)
returns (Actors o1,
Actors o2,
Actors o3);
sync Test8(Actors[] i1)
returns (Actors[] o1);
sync Test9(Unions i1,
Unions i2,
Unions i3,
Unions i4)
returns (Unions o1,
Unions o2,
Unions o3,
Unions o4);
sync Test10(Unions[] i1)
returns (Unions[] o1);
sync Test11(SIntDouble i)
returns (SIntDouble o);
sync Test12(SIntDoubleArrays i)
returns (SIntDoubleArrays o);
sync Test13(SActors i)
returns (SActors o);
sync Test14(Structs i)
returns (Structs o);
sync Test15(WithStructs i1,
WithStructs i2,
WithStructs i3,
WithStructs i4,
WithStructs i5)
returns (WithStructs o1,
WithStructs o2,
WithStructs o3,
WithStructs o4,
WithStructs o5);
sync Test16(WithUnions i)
returns (WithUnions o);
sync Test17(Op[] ops);
// test that the ParamTraits<nsTArray>::Read() workaround for
// nsTArray's incorrect memmove() semantics works properly
// (nsIntRegion isn't memmove()able)
sync Test18(nsIntRegion[] ops);
state CONSTRUCTING:
send PTestDataStructuresSub goto CONSTRUCTING;
send Start goto TEST1;
state TEST1: recv Test1 goto TEST2;
state TEST2: recv Test2 goto TEST3;
state TEST3: recv Test3 goto TEST4;
state TEST4: recv Test4 goto TEST5;
state TEST5: recv Test5 goto TEST6;
state TEST6: recv Test6 goto TEST7;
state TEST7: recv Test7 goto TEST8;
state TEST8: recv Test8 goto TEST9;
state TEST9: recv Test9 goto TEST10;
state TEST10: recv Test10 goto TEST11;
state TEST11: recv Test11 goto TEST12;
state TEST12: recv Test12 goto TEST13;
state TEST13: recv Test13 goto TEST14;
state TEST14: recv Test14 goto TEST15;
state TEST15: recv Test15 goto TEST16;
state TEST16: recv Test16 goto TEST17;
state TEST17: recv Test17 goto TEST18;
state TEST18: recv Test18 goto DEAD;
state DEAD:
recv __delete__;
};
} // namespace _ipdltest
} // namespace mozilla