OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // The file ipc_messsage_macros.h defines the classes for individual | 5 // The file ipc_messsage_macros.h defines the classes for individual |
6 // messages. This file works similarly, except that it defines the | 6 // messages. This file works similarly, except that it defines the |
7 // implementations of the constructors and the logging methods. (These only | 7 // implementations of the constructors and the logging methods. (These only |
8 // have to be generated once). It is meant to be included in a XXX_messages.cc | 8 // have to be generated once). It is meant to be included in a XXX_messages.cc |
9 // file. | 9 // file right before including XXX_messages_internal.h. |
10 | 10 |
11 #ifndef IPC_IPC_MESSAGE_IMPL_MACROS_H_ | 11 #ifndef IPC_IPC_MESSAGE_IMPL_MACROS_H_ |
12 #define IPC_IPC_MESSAGE_IMPL_MACROS_H_ | 12 #define IPC_IPC_MESSAGE_IMPL_MACROS_H_ |
13 | 13 |
14 #include "ipc/ipc_message_utils.h" | 14 #include "ipc/ipc_message_utils.h" |
15 #include "ipc/ipc_message_utils_impl.h" | 15 #include "ipc/ipc_message_utils_impl.h" |
16 | 16 |
17 #ifndef MESSAGES_INTERNAL_IMPL_FILE | |
18 #error This file should only be included by X_messages.cc, which needs to define
MESSAGES_INTERNAL_IMPL_FILE first. | |
19 #endif | |
20 | |
21 // Trick xcode into seeing the possible real dependencies since they | |
22 // don't understand #include MESSAGES_INTERNAL_FILE. See http://crbug.com/7828 | |
23 #if 0 | |
24 #include "ipc/ipc_sync_message_unittest.h" | |
25 #include "chrome/common/automation_messages_internal.h" | |
26 #include "chrome/common/devtools_messages_internal.h" | |
27 #include "chrome/common/gpu_messages_internal.h" | |
28 #include "chrome/common/nacl_messages_internal.h" | |
29 #include "chrome/common/plugin_messages_internal.h" | |
30 #include "chrome/common/render_messages_internal.h" | |
31 #include "chrome/common/service_messages_internal.h" | |
32 #include "chrome/common/utility_messages_internal.h" | |
33 #include "chrome/common/worker_messages_internal.h" | |
34 #include "ppapi/proxy/ppapi_messages_internal.h" | |
35 #endif | |
36 | |
37 // These are probalby still defined because of ipc_message_macros.h should be | |
38 // included before us for the class/method declarations. | |
39 #undef IPC_BEGIN_MESSAGES | |
40 #undef IPC_END_MESSAGES | |
41 #undef IPC_MESSAGE_CONTROL0 | |
42 #undef IPC_MESSAGE_CONTROL1 | |
43 #undef IPC_MESSAGE_CONTROL2 | |
44 #undef IPC_MESSAGE_CONTROL3 | |
45 #undef IPC_MESSAGE_CONTROL4 | |
46 #undef IPC_MESSAGE_CONTROL5 | |
47 #undef IPC_MESSAGE_ROUTED0 | |
48 #undef IPC_MESSAGE_ROUTED1 | |
49 #undef IPC_MESSAGE_ROUTED2 | |
50 #undef IPC_MESSAGE_ROUTED3 | |
51 #undef IPC_MESSAGE_ROUTED4 | |
52 #undef IPC_MESSAGE_ROUTED5 | |
53 #undef IPC_SYNC_MESSAGE_CONTROL0_0 | |
54 #undef IPC_SYNC_MESSAGE_CONTROL0_1 | |
55 #undef IPC_SYNC_MESSAGE_CONTROL0_2 | |
56 #undef IPC_SYNC_MESSAGE_CONTROL0_3 | |
57 #undef IPC_SYNC_MESSAGE_CONTROL1_0 | |
58 #undef IPC_SYNC_MESSAGE_CONTROL1_1 | |
59 #undef IPC_SYNC_MESSAGE_CONTROL1_2 | |
60 #undef IPC_SYNC_MESSAGE_CONTROL1_3 | |
61 #undef IPC_SYNC_MESSAGE_CONTROL2_0 | |
62 #undef IPC_SYNC_MESSAGE_CONTROL2_1 | |
63 #undef IPC_SYNC_MESSAGE_CONTROL2_2 | |
64 #undef IPC_SYNC_MESSAGE_CONTROL2_3 | |
65 #undef IPC_SYNC_MESSAGE_CONTROL3_1 | |
66 #undef IPC_SYNC_MESSAGE_CONTROL3_2 | |
67 #undef IPC_SYNC_MESSAGE_CONTROL3_3 | |
68 #undef IPC_SYNC_MESSAGE_CONTROL3_4 | |
69 #undef IPC_SYNC_MESSAGE_CONTROL4_1 | |
70 #undef IPC_SYNC_MESSAGE_CONTROL4_2 | |
71 #undef IPC_SYNC_MESSAGE_ROUTED0_0 | |
72 #undef IPC_SYNC_MESSAGE_ROUTED0_1 | |
73 #undef IPC_SYNC_MESSAGE_ROUTED0_2 | |
74 #undef IPC_SYNC_MESSAGE_ROUTED0_3 | |
75 #undef IPC_SYNC_MESSAGE_ROUTED1_0 | |
76 #undef IPC_SYNC_MESSAGE_ROUTED1_1 | |
77 #undef IPC_SYNC_MESSAGE_ROUTED1_2 | |
78 #undef IPC_SYNC_MESSAGE_ROUTED1_3 | |
79 #undef IPC_SYNC_MESSAGE_ROUTED1_4 | |
80 #undef IPC_SYNC_MESSAGE_ROUTED2_0 | |
81 #undef IPC_SYNC_MESSAGE_ROUTED2_1 | |
82 #undef IPC_SYNC_MESSAGE_ROUTED2_2 | |
83 #undef IPC_SYNC_MESSAGE_ROUTED2_3 | |
84 #undef IPC_SYNC_MESSAGE_ROUTED3_0 | |
85 #undef IPC_SYNC_MESSAGE_ROUTED3_1 | |
86 #undef IPC_SYNC_MESSAGE_ROUTED3_2 | |
87 #undef IPC_SYNC_MESSAGE_ROUTED3_3 | |
88 #undef IPC_SYNC_MESSAGE_ROUTED3_4 | |
89 #undef IPC_SYNC_MESSAGE_ROUTED4_0 | |
90 #undef IPC_SYNC_MESSAGE_ROUTED4_1 | |
91 #undef IPC_SYNC_MESSAGE_ROUTED4_2 | |
92 #undef IPC_SYNC_MESSAGE_ROUTED4_3 | |
93 #undef IPC_SYNC_MESSAGE_ROUTED5_0 | |
94 #undef IPC_SYNC_MESSAGE_ROUTED5_1 | |
95 #undef IPC_SYNC_MESSAGE_ROUTED5_2 | |
96 #undef IPC_SYNC_MESSAGE_ROUTED5_3 | |
97 | |
98 // These don't do anything during this pass. | |
99 #define IPC_BEGIN_MESSAGES(label) | |
100 #define IPC_END_MESSAGES(label) | |
101 | |
102 // Every class must include a destructor and a log method that is keyed to the | 17 // Every class must include a destructor and a log method that is keyed to the |
103 // specific types. | 18 // specific types. |
104 #define IPC_ASYNC_MESSAGE_DTOR_AND_LOG(msg_class) \ | 19 #define IPC_ASYNC_MESSAGE_DTOR_AND_LOG(msg_class) \ |
105 msg_class::~msg_class() {} \ | 20 msg_class::~msg_class() {} \ |
106 \ | 21 \ |
107 void msg_class::Log(const Message* msg, std::string* l) { \ | 22 void msg_class::Log(std::string* name, const Message* msg, std::string* l) { \ |
| 23 if (name) \ |
| 24 *name = #msg_class; \ |
| 25 if (!msg || !l) \ |
| 26 return; \ |
108 Param p; \ | 27 Param p; \ |
109 if (Read(msg, &p)) \ | 28 if (Read(msg, &p)) \ |
110 IPC::LogParam(p, l); \ | 29 IPC::LogParam(p, l); \ |
111 } | 30 } |
112 | 31 |
113 // This derives from IPC::Message and thus doesn't need us to keep the | 32 // This derives from IPC::Message and thus doesn't need us to keep the |
114 // implementations in this impl file. | 33 // implementations in this impl file. |
115 #define IPC_MESSAGE_CONTROL0(msg_class) | 34 #define IPC_MESSAGE_CONTROL0_EXTRA(msg_class) |
116 | 35 |
117 #define IPC_MESSAGE_CONTROL1(msg_class, type1) \ | 36 #define IPC_MESSAGE_CONTROL1_EXTRA(msg_class, type1) \ |
118 msg_class::msg_class(const type1& arg1) \ | 37 msg_class::msg_class(const type1& arg1) \ |
119 : IPC::MessageWithTuple< Tuple1<type1> >( \ | 38 : IPC::MessageWithTuple< Tuple1<type1> >( \ |
120 MSG_ROUTING_CONTROL, ID, MakeRefTuple(arg1)) {} \ | 39 MSG_ROUTING_CONTROL, ID, MakeRefTuple(arg1)) {} \ |
121 \ | 40 \ |
122 IPC_ASYNC_MESSAGE_DTOR_AND_LOG(msg_class) | 41 IPC_ASYNC_MESSAGE_DTOR_AND_LOG(msg_class) |
123 | 42 |
124 #define IPC_MESSAGE_CONTROL2(msg_class, type1, type2) \ | 43 #define IPC_MESSAGE_CONTROL2_EXTRA(msg_class, type1, type2) \ |
125 msg_class::msg_class(const type1& arg1, const type2& arg2) \ | 44 msg_class::msg_class(const type1& arg1, const type2& arg2) \ |
126 : IPC::MessageWithTuple< Tuple2<type1, type2> >( \ | 45 : IPC::MessageWithTuple< Tuple2<type1, type2> >( \ |
127 MSG_ROUTING_CONTROL, ID, MakeRefTuple(arg1, arg2)) {} \ | 46 MSG_ROUTING_CONTROL, ID, MakeRefTuple(arg1, arg2)) {} \ |
128 \ | 47 \ |
129 IPC_ASYNC_MESSAGE_DTOR_AND_LOG(msg_class) | 48 IPC_ASYNC_MESSAGE_DTOR_AND_LOG(msg_class) |
130 | 49 |
131 #define IPC_MESSAGE_CONTROL3(msg_class, type1, type2, type3) \ | 50 #define IPC_MESSAGE_CONTROL3_EXTRA(msg_class, type1, type2, type3) \ |
132 msg_class::msg_class(const type1& arg1, const type2& arg2, \ | 51 msg_class::msg_class(const type1& arg1, const type2& arg2, \ |
133 const type3& arg3) \ | 52 const type3& arg3) \ |
134 : IPC::MessageWithTuple< Tuple3<type1, type2, type3> >( \ | 53 : IPC::MessageWithTuple< Tuple3<type1, type2, type3> >( \ |
135 MSG_ROUTING_CONTROL, ID, MakeRefTuple(arg1, arg2, arg3)) {} \ | 54 MSG_ROUTING_CONTROL, ID, MakeRefTuple(arg1, arg2, arg3)) {} \ |
136 \ | 55 \ |
137 IPC_ASYNC_MESSAGE_DTOR_AND_LOG(msg_class) | 56 IPC_ASYNC_MESSAGE_DTOR_AND_LOG(msg_class) |
138 | 57 |
139 #define IPC_MESSAGE_CONTROL4(msg_class, type1, type2, type3, type4) \ | 58 #define IPC_MESSAGE_CONTROL4_EXTRA(msg_class, type1, type2, type3, type4) \ |
140 msg_class::msg_class(const type1& arg1, const type2& arg2, \ | 59 msg_class::msg_class(const type1& arg1, const type2& arg2, \ |
141 const type3& arg3, const type4& arg4) \ | 60 const type3& arg3, const type4& arg4) \ |
142 : IPC::MessageWithTuple< Tuple4<type1, type2, type3, type4> >( \ | 61 : IPC::MessageWithTuple< Tuple4<type1, type2, type3, type4> >( \ |
143 MSG_ROUTING_CONTROL, ID, MakeRefTuple(arg1, arg2, arg3, arg4)) {} \ | 62 MSG_ROUTING_CONTROL, ID, MakeRefTuple(arg1, arg2, arg3, arg4)) {} \ |
144 \ | 63 \ |
145 IPC_ASYNC_MESSAGE_DTOR_AND_LOG(msg_class) | 64 IPC_ASYNC_MESSAGE_DTOR_AND_LOG(msg_class) |
146 | 65 |
147 #define IPC_MESSAGE_CONTROL5(msg_class, type1, type2, type3, type4, type5) \ | 66 #define IPC_MESSAGE_CONTROL5_EXTRA(msg_class, type1, type2, type3, type4, type5)
\ |
148 msg_class::msg_class(const type1& arg1, const type2& arg2, \ | 67 msg_class::msg_class(const type1& arg1, const type2& arg2, \ |
149 const type3& arg3, const type4& arg4, \ | 68 const type3& arg3, const type4& arg4, \ |
150 const type5& arg5) \ | 69 const type5& arg5) \ |
151 : IPC::MessageWithTuple< Tuple5<type1, type2, type3, type4, type5> >( \ | 70 : IPC::MessageWithTuple< Tuple5<type1, type2, type3, type4, type5> >( \ |
152 MSG_ROUTING_CONTROL, ID, \ | 71 MSG_ROUTING_CONTROL, ID, \ |
153 MakeRefTuple(arg1, arg2, arg3, arg4, arg5)) {} \ | 72 MakeRefTuple(arg1, arg2, arg3, arg4, arg5)) {} \ |
154 \ | 73 \ |
155 IPC_ASYNC_MESSAGE_DTOR_AND_LOG(msg_class) | 74 IPC_ASYNC_MESSAGE_DTOR_AND_LOG(msg_class) |
156 | 75 |
157 // This derives from IPC::Message and thus doesn't need us to keep the | 76 // This derives from IPC::Message and thus doesn't need us to keep the |
158 // implementations in this impl file. | 77 // implementations in this impl file. |
159 #define IPC_MESSAGE_ROUTED0(msg_class) | 78 #define IPC_MESSAGE_ROUTED0_EXTRA(msg_class) |
160 | 79 |
161 #define IPC_MESSAGE_ROUTED1(msg_class, type1) \ | 80 #define IPC_MESSAGE_ROUTED1_EXTRA(msg_class, type1) \ |
162 msg_class::msg_class(int32 routing_id, const type1& arg1) \ | 81 msg_class::msg_class(int32 routing_id, const type1& arg1) \ |
163 : IPC::MessageWithTuple< Tuple1<type1> >( \ | 82 : IPC::MessageWithTuple< Tuple1<type1> >( \ |
164 routing_id, ID, MakeRefTuple(arg1)) {} \ | 83 routing_id, ID, MakeRefTuple(arg1)) {} \ |
165 \ | 84 \ |
166 IPC_ASYNC_MESSAGE_DTOR_AND_LOG(msg_class) | 85 IPC_ASYNC_MESSAGE_DTOR_AND_LOG(msg_class) |
167 | 86 |
168 #define IPC_MESSAGE_ROUTED2(msg_class, type1, type2) \ | 87 #define IPC_MESSAGE_ROUTED2_EXTRA(msg_class, type1, type2) \ |
169 msg_class::msg_class(int32 routing_id, const type1& arg1, const type2& arg2) \ | 88 msg_class::msg_class(int32 routing_id, const type1& arg1, const type2& arg2) \ |
170 : IPC::MessageWithTuple< Tuple2<type1, type2> >( \ | 89 : IPC::MessageWithTuple< Tuple2<type1, type2> >( \ |
171 routing_id, ID, MakeRefTuple(arg1, arg2)) {} \ | 90 routing_id, ID, MakeRefTuple(arg1, arg2)) {} \ |
172 \ | 91 \ |
173 IPC_ASYNC_MESSAGE_DTOR_AND_LOG(msg_class) | 92 IPC_ASYNC_MESSAGE_DTOR_AND_LOG(msg_class) |
174 | 93 |
175 | 94 |
176 #define IPC_MESSAGE_ROUTED3(msg_class, type1, type2, type3) \ | 95 #define IPC_MESSAGE_ROUTED3_EXTRA(msg_class, type1, type2, type3) \ |
177 msg_class::msg_class(int32 routing_id, const type1& arg1, \ | 96 msg_class::msg_class(int32 routing_id, const type1& arg1, \ |
178 const type2& arg2, const type3& arg3) \ | 97 const type2& arg2, const type3& arg3) \ |
179 : IPC::MessageWithTuple< Tuple3<type1, type2, type3> >( \ | 98 : IPC::MessageWithTuple< Tuple3<type1, type2, type3> >( \ |
180 routing_id, ID, MakeRefTuple(arg1, arg2, arg3)) {} \ | 99 routing_id, ID, MakeRefTuple(arg1, arg2, arg3)) {} \ |
181 \ | 100 \ |
182 IPC_ASYNC_MESSAGE_DTOR_AND_LOG(msg_class) | 101 IPC_ASYNC_MESSAGE_DTOR_AND_LOG(msg_class) |
183 | 102 |
184 #define IPC_MESSAGE_ROUTED4(msg_class, type1, type2, type3, type4) \ | 103 #define IPC_MESSAGE_ROUTED4_EXTRA(msg_class, type1, type2, type3, type4) \ |
185 msg_class::msg_class(int32 routing_id, const type1& arg1, const type2& arg2, \ | 104 msg_class::msg_class(int32 routing_id, const type1& arg1, const type2& arg2, \ |
186 const type3& arg3, const type4& arg4) \ | 105 const type3& arg3, const type4& arg4) \ |
187 : IPC::MessageWithTuple< Tuple4<type1, type2, type3, type4> >( \ | 106 : IPC::MessageWithTuple< Tuple4<type1, type2, type3, type4> >( \ |
188 routing_id, ID, MakeRefTuple(arg1, arg2, arg3, arg4)) {} \ | 107 routing_id, ID, MakeRefTuple(arg1, arg2, arg3, arg4)) {} \ |
189 \ | 108 \ |
190 IPC_ASYNC_MESSAGE_DTOR_AND_LOG(msg_class) | 109 IPC_ASYNC_MESSAGE_DTOR_AND_LOG(msg_class) |
191 | 110 |
192 #define IPC_MESSAGE_ROUTED5(msg_class, type1, type2, type3, type4, type5) \ | 111 #define IPC_MESSAGE_ROUTED5_EXTRA(msg_class, type1, type2, type3, type4, type5)
\ |
193 msg_class::msg_class(int32 routing_id, const type1& arg1, \ | 112 msg_class::msg_class(int32 routing_id, const type1& arg1, \ |
194 const type2& arg2, const type3& arg3, \ | 113 const type2& arg2, const type3& arg3, \ |
195 const type4& arg4, const type5& arg5) \ | 114 const type4& arg4, const type5& arg5) \ |
196 : IPC::MessageWithTuple< Tuple5<type1, type2, type3, type4, type5> >( \ | 115 : IPC::MessageWithTuple< Tuple5<type1, type2, type3, type4, type5> >( \ |
197 routing_id, ID, MakeRefTuple(arg1, arg2, arg3, arg4, arg5)) {} \ | 116 routing_id, ID, MakeRefTuple(arg1, arg2, arg3, arg4, arg5)) {} \ |
198 \ | 117 \ |
199 IPC_ASYNC_MESSAGE_DTOR_AND_LOG(msg_class) | 118 IPC_ASYNC_MESSAGE_DTOR_AND_LOG(msg_class) |
200 | 119 |
201 // ----------------------------------------------------------------------------- | 120 // ----------------------------------------------------------------------------- |
202 | 121 |
203 // Every class must include a destructor and a log method that is keyed to the | 122 // Every class must include a destructor and a log method that is keyed to the |
204 // specific types. | 123 // specific types. |
205 #define IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) \ | 124 #define IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) \ |
206 msg_class::~msg_class() {} \ | 125 msg_class::~msg_class() {} \ |
207 \ | 126 \ |
208 void msg_class::Log(const Message* msg, std::string* l) { \ | 127 void msg_class::Log(std::string* name, const Message* msg, std::string* l) { \ |
| 128 if (name) \ |
| 129 *name = #msg_class; \ |
| 130 if (!msg || !l) \ |
| 131 return; \ |
209 if (msg->is_sync()) { \ | 132 if (msg->is_sync()) { \ |
210 TupleTypes<SendParam>::ValueTuple p; \ | 133 TupleTypes<SendParam>::ValueTuple p; \ |
211 if (ReadSendParam(msg, &p)) \ | 134 if (ReadSendParam(msg, &p)) \ |
212 IPC::LogParam(p, l); \ | 135 IPC::LogParam(p, l); \ |
213 \ | |
214 AddOutputParamsToLog(msg, l); \ | 136 AddOutputParamsToLog(msg, l); \ |
215 } else { \ | 137 } else { \ |
216 TupleTypes<ReplyParam>::ValueTuple p; \ | 138 TupleTypes<ReplyParam>::ValueTuple p; \ |
217 if (ReadReplyParam(msg, &p)) \ | 139 if (ReadReplyParam(msg, &p)) \ |
218 IPC::LogParam(p, l); \ | 140 IPC::LogParam(p, l); \ |
219 } \ | 141 } \ |
220 } | 142 } |
221 | 143 |
222 #define IPC_SYNC_MESSAGE_CONTROL0_0(msg_class) \ | 144 #define IPC_SYNC_MESSAGE_CONTROL0_0_EXTRA(msg_class) \ |
223 msg_class::msg_class() \ | 145 msg_class::msg_class() \ |
224 : IPC::MessageWithReply<Tuple0, Tuple0 >( \ | 146 : IPC::MessageWithReply<Tuple0, Tuple0 >( \ |
225 MSG_ROUTING_CONTROL, ID, \ | 147 MSG_ROUTING_CONTROL, ID, \ |
226 MakeTuple(), MakeTuple()) {} \ | 148 MakeTuple(), MakeTuple()) {} \ |
227 \ | 149 \ |
228 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) | 150 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) |
229 | 151 |
230 #define IPC_SYNC_MESSAGE_CONTROL0_1(msg_class, type1_out) \ | 152 #define IPC_SYNC_MESSAGE_CONTROL0_1_EXTRA(msg_class, type1_out) \ |
231 msg_class::msg_class(type1_out* arg1) \ | 153 msg_class::msg_class(type1_out* arg1) \ |
232 : IPC::MessageWithReply<Tuple0, Tuple1<type1_out&> >( \ | 154 : IPC::MessageWithReply<Tuple0, Tuple1<type1_out&> >( \ |
233 MSG_ROUTING_CONTROL, ID, \ | 155 MSG_ROUTING_CONTROL, ID, \ |
234 MakeTuple(), MakeRefTuple(*arg1)) {} \ | 156 MakeTuple(), MakeRefTuple(*arg1)) {} \ |
235 \ | 157 \ |
236 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) | 158 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) |
237 | 159 |
238 #define IPC_SYNC_MESSAGE_CONTROL0_2(msg_class, type1_out, type2_out) \ | 160 #define IPC_SYNC_MESSAGE_CONTROL0_2_EXTRA(msg_class, type1_out, type2_out) \ |
239 msg_class::msg_class(type1_out* arg1, type2_out* arg2) \ | 161 msg_class::msg_class(type1_out* arg1, type2_out* arg2) \ |
240 : IPC::MessageWithReply<Tuple0, Tuple2<type1_out&, type2_out&> >( \ | 162 : IPC::MessageWithReply<Tuple0, Tuple2<type1_out&, type2_out&> >( \ |
241 MSG_ROUTING_CONTROL, ID, \ | 163 MSG_ROUTING_CONTROL, ID, \ |
242 MakeTuple(), MakeRefTuple(*arg1, *arg2)) {} \ | 164 MakeTuple(), MakeRefTuple(*arg1, *arg2)) {} \ |
243 \ | 165 \ |
244 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) | 166 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) |
245 | 167 |
246 #define IPC_SYNC_MESSAGE_CONTROL0_3(msg_class, type1_out, type2_out, \ | 168 #define IPC_SYNC_MESSAGE_CONTROL0_3_EXTRA(msg_class, type1_out, type2_out, \ |
247 type3_out) \ | 169 type3_out) \ |
248 msg_class::msg_class(type1_out* arg1, type2_out* arg2, type3_out* arg3) \ | 170 msg_class::msg_class(type1_out* arg1, type2_out* arg2, type3_out* arg3) \ |
249 : IPC::MessageWithReply<Tuple0, Tuple3<type1_out&, type2_out&, \ | 171 : IPC::MessageWithReply<Tuple0, Tuple3<type1_out&, type2_out&, \ |
250 type3_out&> >( \ | 172 type3_out&> >( \ |
251 MSG_ROUTING_CONTROL, ID, \ | 173 MSG_ROUTING_CONTROL, ID, \ |
252 MakeTuple(), MakeRefTuple(*arg1, *arg2, *arg3)) {} \ | 174 MakeTuple(), MakeRefTuple(*arg1, *arg2, *arg3)) {} \ |
253 \ | 175 \ |
254 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) | 176 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) |
255 | 177 |
256 | 178 |
257 #define IPC_SYNC_MESSAGE_CONTROL1_0(msg_class, type1_in) \ | 179 #define IPC_SYNC_MESSAGE_CONTROL1_0_EXTRA(msg_class, type1_in) \ |
258 msg_class::msg_class(const type1_in& arg1) \ | 180 msg_class::msg_class(const type1_in& arg1) \ |
259 : IPC::MessageWithReply<Tuple1<type1_in>, Tuple0 >( \ | 181 : IPC::MessageWithReply<Tuple1<type1_in>, Tuple0 >( \ |
260 MSG_ROUTING_CONTROL, ID, \ | 182 MSG_ROUTING_CONTROL, ID, \ |
261 MakeRefTuple(arg1), MakeTuple()) {} \ | 183 MakeRefTuple(arg1), MakeTuple()) {} \ |
262 \ | 184 \ |
263 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) | 185 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) |
264 | 186 |
265 #define IPC_SYNC_MESSAGE_CONTROL1_1(msg_class, type1_in, type1_out) \ | 187 #define IPC_SYNC_MESSAGE_CONTROL1_1_EXTRA(msg_class, type1_in, type1_out) \ |
266 msg_class::msg_class(const type1_in& arg1, type1_out* arg2) \ | 188 msg_class::msg_class(const type1_in& arg1, type1_out* arg2) \ |
267 : IPC::MessageWithReply<Tuple1<type1_in>, Tuple1<type1_out&> >( \ | 189 : IPC::MessageWithReply<Tuple1<type1_in>, Tuple1<type1_out&> >( \ |
268 MSG_ROUTING_CONTROL, ID, \ | 190 MSG_ROUTING_CONTROL, ID, \ |
269 MakeRefTuple(arg1), MakeRefTuple(*arg2)) {} \ | 191 MakeRefTuple(arg1), MakeRefTuple(*arg2)) {} \ |
270 \ | 192 \ |
271 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) | 193 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) |
272 | 194 |
273 #define IPC_SYNC_MESSAGE_CONTROL1_2(msg_class, type1_in, type1_out, type2_out) \ | 195 #define IPC_SYNC_MESSAGE_CONTROL1_2_EXTRA(msg_class, type1_in, type1_out, type2_
out) \ |
274 msg_class::msg_class(const type1_in& arg1, type1_out* arg2, type2_out* arg3) \ | 196 msg_class::msg_class(const type1_in& arg1, type1_out* arg2, type2_out* arg3) \ |
275 : IPC::MessageWithReply<Tuple1<type1_in>, \ | 197 : IPC::MessageWithReply<Tuple1<type1_in>, \ |
276 Tuple2<type1_out&, type2_out&> >( \ | 198 Tuple2<type1_out&, type2_out&> >( \ |
277 MSG_ROUTING_CONTROL, ID, \ | 199 MSG_ROUTING_CONTROL, ID, \ |
278 MakeRefTuple(arg1), MakeRefTuple(*arg2, *arg3)) {} \ | 200 MakeRefTuple(arg1), MakeRefTuple(*arg2, *arg3)) {} \ |
279 \ | 201 \ |
280 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) | 202 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) |
281 | 203 |
282 #define IPC_SYNC_MESSAGE_CONTROL1_3(msg_class, type1_in, type1_out, \ | 204 #define IPC_SYNC_MESSAGE_CONTROL1_3_EXTRA(msg_class, type1_in, type1_out, \ |
283 type2_out, type3_out) \ | 205 type2_out, type3_out) \ |
284 msg_class::msg_class(const type1_in& arg1, type1_out* arg2, \ | 206 msg_class::msg_class(const type1_in& arg1, type1_out* arg2, \ |
285 type2_out* arg3, type3_out* arg4) \ | 207 type2_out* arg3, type3_out* arg4) \ |
286 : IPC::MessageWithReply<Tuple1<type1_in>, \ | 208 : IPC::MessageWithReply<Tuple1<type1_in>, \ |
287 Tuple3<type1_out&, type2_out&, type3_out&> >( \ | 209 Tuple3<type1_out&, type2_out&, type3_out&> >( \ |
288 MSG_ROUTING_CONTROL, ID, \ | 210 MSG_ROUTING_CONTROL, ID, \ |
289 MakeRefTuple(arg1), MakeRefTuple(*arg2, *arg3, *arg4)) {} \ | 211 MakeRefTuple(arg1), MakeRefTuple(*arg2, *arg3, *arg4)) {} \ |
290 \ | 212 \ |
291 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) | 213 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) |
292 | 214 |
293 #define IPC_SYNC_MESSAGE_CONTROL2_0(msg_class, type1_in, type2_in) \ | 215 #define IPC_SYNC_MESSAGE_CONTROL2_0_EXTRA(msg_class, type1_in, type2_in) \ |
294 msg_class::msg_class(const type1_in& arg1, const type2_in& arg2) \ | 216 msg_class::msg_class(const type1_in& arg1, const type2_in& arg2) \ |
295 : IPC::MessageWithReply<Tuple2<type1_in, type2_in>, Tuple0 >( \ | 217 : IPC::MessageWithReply<Tuple2<type1_in, type2_in>, Tuple0 >( \ |
296 MSG_ROUTING_CONTROL, ID, \ | 218 MSG_ROUTING_CONTROL, ID, \ |
297 MakeRefTuple(arg1, arg2), MakeTuple()) {} \ | 219 MakeRefTuple(arg1, arg2), MakeTuple()) {} \ |
298 \ | 220 \ |
299 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) | 221 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) |
300 | 222 |
301 #define IPC_SYNC_MESSAGE_CONTROL2_1(msg_class, type1_in, type2_in, type1_out) \ | 223 #define IPC_SYNC_MESSAGE_CONTROL2_1_EXTRA(msg_class, type1_in, type2_in, type1_o
ut) \ |
302 msg_class::msg_class(const type1_in& arg1, const type2_in& arg2, \ | 224 msg_class::msg_class(const type1_in& arg1, const type2_in& arg2, \ |
303 type1_out* arg3) \ | 225 type1_out* arg3) \ |
304 : IPC::MessageWithReply<Tuple2<type1_in, type2_in>, \ | 226 : IPC::MessageWithReply<Tuple2<type1_in, type2_in>, \ |
305 Tuple1<type1_out&> >( \ | 227 Tuple1<type1_out&> >( \ |
306 MSG_ROUTING_CONTROL, ID, \ | 228 MSG_ROUTING_CONTROL, ID, \ |
307 MakeRefTuple(arg1, arg2), MakeRefTuple(*arg3)) {} \ | 229 MakeRefTuple(arg1, arg2), MakeRefTuple(*arg3)) {} \ |
308 \ | 230 \ |
309 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) | 231 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) |
310 | 232 |
311 | 233 |
312 #define IPC_SYNC_MESSAGE_CONTROL2_2(msg_class, type1_in, type2_in, \ | 234 #define IPC_SYNC_MESSAGE_CONTROL2_2_EXTRA(msg_class, type1_in, type2_in, \ |
313 type1_out, type2_out) \ | 235 type1_out, type2_out) \ |
314 msg_class::msg_class(const type1_in& arg1, const type2_in& arg2, \ | 236 msg_class::msg_class(const type1_in& arg1, const type2_in& arg2, \ |
315 type1_out* arg3, type2_out* arg4) \ | 237 type1_out* arg3, type2_out* arg4) \ |
316 : IPC::MessageWithReply<Tuple2<type1_in, type2_in>, \ | 238 : IPC::MessageWithReply<Tuple2<type1_in, type2_in>, \ |
317 Tuple2<type1_out&, type2_out&> >(MSG_ROUTING_CONTROL, ID, \ | 239 Tuple2<type1_out&, type2_out&> >(MSG_ROUTING_CONTROL, ID, \ |
318 MakeRefTuple(arg1, arg2), MakeRefTuple(*arg3, *arg4)) {} \ | 240 MakeRefTuple(arg1, arg2), MakeRefTuple(*arg3, *arg4)) {} \ |
319 \ | 241 \ |
320 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) | 242 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) |
321 | 243 |
322 | 244 |
323 #define IPC_SYNC_MESSAGE_CONTROL2_3(msg_class, type1_in, type2_in, \ | 245 #define IPC_SYNC_MESSAGE_CONTROL2_3_EXTRA(msg_class, type1_in, type2_in, \ |
324 type1_out, type2_out, type3_out) \ | 246 type1_out, type2_out, type3_out) \ |
325 msg_class::msg_class(const type1_in& arg1, const type2_in& arg2, \ | 247 msg_class::msg_class(const type1_in& arg1, const type2_in& arg2, \ |
326 type1_out* arg3, type2_out* arg4, type3_out* arg5) \ | 248 type1_out* arg3, type2_out* arg4, type3_out* arg5) \ |
327 : IPC::MessageWithReply<Tuple2<type1_in, type2_in>, \ | 249 : IPC::MessageWithReply<Tuple2<type1_in, type2_in>, \ |
328 Tuple3<type1_out&, type2_out&, type3_out&> >(MSG_ROUTING_CONTROL, \ | 250 Tuple3<type1_out&, type2_out&, type3_out&> >(MSG_ROUTING_CONTROL, \ |
329 ID, \ | 251 ID, \ |
330 MakeRefTuple(arg1, arg2), MakeRefTuple(*arg3, *arg4, *arg5)) {} \ | 252 MakeRefTuple(arg1, arg2), MakeRefTuple(*arg3, *arg4, *arg5)) {} \ |
331 \ | 253 \ |
332 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) | 254 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) |
333 | 255 |
334 | 256 |
335 #define IPC_SYNC_MESSAGE_CONTROL3_1(msg_class, type1_in, type2_in, \ | 257 #define IPC_SYNC_MESSAGE_CONTROL3_1_EXTRA(msg_class, type1_in, type2_in, \ |
336 type3_in, type1_out) \ | 258 type3_in, type1_out) \ |
337 msg_class::msg_class(const type1_in& arg1, const type2_in& arg2, \ | 259 msg_class::msg_class(const type1_in& arg1, const type2_in& arg2, \ |
338 const type3_in& arg3, type1_out* arg4) \ | 260 const type3_in& arg3, type1_out* arg4) \ |
339 : IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ | 261 : IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ |
340 Tuple1<type1_out&> >(MSG_ROUTING_CONTROL, ID, \ | 262 Tuple1<type1_out&> >(MSG_ROUTING_CONTROL, ID, \ |
341 MakeRefTuple(arg1, arg2, arg3), MakeRefTuple(*arg4)) {} \ | 263 MakeRefTuple(arg1, arg2, arg3), MakeRefTuple(*arg4)) {} \ |
342 \ | 264 \ |
343 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) | 265 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) |
344 | 266 |
345 #define IPC_SYNC_MESSAGE_CONTROL3_2(msg_class, type1_in, type2_in, \ | 267 #define IPC_SYNC_MESSAGE_CONTROL3_2_EXTRA(msg_class, type1_in, type2_in, \ |
346 type3_in, type1_out, type2_out) \ | 268 type3_in, type1_out, type2_out) \ |
347 msg_class::msg_class(const type1_in& arg1, const type2_in& arg2, \ | 269 msg_class::msg_class(const type1_in& arg1, const type2_in& arg2, \ |
348 const type3_in& arg3, type1_out* arg4, type2_out* arg5) \ | 270 const type3_in& arg3, type1_out* arg4, type2_out* arg5) \ |
349 : IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ | 271 : IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ |
350 Tuple2<type1_out&, type2_out&> >(MSG_ROUTING_CONTROL, ID, \ | 272 Tuple2<type1_out&, type2_out&> >(MSG_ROUTING_CONTROL, ID, \ |
351 MakeRefTuple(arg1, arg2, arg3), MakeRefTuple(*arg4, *arg5)) {} \ | 273 MakeRefTuple(arg1, arg2, arg3), MakeRefTuple(*arg4, *arg5)) {} \ |
352 \ | 274 \ |
353 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) | 275 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) |
354 | 276 |
355 | 277 |
356 #define IPC_SYNC_MESSAGE_CONTROL3_3(msg_class, type1_in, type2_in, \ | 278 #define IPC_SYNC_MESSAGE_CONTROL3_3_EXTRA(msg_class, type1_in, type2_in, \ |
357 type3_in, type1_out, type2_out, \ | 279 type3_in, type1_out, type2_out, \ |
358 type3_out) \ | 280 type3_out) \ |
359 msg_class::msg_class(const type1_in& arg1, const type2_in& arg2, \ | 281 msg_class::msg_class(const type1_in& arg1, const type2_in& arg2, \ |
360 const type3_in& arg3, type1_out* arg4, \ | 282 const type3_in& arg3, type1_out* arg4, \ |
361 type2_out* arg5, type3_out* arg6) \ | 283 type2_out* arg5, type3_out* arg6) \ |
362 : IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ | 284 : IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ |
363 Tuple3<type1_out&, type2_out&, type3_out&> >(MSG_ROUTING_CONTROL, \ | 285 Tuple3<type1_out&, type2_out&, type3_out&> >(MSG_ROUTING_CONTROL, \ |
364 ID, \ | 286 ID, \ |
365 MakeRefTuple(arg1, arg2, arg3), \ | 287 MakeRefTuple(arg1, arg2, arg3), \ |
366 MakeRefTuple(*arg4, *arg5, *arg6)) {} \ | 288 MakeRefTuple(*arg4, *arg5, *arg6)) {} \ |
367 \ | 289 \ |
368 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) | 290 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) |
369 | 291 |
370 #define IPC_SYNC_MESSAGE_CONTROL3_4(msg_class, type1_in, type2_in, \ | 292 #define IPC_SYNC_MESSAGE_CONTROL3_4_EXTRA(msg_class, type1_in, type2_in, \ |
371 type3_in, type1_out, type2_out, \ | 293 type3_in, type1_out, type2_out, \ |
372 type3_out, type4_out) \ | 294 type3_out, type4_out) \ |
373 msg_class::msg_class(const type1_in& arg1, const type2_in& arg2, \ | 295 msg_class::msg_class(const type1_in& arg1, const type2_in& arg2, \ |
374 const type3_in& arg3, type1_out* arg4, \ | 296 const type3_in& arg3, type1_out* arg4, \ |
375 type2_out* arg5, type3_out* arg6, type4_out* arg7) \ | 297 type2_out* arg5, type3_out* arg6, type4_out* arg7) \ |
376 : IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ | 298 : IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ |
377 Tuple4<type1_out&, type2_out&, type3_out&, type4_out&> >( \ | 299 Tuple4<type1_out&, type2_out&, type3_out&, type4_out&> >( \ |
378 MSG_ROUTING_CONTROL, \ | 300 MSG_ROUTING_CONTROL, \ |
379 ID, \ | 301 ID, \ |
380 MakeRefTuple(arg1, arg2, arg3), \ | 302 MakeRefTuple(arg1, arg2, arg3), \ |
381 MakeRefTuple(*arg4, *arg5, *arg6, *arg7)) {} \ | 303 MakeRefTuple(*arg4, *arg5, *arg6, *arg7)) {} \ |
382 \ | 304 \ |
383 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) | 305 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) |
384 | 306 |
385 #define IPC_SYNC_MESSAGE_CONTROL4_1(msg_class, type1_in, type2_in, \ | 307 #define IPC_SYNC_MESSAGE_CONTROL4_1_EXTRA(msg_class, type1_in, type2_in, \ |
386 type3_in, type4_in, type1_out) \ | 308 type3_in, type4_in, type1_out) \ |
387 msg_class::msg_class(const type1_in& arg1, const type2_in& arg2, \ | 309 msg_class::msg_class(const type1_in& arg1, const type2_in& arg2, \ |
388 const type3_in& arg3, const type4_in& arg4, \ | 310 const type3_in& arg3, const type4_in& arg4, \ |
389 type1_out* arg6) \ | 311 type1_out* arg6) \ |
390 : IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in>, \ | 312 : IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in>, \ |
391 Tuple1<type1_out&> >(MSG_ROUTING_CONTROL, ID, \ | 313 Tuple1<type1_out&> >(MSG_ROUTING_CONTROL, ID, \ |
392 MakeRefTuple(arg1, arg2, arg3, arg4), MakeRefTuple(*arg6)) {} \ | 314 MakeRefTuple(arg1, arg2, arg3, arg4), MakeRefTuple(*arg6)) {} \ |
393 \ | 315 \ |
394 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) | 316 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) |
395 | 317 |
396 | 318 |
397 #define IPC_SYNC_MESSAGE_CONTROL4_2(msg_class, type1_in, type2_in, \ | 319 #define IPC_SYNC_MESSAGE_CONTROL4_2_EXTRA(msg_class, type1_in, type2_in, \ |
398 type3_in, type4_in, type1_out, \ | 320 type3_in, type4_in, type1_out, \ |
399 type2_out) \ | 321 type2_out) \ |
400 msg_class::msg_class(const type1_in& arg1, const type2_in& arg2, \ | 322 msg_class::msg_class(const type1_in& arg1, const type2_in& arg2, \ |
401 const type3_in& arg3, const type4_in& arg4, \ | 323 const type3_in& arg3, const type4_in& arg4, \ |
402 type1_out* arg5, type2_out* arg6) \ | 324 type1_out* arg5, type2_out* arg6) \ |
403 : IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, \ | 325 : IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, \ |
404 type4_in>, \ | 326 type4_in>, \ |
405 Tuple2<type1_out&, type2_out&> >(MSG_ROUTING_CONTROL, ID, \ | 327 Tuple2<type1_out&, type2_out&> >(MSG_ROUTING_CONTROL, ID, \ |
406 MakeRefTuple(arg1, arg2, arg3, arg4), \ | 328 MakeRefTuple(arg1, arg2, arg3, arg4), \ |
407 MakeRefTuple(*arg5, *arg6)) {} \ | 329 MakeRefTuple(*arg5, *arg6)) {} \ |
408 \ | 330 \ |
409 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) | 331 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) |
410 | 332 |
411 #define IPC_SYNC_MESSAGE_ROUTED0_0(msg_class) \ | 333 #define IPC_SYNC_MESSAGE_ROUTED0_0_EXTRA(msg_class) \ |
412 msg_class::msg_class(int routing_id) \ | 334 msg_class::msg_class(int routing_id) \ |
413 : IPC::MessageWithReply<Tuple0, Tuple0>( \ | 335 : IPC::MessageWithReply<Tuple0, Tuple0>( \ |
414 routing_id, ID, \ | 336 routing_id, ID, \ |
415 MakeTuple(), MakeTuple()) {} \ | 337 MakeTuple(), MakeTuple()) {} \ |
416 \ | 338 \ |
417 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) | 339 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) |
418 | 340 |
419 #define IPC_SYNC_MESSAGE_ROUTED0_1(msg_class, type1_out) \ | 341 #define IPC_SYNC_MESSAGE_ROUTED0_1_EXTRA(msg_class, type1_out) \ |
420 msg_class::msg_class(int routing_id, type1_out* arg1) \ | 342 msg_class::msg_class(int routing_id, type1_out* arg1) \ |
421 : IPC::MessageWithReply<Tuple0, Tuple1<type1_out&> >( \ | 343 : IPC::MessageWithReply<Tuple0, Tuple1<type1_out&> >( \ |
422 routing_id, ID, \ | 344 routing_id, ID, \ |
423 MakeTuple(), MakeRefTuple(*arg1)) {} \ | 345 MakeTuple(), MakeRefTuple(*arg1)) {} \ |
424 \ | 346 \ |
425 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) | 347 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) |
426 | 348 |
427 #define IPC_SYNC_MESSAGE_ROUTED0_2(msg_class, type1_out, type2_out) \ | 349 #define IPC_SYNC_MESSAGE_ROUTED0_2_EXTRA(msg_class, type1_out, type2_out) \ |
428 msg_class::msg_class(int routing_id, type1_out* arg1, type2_out* arg2) \ | 350 msg_class::msg_class(int routing_id, type1_out* arg1, type2_out* arg2) \ |
429 : IPC::MessageWithReply<Tuple0, Tuple2<type1_out&, type2_out&> >( \ | 351 : IPC::MessageWithReply<Tuple0, Tuple2<type1_out&, type2_out&> >( \ |
430 routing_id, ID, \ | 352 routing_id, ID, \ |
431 MakeTuple(), MakeRefTuple(*arg1, *arg2)) {} \ | 353 MakeTuple(), MakeRefTuple(*arg1, *arg2)) {} \ |
432 \ | 354 \ |
433 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) | 355 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) |
434 | 356 |
435 #define IPC_SYNC_MESSAGE_ROUTED0_3(msg_class, type1_out, type2_out, \ | 357 #define IPC_SYNC_MESSAGE_ROUTED0_3_EXTRA(msg_class, type1_out, type2_out, \ |
436 type3_out) \ | 358 type3_out) \ |
437 msg_class::msg_class(int routing_id, type1_out* arg1, type2_out* arg2, \ | 359 msg_class::msg_class(int routing_id, type1_out* arg1, type2_out* arg2, \ |
438 type3_out* arg3) \ | 360 type3_out* arg3) \ |
439 : IPC::MessageWithReply<Tuple0, \ | 361 : IPC::MessageWithReply<Tuple0, \ |
440 Tuple3<type1_out&, type2_out&, type3_out&> >(routing_id, ID, \ | 362 Tuple3<type1_out&, type2_out&, type3_out&> >(routing_id, ID, \ |
441 MakeTuple(), MakeRefTuple(*arg1, *arg2, *arg3)) {} \ | 363 MakeTuple(), MakeRefTuple(*arg1, *arg2, *arg3)) {} \ |
442 \ | 364 \ |
443 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) | 365 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) |
444 | 366 |
445 #define IPC_SYNC_MESSAGE_ROUTED1_0(msg_class, type1_in) \ | 367 #define IPC_SYNC_MESSAGE_ROUTED1_0_EXTRA(msg_class, type1_in) \ |
446 msg_class::msg_class(int routing_id, const type1_in& arg1) \ | 368 msg_class::msg_class(int routing_id, const type1_in& arg1) \ |
447 : IPC::MessageWithReply<Tuple1<type1_in>, Tuple0 >( \ | 369 : IPC::MessageWithReply<Tuple1<type1_in>, Tuple0 >( \ |
448 routing_id, ID, \ | 370 routing_id, ID, \ |
449 MakeRefTuple(arg1), MakeTuple()) {} \ | 371 MakeRefTuple(arg1), MakeTuple()) {} \ |
450 \ | 372 \ |
451 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) | 373 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) |
452 | 374 |
453 #define IPC_SYNC_MESSAGE_ROUTED1_1(msg_class, type1_in, type1_out) \ | 375 #define IPC_SYNC_MESSAGE_ROUTED1_1_EXTRA(msg_class, type1_in, type1_out) \ |
454 msg_class::msg_class(int routing_id, const type1_in& arg1, \ | 376 msg_class::msg_class(int routing_id, const type1_in& arg1, \ |
455 type1_out* arg2) \ | 377 type1_out* arg2) \ |
456 : IPC::MessageWithReply<Tuple1<type1_in>, Tuple1<type1_out&> >( \ | 378 : IPC::MessageWithReply<Tuple1<type1_in>, Tuple1<type1_out&> >( \ |
457 routing_id, ID, \ | 379 routing_id, ID, \ |
458 MakeRefTuple(arg1), MakeRefTuple(*arg2)) {} \ | 380 MakeRefTuple(arg1), MakeRefTuple(*arg2)) {} \ |
459 \ | 381 \ |
460 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) | 382 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) |
461 | 383 |
462 #define IPC_SYNC_MESSAGE_ROUTED1_2(msg_class, type1_in, type1_out, \ | 384 #define IPC_SYNC_MESSAGE_ROUTED1_2_EXTRA(msg_class, type1_in, type1_out, \ |
463 type2_out) \ | 385 type2_out) \ |
464 msg_class::msg_class(int routing_id, const type1_in& arg1, \ | 386 msg_class::msg_class(int routing_id, const type1_in& arg1, \ |
465 type1_out* arg2, type2_out* arg3) \ | 387 type1_out* arg2, type2_out* arg3) \ |
466 : IPC::MessageWithReply<Tuple1<type1_in>, \ | 388 : IPC::MessageWithReply<Tuple1<type1_in>, \ |
467 Tuple2<type1_out&, type2_out&> >( \ | 389 Tuple2<type1_out&, type2_out&> >( \ |
468 routing_id, ID, \ | 390 routing_id, ID, \ |
469 MakeRefTuple(arg1), MakeRefTuple(*arg2, *arg3)) {} \ | 391 MakeRefTuple(arg1), MakeRefTuple(*arg2, *arg3)) {} \ |
470 \ | 392 \ |
471 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) | 393 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) |
472 | 394 |
473 #define IPC_SYNC_MESSAGE_ROUTED1_3(msg_class, type1_in, type1_out, \ | 395 #define IPC_SYNC_MESSAGE_ROUTED1_3_EXTRA(msg_class, type1_in, type1_out, \ |
474 type2_out, type3_out) \ | 396 type2_out, type3_out) \ |
475 msg_class::msg_class(int routing_id, const type1_in& arg1, \ | 397 msg_class::msg_class(int routing_id, const type1_in& arg1, \ |
476 type1_out* arg2, type2_out* arg3, type3_out* arg4) \ | 398 type1_out* arg2, type2_out* arg3, type3_out* arg4) \ |
477 : IPC::MessageWithReply<Tuple1<type1_in>, \ | 399 : IPC::MessageWithReply<Tuple1<type1_in>, \ |
478 Tuple3<type1_out&, type2_out&, type3_out&> >(routing_id, ID, \ | 400 Tuple3<type1_out&, type2_out&, type3_out&> >(routing_id, ID, \ |
479 MakeRefTuple(arg1), MakeRefTuple(*arg2, *arg3, *arg4)) {} \ | 401 MakeRefTuple(arg1), MakeRefTuple(*arg2, *arg3, *arg4)) {} \ |
480 \ | 402 \ |
481 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) | 403 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) |
482 | 404 |
483 #define IPC_SYNC_MESSAGE_ROUTED1_4(msg_class, type1_in, type1_out, \ | 405 #define IPC_SYNC_MESSAGE_ROUTED1_4_EXTRA(msg_class, type1_in, type1_out, \ |
484 type2_out, type3_out, type4_out) \ | 406 type2_out, type3_out, type4_out) \ |
485 msg_class::msg_class(int routing_id, const type1_in& arg1, \ | 407 msg_class::msg_class(int routing_id, const type1_in& arg1, \ |
486 type1_out* arg2, type2_out* arg3, \ | 408 type1_out* arg2, type2_out* arg3, \ |
487 type3_out* arg4, type4_out* arg5) \ | 409 type3_out* arg4, type4_out* arg5) \ |
488 : IPC::MessageWithReply<Tuple1<type1_in>, \ | 410 : IPC::MessageWithReply<Tuple1<type1_in>, \ |
489 Tuple4<type1_out&, type2_out&, type3_out&, type4_out&> >( \ | 411 Tuple4<type1_out&, type2_out&, type3_out&, type4_out&> >( \ |
490 routing_id, ID, MakeRefTuple(arg1), \ | 412 routing_id, ID, MakeRefTuple(arg1), \ |
491 MakeRefTuple(*arg2, *arg3, *arg4, *arg5)) {} \ | 413 MakeRefTuple(*arg2, *arg3, *arg4, *arg5)) {} \ |
492 \ | 414 \ |
493 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) | 415 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) |
494 | 416 |
495 #define IPC_SYNC_MESSAGE_ROUTED2_0(msg_class, type1_in, type2_in) \ | 417 #define IPC_SYNC_MESSAGE_ROUTED2_0_EXTRA(msg_class, type1_in, type2_in) \ |
496 msg_class::msg_class(int routing_id, const type1_in& arg1, \ | 418 msg_class::msg_class(int routing_id, const type1_in& arg1, \ |
497 const type2_in& arg2) \ | 419 const type2_in& arg2) \ |
498 : IPC::MessageWithReply<Tuple2<type1_in, type2_in>, Tuple0 >( \ | 420 : IPC::MessageWithReply<Tuple2<type1_in, type2_in>, Tuple0 >( \ |
499 routing_id, ID, MakeRefTuple(arg1, arg2), MakeTuple()) {} \ | 421 routing_id, ID, MakeRefTuple(arg1, arg2), MakeTuple()) {} \ |
500 \ | 422 \ |
501 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) | 423 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) |
502 | 424 |
503 #define IPC_SYNC_MESSAGE_ROUTED2_1(msg_class, type1_in, type2_in, \ | 425 #define IPC_SYNC_MESSAGE_ROUTED2_1_EXTRA(msg_class, type1_in, type2_in, \ |
504 type1_out) \ | 426 type1_out) \ |
505 msg_class::msg_class(int routing_id, const type1_in& arg1, \ | 427 msg_class::msg_class(int routing_id, const type1_in& arg1, \ |
506 const type2_in& arg2, type1_out* arg3) \ | 428 const type2_in& arg2, type1_out* arg3) \ |
507 : IPC::MessageWithReply<Tuple2<type1_in, type2_in>, \ | 429 : IPC::MessageWithReply<Tuple2<type1_in, type2_in>, \ |
508 Tuple1<type1_out&> >(routing_id, ID, \ | 430 Tuple1<type1_out&> >(routing_id, ID, \ |
509 MakeRefTuple(arg1, arg2), MakeRefTuple(*arg3)) {} \ | 431 MakeRefTuple(arg1, arg2), MakeRefTuple(*arg3)) {} \ |
510 \ | 432 \ |
511 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) | 433 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) |
512 | 434 |
513 #define IPC_SYNC_MESSAGE_ROUTED2_2(msg_class, type1_in, type2_in, \ | 435 #define IPC_SYNC_MESSAGE_ROUTED2_2_EXTRA(msg_class, type1_in, type2_in, \ |
514 type1_out, type2_out) \ | 436 type1_out, type2_out) \ |
515 msg_class::msg_class(int routing_id, const type1_in& arg1, \ | 437 msg_class::msg_class(int routing_id, const type1_in& arg1, \ |
516 const type2_in& arg2, type1_out* arg3, \ | 438 const type2_in& arg2, type1_out* arg3, \ |
517 type2_out* arg4) \ | 439 type2_out* arg4) \ |
518 : IPC::MessageWithReply<Tuple2<type1_in, type2_in>, \ | 440 : IPC::MessageWithReply<Tuple2<type1_in, type2_in>, \ |
519 Tuple2<type1_out&, type2_out&> >(routing_id, ID, \ | 441 Tuple2<type1_out&, type2_out&> >(routing_id, ID, \ |
520 MakeRefTuple(arg1, arg2), MakeRefTuple(*arg3, *arg4)) {} \ | 442 MakeRefTuple(arg1, arg2), MakeRefTuple(*arg3, *arg4)) {} \ |
521 \ | 443 \ |
522 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) | 444 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) |
523 | 445 |
524 #define IPC_SYNC_MESSAGE_ROUTED2_3(msg_class, type1_in, type2_in, \ | 446 #define IPC_SYNC_MESSAGE_ROUTED2_3_EXTRA(msg_class, type1_in, type2_in, \ |
525 type1_out, type2_out, type3_out) \ | 447 type1_out, type2_out, type3_out) \ |
526 msg_class::msg_class(int routing_id, const type1_in& arg1, \ | 448 msg_class::msg_class(int routing_id, const type1_in& arg1, \ |
527 const type2_in& arg2, type1_out* arg3, \ | 449 const type2_in& arg2, type1_out* arg3, \ |
528 type2_out* arg4, type3_out* arg5) \ | 450 type2_out* arg4, type3_out* arg5) \ |
529 : IPC::MessageWithReply<Tuple2<type1_in, type2_in>, \ | 451 : IPC::MessageWithReply<Tuple2<type1_in, type2_in>, \ |
530 Tuple3<type1_out&, type2_out&, type3_out&> >(routing_id, ID, \ | 452 Tuple3<type1_out&, type2_out&, type3_out&> >(routing_id, ID, \ |
531 MakeRefTuple(arg1, arg2), MakeRefTuple(*arg3, *arg4, *arg5)) {} \ | 453 MakeRefTuple(arg1, arg2), MakeRefTuple(*arg3, *arg4, *arg5)) {} \ |
532 \ | 454 \ |
533 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) | 455 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) |
534 | 456 |
535 #define IPC_SYNC_MESSAGE_ROUTED3_0(msg_class, type1_in, type2_in, \ | 457 #define IPC_SYNC_MESSAGE_ROUTED3_0_EXTRA(msg_class, type1_in, type2_in, \ |
536 type3_in) \ | 458 type3_in) \ |
537 msg_class::msg_class(int routing_id, const type1_in& arg1, \ | 459 msg_class::msg_class(int routing_id, const type1_in& arg1, \ |
538 const type2_in& arg2, const type3_in& arg3) \ | 460 const type2_in& arg2, const type3_in& arg3) \ |
539 : IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, Tuple0>( \ | 461 : IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, Tuple0>( \ |
540 routing_id, ID, \ | 462 routing_id, ID, \ |
541 MakeRefTuple(arg1, arg2, arg3), MakeTuple()) {} \ | 463 MakeRefTuple(arg1, arg2, arg3), MakeTuple()) {} \ |
542 \ | 464 \ |
543 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) | 465 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) |
544 | 466 |
545 #define IPC_SYNC_MESSAGE_ROUTED3_1(msg_class, type1_in, type2_in, \ | 467 #define IPC_SYNC_MESSAGE_ROUTED3_1_EXTRA(msg_class, type1_in, type2_in, \ |
546 type3_in, type1_out) \ | 468 type3_in, type1_out) \ |
547 msg_class::msg_class(int routing_id, const type1_in& arg1, \ | 469 msg_class::msg_class(int routing_id, const type1_in& arg1, \ |
548 const type2_in& arg2, const type3_in& arg3, \ | 470 const type2_in& arg2, const type3_in& arg3, \ |
549 type1_out* arg4) \ | 471 type1_out* arg4) \ |
550 : IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ | 472 : IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ |
551 Tuple1<type1_out&> >(routing_id, ID, \ | 473 Tuple1<type1_out&> >(routing_id, ID, \ |
552 MakeRefTuple(arg1, arg2, arg3), MakeRefTuple(*arg4)) {} \ | 474 MakeRefTuple(arg1, arg2, arg3), MakeRefTuple(*arg4)) {} \ |
553 \ | 475 \ |
554 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) | 476 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) |
555 | 477 |
556 #define IPC_SYNC_MESSAGE_ROUTED3_2(msg_class, type1_in, type2_in, \ | 478 #define IPC_SYNC_MESSAGE_ROUTED3_2_EXTRA(msg_class, type1_in, type2_in, \ |
557 type3_in, type1_out, type2_out) \ | 479 type3_in, type1_out, type2_out) \ |
558 msg_class::msg_class(int routing_id, const type1_in& arg1, \ | 480 msg_class::msg_class(int routing_id, const type1_in& arg1, \ |
559 const type2_in& arg2, const type3_in& arg3, \ | 481 const type2_in& arg2, const type3_in& arg3, \ |
560 type1_out* arg4, type2_out* arg5) \ | 482 type1_out* arg4, type2_out* arg5) \ |
561 : IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ | 483 : IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ |
562 Tuple2<type1_out&, type2_out&> >(routing_id, ID, \ | 484 Tuple2<type1_out&, type2_out&> >(routing_id, ID, \ |
563 MakeRefTuple(arg1, arg2, arg3), MakeRefTuple(*arg4, *arg5)) {} \ | 485 MakeRefTuple(arg1, arg2, arg3), MakeRefTuple(*arg4, *arg5)) {} \ |
564 \ | 486 \ |
565 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) | 487 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) |
566 | 488 |
567 #define IPC_SYNC_MESSAGE_ROUTED3_3(msg_class, type1_in, type2_in, \ | 489 #define IPC_SYNC_MESSAGE_ROUTED3_3_EXTRA(msg_class, type1_in, type2_in, \ |
568 type3_in, type1_out, type2_out, \ | 490 type3_in, type1_out, type2_out, \ |
569 type3_out) \ | 491 type3_out) \ |
570 msg_class::msg_class(int routing_id, const type1_in& arg1, \ | 492 msg_class::msg_class(int routing_id, const type1_in& arg1, \ |
571 const type2_in& arg2, const type3_in& arg3, \ | 493 const type2_in& arg2, const type3_in& arg3, \ |
572 type1_out* arg4, type2_out* arg5, type3_out* arg6) \ | 494 type1_out* arg4, type2_out* arg5, type3_out* arg6) \ |
573 : IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ | 495 : IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ |
574 Tuple3<type1_out&, type2_out&, type3_out&> >(routing_id, ID, \ | 496 Tuple3<type1_out&, type2_out&, type3_out&> >(routing_id, ID, \ |
575 MakeRefTuple(arg1, arg2, arg3), MakeRefTuple(*arg4, *arg5, \ | 497 MakeRefTuple(arg1, arg2, arg3), MakeRefTuple(*arg4, *arg5, \ |
576 *arg6)) {} \ | 498 *arg6)) {} \ |
577 \ | 499 \ |
578 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) | 500 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) |
579 | 501 |
580 #define IPC_SYNC_MESSAGE_ROUTED3_4(msg_class, type1_in, type2_in, \ | 502 #define IPC_SYNC_MESSAGE_ROUTED3_4_EXTRA(msg_class, type1_in, type2_in, \ |
581 type3_in, type1_out, type2_out, \ | 503 type3_in, type1_out, type2_out, \ |
582 type3_out, type4_out) \ | 504 type3_out, type4_out) \ |
583 msg_class::msg_class(int routing_id, const type1_in& arg1, \ | 505 msg_class::msg_class(int routing_id, const type1_in& arg1, \ |
584 const type2_in& arg2, const type3_in& arg3, \ | 506 const type2_in& arg2, const type3_in& arg3, \ |
585 type1_out* arg4, type2_out* arg5, \ | 507 type1_out* arg4, type2_out* arg5, \ |
586 type3_out* arg6, type4_out* arg7) \ | 508 type3_out* arg6, type4_out* arg7) \ |
587 : IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ | 509 : IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ |
588 Tuple4<type1_out&, type2_out&, type3_out&, type4_out&> >( \ | 510 Tuple4<type1_out&, type2_out&, type3_out&, type4_out&> >( \ |
589 routing_id, ID, MakeRefTuple(arg1, arg2, arg3), \ | 511 routing_id, ID, MakeRefTuple(arg1, arg2, arg3), \ |
590 MakeRefTuple(*arg4, *arg5, *arg6, *arg7)) {} \ | 512 MakeRefTuple(*arg4, *arg5, *arg6, *arg7)) {} \ |
591 \ | 513 \ |
592 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) | 514 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) |
593 | 515 |
594 #define IPC_SYNC_MESSAGE_ROUTED4_0(msg_class, type1_in, type2_in, \ | 516 #define IPC_SYNC_MESSAGE_ROUTED4_0_EXTRA(msg_class, type1_in, type2_in, \ |
595 type3_in, type4_in) \ | 517 type3_in, type4_in) \ |
596 msg_class::msg_class(int routing_id, const type1_in& arg1, \ | 518 msg_class::msg_class(int routing_id, const type1_in& arg1, \ |
597 const type2_in& arg2, const type3_in& arg3, \ | 519 const type2_in& arg2, const type3_in& arg3, \ |
598 const type4_in& arg4) \ | 520 const type4_in& arg4) \ |
599 : IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, \ | 521 : IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, \ |
600 type4_in>, Tuple0 >(routing_id, ID, \ | 522 type4_in>, Tuple0 >(routing_id, ID, \ |
601 MakeRefTuple(arg1, arg2, arg3, arg4), MakeTuple()) {} \ | 523 MakeRefTuple(arg1, arg2, arg3, arg4), MakeTuple()) {} \ |
602 \ | 524 \ |
603 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) | 525 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) |
604 | 526 |
605 #define IPC_SYNC_MESSAGE_ROUTED4_1(msg_class, type1_in, type2_in, \ | 527 #define IPC_SYNC_MESSAGE_ROUTED4_1_EXTRA(msg_class, type1_in, type2_in, \ |
606 type3_in, type4_in, type1_out) \ | 528 type3_in, type4_in, type1_out) \ |
607 msg_class::msg_class(int routing_id, const type1_in& arg1, \ | 529 msg_class::msg_class(int routing_id, const type1_in& arg1, \ |
608 const type2_in& arg2, const type3_in& arg3, \ | 530 const type2_in& arg2, const type3_in& arg3, \ |
609 const type4_in& arg4, type1_out* arg6) \ | 531 const type4_in& arg4, type1_out* arg6) \ |
610 : IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in>,
\ | 532 : IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in>,
\ |
611 Tuple1<type1_out&> >(routing_id, ID, \ | 533 Tuple1<type1_out&> >(routing_id, ID, \ |
612 MakeRefTuple(arg1, arg2, arg3, arg4), MakeRefTuple(*arg6)) {} \ | 534 MakeRefTuple(arg1, arg2, arg3, arg4), MakeRefTuple(*arg6)) {} \ |
613 \ | 535 \ |
614 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) | 536 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) |
615 | 537 |
616 | 538 |
617 #define IPC_SYNC_MESSAGE_ROUTED4_2(msg_class, type1_in, type2_in, \ | 539 #define IPC_SYNC_MESSAGE_ROUTED4_2_EXTRA(msg_class, type1_in, type2_in, \ |
618 type3_in, type4_in, type1_out, \ | 540 type3_in, type4_in, type1_out, \ |
619 type2_out) \ | 541 type2_out) \ |
620 msg_class::msg_class(int routing_id, const type1_in& arg1, \ | 542 msg_class::msg_class(int routing_id, const type1_in& arg1, \ |
621 const type2_in& arg2, const type3_in& arg3, \ | 543 const type2_in& arg2, const type3_in& arg3, \ |
622 const type4_in& arg4, type1_out* arg5, type2_out* arg6) \ | 544 const type4_in& arg4, type1_out* arg5, type2_out* arg6) \ |
623 : IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in>, \ | 545 : IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in>, \ |
624 Tuple2<type1_out&, type2_out&> >(routing_id, ID, \ | 546 Tuple2<type1_out&, type2_out&> >(routing_id, ID, \ |
625 MakeRefTuple(arg1, arg2, arg3, arg4), MakeRefTuple(*arg5, *arg6)) {} \ | 547 MakeRefTuple(arg1, arg2, arg3, arg4), MakeRefTuple(*arg5, *arg6)) {} \ |
626 \ | 548 \ |
627 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) | 549 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) |
628 | 550 |
629 | 551 |
630 #define IPC_SYNC_MESSAGE_ROUTED4_3(msg_class, type1_in, type2_in, \ | 552 #define IPC_SYNC_MESSAGE_ROUTED4_3_EXTRA(msg_class, type1_in, type2_in, \ |
631 type3_in, type4_in, type1_out, \ | 553 type3_in, type4_in, type1_out, \ |
632 type2_out, type3_out) \ | 554 type2_out, type3_out) \ |
633 msg_class::msg_class(int routing_id, const type1_in& arg1, \ | 555 msg_class::msg_class(int routing_id, const type1_in& arg1, \ |
634 const type2_in& arg2, const type3_in& arg3, \ | 556 const type2_in& arg2, const type3_in& arg3, \ |
635 const type4_in& arg4, type1_out* arg5, \ | 557 const type4_in& arg4, type1_out* arg5, \ |
636 type2_out* arg6, type3_out* arg7) \ | 558 type2_out* arg6, type3_out* arg7) \ |
637 : IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in>, \ | 559 : IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in>, \ |
638 Tuple3<type1_out&, type2_out&, type3_out&> >(routing_id, ID, \ | 560 Tuple3<type1_out&, type2_out&, type3_out&> >(routing_id, ID, \ |
639 MakeRefTuple(arg1, arg2, arg3, arg4), \ | 561 MakeRefTuple(arg1, arg2, arg3, arg4), \ |
640 MakeRefTuple(*arg5, *arg6, *arg7)) {} \ | 562 MakeRefTuple(*arg5, *arg6, *arg7)) {} \ |
641 \ | 563 \ |
642 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) | 564 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) |
643 | 565 |
644 #define IPC_SYNC_MESSAGE_ROUTED5_0(msg_class, type1_in, type2_in, \ | 566 #define IPC_SYNC_MESSAGE_ROUTED5_0_EXTRA(msg_class, type1_in, type2_in, \ |
645 type3_in, type4_in, type5_in) \ | 567 type3_in, type4_in, type5_in) \ |
646 msg_class::msg_class(int routing_id, const type1_in& arg1, \ | 568 msg_class::msg_class(int routing_id, const type1_in& arg1, \ |
647 const type2_in& arg2, const type3_in& arg3, \ | 569 const type2_in& arg2, const type3_in& arg3, \ |
648 const type4_in& arg4, const type5_in& arg5) \ | 570 const type4_in& arg4, const type5_in& arg5) \ |
649 : IPC::MessageWithReply<Tuple5<type1_in, type2_in, type3_in, \ | 571 : IPC::MessageWithReply<Tuple5<type1_in, type2_in, type3_in, \ |
650 type4_in, type5_in>, Tuple0 >(routing_id, ID, \ | 572 type4_in, type5_in>, Tuple0 >(routing_id, ID, \ |
651 MakeRefTuple(arg1, arg2, arg3, arg4, arg5), MakeTuple()) {} \ | 573 MakeRefTuple(arg1, arg2, arg3, arg4, arg5), MakeTuple()) {} \ |
652 \ | 574 \ |
653 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) | 575 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) |
654 | 576 |
655 #define IPC_SYNC_MESSAGE_ROUTED5_1(msg_class, type1_in, type2_in, \ | 577 #define IPC_SYNC_MESSAGE_ROUTED5_1_EXTRA(msg_class, type1_in, type2_in, \ |
656 type3_in, type4_in, type5_in, type1_out) \ | 578 type3_in, type4_in, type5_in, type1_out) \ |
657 msg_class::msg_class(int routing_id, const type1_in& arg1, \ | 579 msg_class::msg_class(int routing_id, const type1_in& arg1, \ |
658 const type2_in& arg2, const type3_in& arg3, \ | 580 const type2_in& arg2, const type3_in& arg3, \ |
659 const type4_in& arg4, const type5_in& arg5, \ | 581 const type4_in& arg4, const type5_in& arg5, \ |
660 type1_out* arg6) \ | 582 type1_out* arg6) \ |
661 : IPC::MessageWithReply<Tuple5<type1_in, type2_in, type3_in, \ | 583 : IPC::MessageWithReply<Tuple5<type1_in, type2_in, type3_in, \ |
662 type4_in, type5_in>, Tuple1<type1_out&> >(routing_id, ID, \ | 584 type4_in, type5_in>, Tuple1<type1_out&> >(routing_id, ID, \ |
663 MakeRefTuple(arg1, arg2, arg3, arg4, arg5), \ | 585 MakeRefTuple(arg1, arg2, arg3, arg4, arg5), \ |
664 MakeRefTuple(*arg6)) {} \ | 586 MakeRefTuple(*arg6)) {} \ |
665 \ | 587 \ |
666 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) | 588 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) |
667 | 589 |
668 #define IPC_SYNC_MESSAGE_ROUTED5_2(msg_class, type1_in, type2_in, \ | 590 #define IPC_SYNC_MESSAGE_ROUTED5_2_EXTRA(msg_class, type1_in, type2_in, \ |
669 type3_in, type4_in, type5_in, \ | 591 type3_in, type4_in, type5_in, \ |
670 type1_out, type2_out) \ | 592 type1_out, type2_out) \ |
671 msg_class::msg_class(int routing_id, const type1_in& arg1, \ | 593 msg_class::msg_class(int routing_id, const type1_in& arg1, \ |
672 const type2_in& arg2, const type3_in& arg3, \ | 594 const type2_in& arg2, const type3_in& arg3, \ |
673 const type4_in& arg4, const type4_in& arg5, \ | 595 const type4_in& arg4, const type4_in& arg5, \ |
674 type1_out* arg6, type2_out* arg7) \ | 596 type1_out* arg6, type2_out* arg7) \ |
675 : IPC::MessageWithReply<Tuple5<type1_in, type2_in, type3_in, \ | 597 : IPC::MessageWithReply<Tuple5<type1_in, type2_in, type3_in, \ |
676 type4_in, type5_in>, Tuple2<type1_out&, type2_out&> >( \ | 598 type4_in, type5_in>, Tuple2<type1_out&, type2_out&> >( \ |
677 routing_id, ID, MakeRefTuple(arg1, arg2, arg3, arg4, arg5), \ | 599 routing_id, ID, MakeRefTuple(arg1, arg2, arg3, arg4, arg5), \ |
678 MakeRefTuple(*arg6, *arg7)) {} \ | 600 MakeRefTuple(*arg6, *arg7)) {} \ |
679 \ | 601 \ |
680 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) | 602 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) |
681 | 603 |
682 #define IPC_SYNC_MESSAGE_ROUTED5_3(msg_class, type1_in, type2_in, \ | 604 #define IPC_SYNC_MESSAGE_ROUTED5_3_EXTRA(msg_class, type1_in, type2_in, \ |
683 type3_in, type4_in, type5_in, \ | 605 type3_in, type4_in, type5_in, \ |
684 type1_out, type2_out, type3_out) \ | 606 type1_out, type2_out, type3_out) \ |
685 msg_class::msg_class(int routing_id, const type1_in& arg1, \ | 607 msg_class::msg_class(int routing_id, const type1_in& arg1, \ |
686 const type2_in& arg2, const type3_in& arg3, \ | 608 const type2_in& arg2, const type3_in& arg3, \ |
687 const type4_in& arg4, const type4_in& arg5, \ | 609 const type4_in& arg4, const type4_in& arg5, \ |
688 type1_out* arg6, type2_out* arg7, \ | 610 type1_out* arg6, type2_out* arg7, \ |
689 type3_out* arg8) \ | 611 type3_out* arg8) \ |
690 : IPC::MessageWithReply<Tuple5<type1_in, type2_in, type3_in, \ | 612 : IPC::MessageWithReply<Tuple5<type1_in, type2_in, type3_in, \ |
691 type4_in, type5_in>, \ | 613 type4_in, type5_in>, \ |
692 Tuple3<type1_out&, type2_out&, type3_out&> >(routing_id, ID, \ | 614 Tuple3<type1_out&, type2_out&, type3_out&> >(routing_id, ID, \ |
693 MakeRefTuple(arg1, arg2, arg3, arg4, arg5), \ | 615 MakeRefTuple(arg1, arg2, arg3, arg4, arg5), \ |
694 MakeRefTuple(*arg6, *arg7, *arg8)) {} \ | 616 MakeRefTuple(*arg6, *arg7, *arg8)) {} \ |
695 \ | 617 \ |
696 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) | 618 IPC_SYNC_MESSAGE_DTOR_AND_LOG(msg_class) |
697 | 619 |
698 // Trigger the header guard define in ipc_message_macros.h so we don't get | |
699 // duplicate including when we include MESSAGES_INTERNAL_FILE again at the end | |
700 // of this file. | |
701 #define IPC_MESSAGE_MACROS_INCLUDE_BLOCK | |
702 | |
703 // Redefine MESSAGES_INTERNAL_FILE just for the header check in | |
704 // ipc_messages_macros.h that happens before it breaks on the header guard. | |
705 #define MESSAGES_INTERNAL_FILE MESSAGES_INTERNAL_IMPL_FILE | |
706 | |
707 // Include our INTERNAL file first to get the normal expansion. | |
708 #include MESSAGES_INTERNAL_IMPL_FILE | |
709 | |
710 #endif // IPC_IPC_MESSAGE_IMPL_MACROS_H_ | 620 #endif // IPC_IPC_MESSAGE_IMPL_MACROS_H_ |
OLD | NEW |