summaryrefslogtreecommitdiffstats
path: root/ipc/ipdl/test/cxx/PTestDataStructuresCommon.ipdlh
blob: 39d7f482b3f48ed4ab56beea1d0047862328916e (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
include protocol PTestDataStructuresSub;

using struct mozilla::null_t from "mozilla/ipc/IPCCore.h";
using nsIntRegion from "nsRegion.h";

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;
};

struct ActorWrapper {
    PTestDataStructuresSub actor;
};

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;
};

union ShmemUnion {
    int;
    Shmem;
};

struct Empty { };

} // namespace _foo
} // namespace mozilla