include protocol PTestDataStructuresSub; include PTestDataStructuresCommon; include "mozilla/GfxMessageUtils.h"; namespace mozilla { namespace _ipdltest { [ChildProc=any, ChildImpl=virtual, ParentImpl=virtual] sync protocol PTestDataStructures { manages PTestDataStructuresSub; child: async PTestDataStructuresSub(int i); async Start(); parent: async __delete__(); sync TestArrayOfInt(int[] i1) returns (int[] o1); sync TestArrayOfActor(PTestDataStructuresSub[] i1) returns (PTestDataStructuresSub[] o1); sync TestUnion(IntDouble i1, IntDouble i2) returns (IntDouble o1, IntDouble o2); sync TestArrayOfUnion(IntDouble[] i1) returns (IntDouble[] o1); sync TestUnionWithArray(IntDoubleArrays i1, IntDoubleArrays i2, IntDoubleArrays i3) returns (IntDoubleArrays o1, IntDoubleArrays o2, IntDoubleArrays o3); sync TestArrayOfUnionWithArray(IntDoubleArrays[] i1) returns (IntDoubleArrays[] o1); sync TestStructWithActor(ActorWrapper a1) returns (ActorWrapper o1); sync TestUnionWithActors(Actors i1, Actors i2, Actors i3) returns (Actors o1, Actors o2, Actors o3); sync TestArrayOfUnionWithActors(Actors[] i1) returns (Actors[] o1); sync TestUnions(Unions i1, Unions i2, Unions i3, Unions i4) returns (Unions o1, Unions o2, Unions o3, Unions o4); sync TestArrayOfUnions(Unions[] i1) returns (Unions[] o1); sync TestStruct(SIntDouble i) returns (SIntDouble o); sync TestStructWithArrays(SIntDoubleArrays i) returns (SIntDoubleArrays o); sync TestStructWithActors(SActors i) returns (SActors o); sync TestStructs(Structs i) returns (Structs o); sync TestUnionWithStructs(WithStructs i1, WithStructs i2, WithStructs i3, WithStructs i4, WithStructs i5) returns (WithStructs o1, WithStructs o2, WithStructs o3, WithStructs o4, WithStructs o5); sync TestStructWithUnions(WithUnions i) returns (WithUnions o); sync TestUnionWithCxx(Op[] ops); // test that the ParamTraits::Read() workaround for // nsTArray's incorrect memmove() semantics works properly // (nsIntRegion isn't memmove()able) sync TestNsIntRegion(nsIntRegion[] ops); }; } // namespace _ipdltest } // namespace mozilla