summaryrefslogtreecommitdiffstats
path: root/ipc/ipdl/test/cxx/PTestDataStructures.ipdl
blob: 59bf74652ff9fcc873ec5f9e2ab73e239f6eb7b6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
include protocol PTestDataStructuresSub;
include PTestDataStructuresCommon;

include "mozilla/GfxMessageUtils.h";

namespace mozilla {
namespace _ipdltest {

sync protocol PTestDataStructures {
    manages PTestDataStructuresSub;

child:
    async PTestDataStructuresSub(int i);

    async Start();

parent:
    async __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_0(ActorWrapper a1)
        returns (ActorWrapper 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);

    sync Dummy(ShmemUnion su) returns (ShmemUnion rsu);

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