OLD | NEW |
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 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 // This header is meant to be included in multiple passes, hence no traditional | 5 // This header is meant to be included in multiple passes, hence no traditional |
6 // header guard. | 6 // header guard. |
7 // | 7 // |
8 // In the first pass, IPC_MESSAGE_MACROS_ENUMS should be defined, which will | 8 // In your XXX_messages_internal.h file, before defining any messages do: |
9 // create enums for each of the messages defined with the IPC_MESSAGE_* macros. | 9 // #define IPC_MESSAGE_START XMsgStart |
10 // | 10 // XMstStart value is from the IPCMessageStart enum in ipc_message_utils.h, and |
11 // In the second pass, either IPC_MESSAGE_MACROS_DEBUGSTRINGS or | 11 // needs to be unique for each different file. |
12 // IPC_MESSAGE_MACROS_CLASSES should be defined (if both, DEBUGSTRINGS takes | 12 // In your XXX_messages.cc file, after all the includes for param types: |
13 // precedence). Only one .cc file should have DEBUGSTRINGS defined, as this | 13 // #define IPC_MESSAGE_IMPL |
14 // will create helper functions mapping message types to strings. Having | 14 // #include "X_messages.h" |
15 // CLASSES defined will create classes for each of the messages defined with | |
16 // the IPC_MESSAGE_* macros. | |
17 // | 15 // |
18 // "Sync" messages are just synchronous calls, the Send() call doesn't return | 16 // "Sync" messages are just synchronous calls, the Send() call doesn't return |
19 // until a reply comes back. Input parameters are first (const TYPE&), and | 17 // until a reply comes back. Input parameters are first (const TYPE&), and |
20 // To declare a sync message, use the IPC_SYNC_ macros. The numbers at the | 18 // To declare a sync message, use the IPC_SYNC_ macros. The numbers at the |
21 // end show how many input/output parameters there are (i.e. 1_2 is 1 in, 2 | 19 // end show how many input/output parameters there are (i.e. 1_2 is 1 in, 2 |
22 // out). The caller does a Send([route id, ], in1, &out1, &out2). | 20 // out). The caller does a Send([route id, ], in1, &out1, &out2). |
23 // The receiver's handler function will be | 21 // The receiver's handler function will be |
24 // void OnSyncMessageName(const type1& in1, type2* out1, type3* out2) | 22 // void OnSyncMessageName(const type1& in1, type2* out1, type3* out2) |
25 // | 23 // |
26 // | 24 // |
27 // A caller can also send a synchronous message, while the receiver can respond | 25 // A caller can also send a synchronous message, while the receiver can respond |
28 // at a later time. This is transparent from the sender's side. The receiver | 26 // at a later time. This is transparent from the sender's side. The receiver |
29 // needs to use a different handler that takes in a IPC::Message* as the output | 27 // needs to use a different handler that takes in a IPC::Message* as the output |
30 // type, stash the message, and when it has the data it can Send the message. | 28 // type, stash the message, and when it has the data it can Send the message. |
31 // | 29 // |
32 // Use the IPC_MESSAGE_HANDLER_DELAY_REPLY macro instead of IPC_MESSAGE_HANDLER | 30 // Use the IPC_MESSAGE_HANDLER_DELAY_REPLY macro instead of IPC_MESSAGE_HANDLER |
33 // IPC_MESSAGE_HANDLER_DELAY_REPLY(ViewHostMsg_SyncMessageName, | 31 // IPC_MESSAGE_HANDLER_DELAY_REPLY(ViewHostMsg_SyncMessageName, |
34 // OnSyncMessageName) | 32 // OnSyncMessageName) |
35 // | 33 // |
36 // The handler function will look like: | 34 // The handler function will look like: |
37 // void OnSyncMessageName(const type1& in1, IPC::Message* reply_msg); | 35 // void OnSyncMessageName(const type1& in1, IPC::Message* reply_msg); |
38 // | 36 // |
39 // Receiver stashes the IPC::Message* pointer, and when it's ready, it does: | 37 // Receiver stashes the IPC::Message* pointer, and when it's ready, it does: |
40 // ViewHostMsg_SyncMessageName::WriteReplyParams(reply_msg, out1, out2); | 38 // ViewHostMsg_SyncMessageName::WriteReplyParams(reply_msg, out1, out2); |
41 // Send(reply_msg); | 39 // Send(reply_msg); |
42 | 40 |
43 #include "ipc/ipc_message_utils.h" | 41 #include "ipc/ipc_message_utils.h" |
44 | 42 |
45 | 43 // In case a file includes several X_messages.h files, we don't want to get |
46 #ifndef MESSAGES_INTERNAL_FILE | 44 // errors because each X_messages_internal.h file will define this. |
47 #error This file should only be included by X_messages.h, which needs to define\ | 45 #undef IPC_MESSAGE_START |
48 MESSAGES_INTERNAL_FILE first. | 46 |
| 47 #if defined(IPC_MESSAGE_IMPL) |
| 48 #include "ipc/ipc_message_impl_macros.h" |
| 49 #elif defined(IPC_MESSAGE_MACROS_LOG_ENABLED) |
| 50 |
| 51 #ifndef IPC_LOG_TABLE_CREATED |
| 52 #define IPC_LOG_TABLE_CREATED |
| 53 |
| 54 #include "base/hash_tables.h" |
| 55 |
| 56 typedef void (*LogFunction)(std::string* name, |
| 57 const IPC::Message* msg, |
| 58 std::string* params); |
| 59 |
| 60 typedef base::hash_map<uint32, LogFunction > LogFunctionMap; |
| 61 LogFunctionMap g_log_function_mapping; |
| 62 |
49 #endif | 63 #endif |
50 | 64 |
51 // Trick xcode into seeing the possible real dependencies since they | 65 |
52 // don't understand #include MESSAGES_INTERNAL_FILE. See http://crbug.com/7828 | 66 #define IPC_MESSAGE_LOG(msg_class) \ |
53 #if 0 | 67 class LoggerRegisterHelper##msg_class { \ |
54 #include "ipc/ipc_sync_message_unittest.h" | 68 public: \ |
55 #include "chrome/common/automation_messages_internal.h" | 69 LoggerRegisterHelper##msg_class() { \ |
56 #include "chrome/common/devtools_messages_internal.h" | 70 g_log_function_mapping[msg_class::ID] = msg_class::Log; \ |
57 #include "chrome/common/plugin_messages_internal.h" | 71 } \ |
58 #include "chrome/common/render_messages_internal.h" | 72 }; \ |
59 #include "chrome/common/worker_messages_internal.h" | 73 LoggerRegisterHelper##msg_class g_LoggerRegisterHelper##msg_class; |
60 #include "ppapi/proxy/ppapi_messages_internal.h" | 74 |
| 75 #define IPC_MESSAGE_CONTROL0_EXTRA(msg_class) \ |
| 76 IPC_MESSAGE_LOG(msg_class) |
| 77 |
| 78 #define IPC_MESSAGE_CONTROL1_EXTRA(msg_class, type1) \ |
| 79 IPC_MESSAGE_LOG(msg_class) |
| 80 |
| 81 #define IPC_MESSAGE_CONTROL2_EXTRA(msg_class, type1, type2) \ |
| 82 IPC_MESSAGE_LOG(msg_class) |
| 83 |
| 84 #define IPC_MESSAGE_CONTROL3_EXTRA(msg_class, type1, type2, type3) \ |
| 85 IPC_MESSAGE_LOG(msg_class) |
| 86 |
| 87 #define IPC_MESSAGE_CONTROL4_EXTRA(msg_class, type1, type2, type3, type4) \ |
| 88 IPC_MESSAGE_LOG(msg_class) |
| 89 |
| 90 #define IPC_MESSAGE_CONTROL5_EXTRA(msg_class, type1, type2, type3, type4, type5)
\ |
| 91 IPC_MESSAGE_LOG(msg_class) |
| 92 |
| 93 #define IPC_MESSAGE_ROUTED0_EXTRA(msg_class) \ |
| 94 IPC_MESSAGE_LOG(msg_class) |
| 95 |
| 96 #define IPC_MESSAGE_ROUTED1_EXTRA(msg_class, type1) \ |
| 97 IPC_MESSAGE_LOG(msg_class) |
| 98 |
| 99 #define IPC_MESSAGE_ROUTED2_EXTRA(msg_class, type1, type2) \ |
| 100 IPC_MESSAGE_LOG(msg_class) |
| 101 |
| 102 #define IPC_MESSAGE_ROUTED3_EXTRA(msg_class, type1, type2, type3) \ |
| 103 IPC_MESSAGE_LOG(msg_class) |
| 104 |
| 105 #define IPC_MESSAGE_ROUTED4_EXTRA(msg_class, type1, type2, type3, type4) \ |
| 106 IPC_MESSAGE_LOG(msg_class) |
| 107 |
| 108 #define IPC_MESSAGE_ROUTED5_EXTRA(msg_class, type1, type2, type3, type4, type5)
\ |
| 109 IPC_MESSAGE_LOG(msg_class) |
| 110 |
| 111 #define IPC_SYNC_MESSAGE_CONTROL0_0_EXTRA(msg_class) \ |
| 112 IPC_MESSAGE_LOG(msg_class) |
| 113 |
| 114 #define IPC_SYNC_MESSAGE_CONTROL0_1_EXTRA(msg_class, type1_out) \ |
| 115 IPC_MESSAGE_LOG(msg_class) |
| 116 |
| 117 #define IPC_SYNC_MESSAGE_CONTROL0_2_EXTRA(msg_class, type1_out, type2_out) \ |
| 118 IPC_MESSAGE_LOG(msg_class) |
| 119 |
| 120 #define IPC_SYNC_MESSAGE_CONTROL0_3_EXTRA(msg_class, type1_out, type2_out, type3
_out) \ |
| 121 IPC_MESSAGE_LOG(msg_class) |
| 122 |
| 123 #define IPC_SYNC_MESSAGE_CONTROL1_0_EXTRA(msg_class, type1_in) \ |
| 124 IPC_MESSAGE_LOG(msg_class) |
| 125 |
| 126 #define IPC_SYNC_MESSAGE_CONTROL1_1_EXTRA(msg_class, type1_in, type1_out) \ |
| 127 IPC_MESSAGE_LOG(msg_class) |
| 128 |
| 129 #define IPC_SYNC_MESSAGE_CONTROL1_2_EXTRA(msg_class, type1_in, type1_out, type2_
out) \ |
| 130 IPC_MESSAGE_LOG(msg_class) |
| 131 |
| 132 #define IPC_SYNC_MESSAGE_CONTROL1_3_EXTRA(msg_class, type1_in, type1_out, type2_
out, type3_out) \ |
| 133 IPC_MESSAGE_LOG(msg_class) |
| 134 |
| 135 #define IPC_SYNC_MESSAGE_CONTROL2_0_EXTRA(msg_class, type1_in, type2_in) \ |
| 136 IPC_MESSAGE_LOG(msg_class) |
| 137 |
| 138 #define IPC_SYNC_MESSAGE_CONTROL2_1_EXTRA(msg_class, type1_in, type2_in, type1_o
ut) \ |
| 139 IPC_MESSAGE_LOG(msg_class) |
| 140 |
| 141 #define IPC_SYNC_MESSAGE_CONTROL2_2_EXTRA(msg_class, type1_in, type2_in, type1_o
ut, type2_out) \ |
| 142 IPC_MESSAGE_LOG(msg_class) |
| 143 |
| 144 #define IPC_SYNC_MESSAGE_CONTROL2_3_EXTRA(msg_class, type1_in, type2_in, type1_o
ut, type2_out, type3_out) \ |
| 145 IPC_MESSAGE_LOG(msg_class) |
| 146 |
| 147 #define IPC_SYNC_MESSAGE_CONTROL3_1_EXTRA(msg_class, type1_in, type2_in, type3_i
n, type1_out) \ |
| 148 IPC_MESSAGE_LOG(msg_class) |
| 149 |
| 150 #define IPC_SYNC_MESSAGE_CONTROL3_2_EXTRA(msg_class, type1_in, type2_in, type3_i
n, type1_out, type2_out) \ |
| 151 IPC_MESSAGE_LOG(msg_class) |
| 152 |
| 153 #define IPC_SYNC_MESSAGE_CONTROL3_3_EXTRA(msg_class, type1_in, type2_in, type3_i
n, type1_out, type2_out, type3_out) \ |
| 154 IPC_MESSAGE_LOG(msg_class) |
| 155 |
| 156 #define IPC_SYNC_MESSAGE_CONTROL3_4_EXTRA(msg_class, type1_in, type2_in, type3_i
n, type1_out, type2_out, type3_out, type4_out) \ |
| 157 IPC_MESSAGE_LOG(msg_class) |
| 158 |
| 159 #define IPC_SYNC_MESSAGE_CONTROL4_1_EXTRA(msg_class, type1_in, type2_in, type3_i
n, type4_in, type1_out) \ |
| 160 IPC_MESSAGE_LOG(msg_class) |
| 161 |
| 162 #define IPC_SYNC_MESSAGE_CONTROL4_2_EXTRA(msg_class, type1_in, type2_in, type3_i
n, type4_in, type1_out, type2_out) \ |
| 163 IPC_MESSAGE_LOG(msg_class) |
| 164 |
| 165 #define IPC_SYNC_MESSAGE_ROUTED0_0_EXTRA(msg_class) \ |
| 166 IPC_MESSAGE_LOG(msg_class) |
| 167 |
| 168 #define IPC_SYNC_MESSAGE_ROUTED0_1_EXTRA(msg_class, type1_out) \ |
| 169 IPC_MESSAGE_LOG(msg_class) |
| 170 |
| 171 #define IPC_SYNC_MESSAGE_ROUTED0_2_EXTRA(msg_class, type1_out, type2_out) \ |
| 172 IPC_MESSAGE_LOG(msg_class) |
| 173 |
| 174 #define IPC_SYNC_MESSAGE_ROUTED0_3_EXTRA(msg_class, type1_out, type2_out, type3_
out) \ |
| 175 IPC_MESSAGE_LOG(msg_class) |
| 176 |
| 177 #define IPC_SYNC_MESSAGE_ROUTED1_0_EXTRA(msg_class, type1_in) \ |
| 178 IPC_MESSAGE_LOG(msg_class) |
| 179 |
| 180 #define IPC_SYNC_MESSAGE_ROUTED1_1_EXTRA(msg_class, type1_in, type1_out) \ |
| 181 IPC_MESSAGE_LOG(msg_class) |
| 182 |
| 183 #define IPC_SYNC_MESSAGE_ROUTED1_2_EXTRA(msg_class, type1_in, type1_out, type2_o
ut) \ |
| 184 IPC_MESSAGE_LOG(msg_class) |
| 185 |
| 186 #define IPC_SYNC_MESSAGE_ROUTED1_3_EXTRA(msg_class, type1_in, type1_out, type2_o
ut, type3_out) \ |
| 187 IPC_MESSAGE_LOG(msg_class) |
| 188 |
| 189 #define IPC_SYNC_MESSAGE_ROUTED1_4_EXTRA(msg_class, type1_in, type1_out, type2_o
ut, type3_out, type4_out) \ |
| 190 IPC_MESSAGE_LOG(msg_class) |
| 191 |
| 192 #define IPC_SYNC_MESSAGE_ROUTED2_0_EXTRA(msg_class, type1_in, type2_in) \ |
| 193 IPC_MESSAGE_LOG(msg_class) |
| 194 |
| 195 #define IPC_SYNC_MESSAGE_ROUTED2_1_EXTRA(msg_class, type1_in, type2_in, type1_ou
t) \ |
| 196 IPC_MESSAGE_LOG(msg_class) |
| 197 |
| 198 #define IPC_SYNC_MESSAGE_ROUTED2_2_EXTRA(msg_class, type1_in, type2_in, type1_ou
t, type2_out) \ |
| 199 IPC_MESSAGE_LOG(msg_class) |
| 200 |
| 201 #define IPC_SYNC_MESSAGE_ROUTED2_3_EXTRA(msg_class, type1_in, type2_in, type1_ou
t, type2_out, type3_out) \ |
| 202 IPC_MESSAGE_LOG(msg_class) |
| 203 |
| 204 #define IPC_SYNC_MESSAGE_ROUTED3_0_EXTRA(msg_class, type1_in, type2_in, type3_in
) \ |
| 205 IPC_MESSAGE_LOG(msg_class) |
| 206 |
| 207 #define IPC_SYNC_MESSAGE_ROUTED3_1_EXTRA(msg_class, type1_in, type2_in, type3_in
, type1_out) \ |
| 208 IPC_MESSAGE_LOG(msg_class) |
| 209 |
| 210 #define IPC_SYNC_MESSAGE_ROUTED3_2_EXTRA(msg_class, type1_in, type2_in, type3_in
, type1_out, type2_out) \ |
| 211 IPC_MESSAGE_LOG(msg_class) |
| 212 |
| 213 #define IPC_SYNC_MESSAGE_ROUTED3_3_EXTRA(msg_class, type1_in, type2_in, type3_in
, type1_out, type2_out, type3_out) \ |
| 214 IPC_MESSAGE_LOG(msg_class) |
| 215 |
| 216 #define IPC_SYNC_MESSAGE_ROUTED3_4_EXTRA(msg_class, type1_in, type2_in, type3_in
, type1_out, type2_out, type3_out, type4_out) \ |
| 217 IPC_MESSAGE_LOG(msg_class) |
| 218 |
| 219 #define IPC_SYNC_MESSAGE_ROUTED4_0_EXTRA(msg_class, type1_in, type2_in, type3_in
, type4_in) \ |
| 220 IPC_MESSAGE_LOG(msg_class) |
| 221 |
| 222 #define IPC_SYNC_MESSAGE_ROUTED4_1_EXTRA(msg_class, type1_in, type2_in, type3_in
, type4_in, type1_out) \ |
| 223 IPC_MESSAGE_LOG(msg_class) |
| 224 |
| 225 #define IPC_SYNC_MESSAGE_ROUTED4_2_EXTRA(msg_class, type1_in, type2_in, type3_in
, type4_in, type1_out, type2_out) \ |
| 226 IPC_MESSAGE_LOG(msg_class) |
| 227 |
| 228 #define IPC_SYNC_MESSAGE_ROUTED4_3_EXTRA(msg_class, type1_in, type2_in, type3_in
, type4_in, type1_out, type2_out, type3_out) \ |
| 229 IPC_MESSAGE_LOG(msg_class) |
| 230 |
| 231 #define IPC_SYNC_MESSAGE_ROUTED5_0_EXTRA(msg_class, type1_in, type2_in, type3_in
, type4_in, type5_in) \ |
| 232 IPC_MESSAGE_LOG(msg_class) |
| 233 |
| 234 #define IPC_SYNC_MESSAGE_ROUTED5_1_EXTRA(msg_class, type1_in, type2_in, type3_in
, type4_in, type5_in, type1_out) \ |
| 235 IPC_MESSAGE_LOG(msg_class) |
| 236 |
| 237 #define IPC_SYNC_MESSAGE_ROUTED5_2_EXTRA(msg_class, type1_in, type2_in, type3_in
, type4_in, type5_in, type1_out, type2_out) \ |
| 238 IPC_MESSAGE_LOG(msg_class) |
| 239 |
| 240 #define IPC_SYNC_MESSAGE_ROUTED5_3_EXTRA(msg_class, type1_in, type2_in, type3_in
, type4_in, type5_in, type1_out, type2_out, type3_out) \ |
| 241 IPC_MESSAGE_LOG(msg_class) |
| 242 |
| 243 #else |
| 244 |
| 245 #define IPC_MESSAGE_CONTROL0_EXTRA(msg_class) |
| 246 #define IPC_MESSAGE_CONTROL1_EXTRA(msg_class, type1) |
| 247 #define IPC_MESSAGE_CONTROL2_EXTRA(msg_class, type1, type2) |
| 248 #define IPC_MESSAGE_CONTROL3_EXTRA(msg_class, type1, type2, type3) |
| 249 #define IPC_MESSAGE_CONTROL4_EXTRA(msg_class, type1, type2, type3, type4) |
| 250 #define IPC_MESSAGE_CONTROL5_EXTRA(msg_class, type1, type2, type3, type4, type5) |
| 251 #define IPC_MESSAGE_ROUTED0_EXTRA(msg_class) |
| 252 #define IPC_MESSAGE_ROUTED1_EXTRA(msg_class, type1) |
| 253 #define IPC_MESSAGE_ROUTED2_EXTRA(msg_class, type1, type2) |
| 254 #define IPC_MESSAGE_ROUTED3_EXTRA(msg_class, type1, type2, type3) |
| 255 #define IPC_MESSAGE_ROUTED4_EXTRA(msg_class, type1, type2, type3, type4) |
| 256 #define IPC_MESSAGE_ROUTED5_EXTRA(msg_class, type1, type2, type3, type4, type5) |
| 257 #define IPC_SYNC_MESSAGE_CONTROL0_0_EXTRA(msg_class) |
| 258 #define IPC_SYNC_MESSAGE_CONTROL0_1_EXTRA(msg_class, type1_out) |
| 259 #define IPC_SYNC_MESSAGE_CONTROL0_2_EXTRA(msg_class, type1_out, type2_out) |
| 260 #define IPC_SYNC_MESSAGE_CONTROL0_3_EXTRA(msg_class, type1_out, type2_out, type3
_out) |
| 261 #define IPC_SYNC_MESSAGE_CONTROL1_0_EXTRA(msg_class, type1_in) |
| 262 #define IPC_SYNC_MESSAGE_CONTROL1_1_EXTRA(msg_class, type1_in, type1_out) |
| 263 #define IPC_SYNC_MESSAGE_CONTROL1_2_EXTRA(msg_class, type1_in, type1_out, type2_
out) |
| 264 #define IPC_SYNC_MESSAGE_CONTROL1_3_EXTRA(msg_class, type1_in, type1_out, type2_
out, type3_out) |
| 265 #define IPC_SYNC_MESSAGE_CONTROL2_0_EXTRA(msg_class, type1_in, type2_in) |
| 266 #define IPC_SYNC_MESSAGE_CONTROL2_1_EXTRA(msg_class, type1_in, type2_in, type1_o
ut) |
| 267 #define IPC_SYNC_MESSAGE_CONTROL2_2_EXTRA(msg_class, type1_in, type2_in, type1_o
ut, type2_out) |
| 268 #define IPC_SYNC_MESSAGE_CONTROL2_3_EXTRA(msg_class, type1_in, type2_in, type1_o
ut, type2_out, type3_out) |
| 269 #define IPC_SYNC_MESSAGE_CONTROL3_1_EXTRA(msg_class, type1_in, type2_in, type3_i
n, type1_out) |
| 270 #define IPC_SYNC_MESSAGE_CONTROL3_2_EXTRA(msg_class, type1_in, type2_in, type3_i
n, type1_out, type2_out) |
| 271 #define IPC_SYNC_MESSAGE_CONTROL3_3_EXTRA(msg_class, type1_in, type2_in, type3_i
n, type1_out, type2_out, type3_out) |
| 272 #define IPC_SYNC_MESSAGE_CONTROL3_4_EXTRA(msg_class, type1_in, type2_in, type3_i
n, type1_out, type2_out, type3_out, type4_out) |
| 273 #define IPC_SYNC_MESSAGE_CONTROL4_1_EXTRA(msg_class, type1_in, type2_in, type3_i
n, type4_in, type1_out) |
| 274 #define IPC_SYNC_MESSAGE_CONTROL4_2_EXTRA(msg_class, type1_in, type2_in, type3_i
n, type4_in, type1_out, type2_out) |
| 275 #define IPC_SYNC_MESSAGE_ROUTED0_0_EXTRA(msg_class) |
| 276 #define IPC_SYNC_MESSAGE_ROUTED0_1_EXTRA(msg_class, type1_out) |
| 277 #define IPC_SYNC_MESSAGE_ROUTED0_2_EXTRA(msg_class, type1_out, type2_out) |
| 278 #define IPC_SYNC_MESSAGE_ROUTED0_3_EXTRA(msg_class, type1_out, type2_out, type3_
out) |
| 279 #define IPC_SYNC_MESSAGE_ROUTED1_0_EXTRA(msg_class, type1_in) |
| 280 #define IPC_SYNC_MESSAGE_ROUTED1_1_EXTRA(msg_class, type1_in, type1_out) |
| 281 #define IPC_SYNC_MESSAGE_ROUTED1_2_EXTRA(msg_class, type1_in, type1_out, type2_o
ut) |
| 282 #define IPC_SYNC_MESSAGE_ROUTED1_3_EXTRA(msg_class, type1_in, type1_out, type2_o
ut, type3_out) |
| 283 #define IPC_SYNC_MESSAGE_ROUTED1_4_EXTRA(msg_class, type1_in, type1_out, type2_o
ut, type3_out, type4_out) |
| 284 #define IPC_SYNC_MESSAGE_ROUTED2_0_EXTRA(msg_class, type1_in, type2_in) |
| 285 #define IPC_SYNC_MESSAGE_ROUTED2_1_EXTRA(msg_class, type1_in, type2_in, type1_ou
t) |
| 286 #define IPC_SYNC_MESSAGE_ROUTED2_2_EXTRA(msg_class, type1_in, type2_in, type1_ou
t, type2_out) |
| 287 #define IPC_SYNC_MESSAGE_ROUTED2_3_EXTRA(msg_class, type1_in, type2_in, type1_ou
t, type2_out, type3_out) |
| 288 #define IPC_SYNC_MESSAGE_ROUTED3_0_EXTRA(msg_class, type1_in, type2_in, type3_in
) |
| 289 #define IPC_SYNC_MESSAGE_ROUTED3_1_EXTRA(msg_class, type1_in, type2_in, type3_in
, type1_out) |
| 290 #define IPC_SYNC_MESSAGE_ROUTED3_2_EXTRA(msg_class, type1_in, type2_in, type3_in
, type1_out, type2_out) |
| 291 #define IPC_SYNC_MESSAGE_ROUTED3_3_EXTRA(msg_class, type1_in, type2_in, type3_in
, type1_out, type2_out, type3_out) |
| 292 #define IPC_SYNC_MESSAGE_ROUTED3_4_EXTRA(msg_class, type1_in, type2_in, type3_in
, type1_out, type2_out, type3_out, type4_out) |
| 293 #define IPC_SYNC_MESSAGE_ROUTED4_0_EXTRA(msg_class, type1_in, type2_in, type3_in
, type4_in) |
| 294 #define IPC_SYNC_MESSAGE_ROUTED4_1_EXTRA(msg_class, type1_in, type2_in, type3_in
, type4_in, type1_out) |
| 295 #define IPC_SYNC_MESSAGE_ROUTED4_2_EXTRA(msg_class, type1_in, type2_in, type3_in
, type4_in, type1_out, type2_out) |
| 296 #define IPC_SYNC_MESSAGE_ROUTED4_3_EXTRA(msg_class, type1_in, type2_in, type3_in
, type4_in, type1_out, type2_out, type3_out) |
| 297 #define IPC_SYNC_MESSAGE_ROUTED5_0_EXTRA(msg_class, type1_in, type2_in, type3_in
, type4_in, type5_in) |
| 298 #define IPC_SYNC_MESSAGE_ROUTED5_1_EXTRA(msg_class, type1_in, type2_in, type3_in
, type4_in, type5_in, type1_out) |
| 299 #define IPC_SYNC_MESSAGE_ROUTED5_2_EXTRA(msg_class, type1_in, type2_in, type3_in
, type4_in, type5_in, type1_out, type2_out) |
| 300 #define IPC_SYNC_MESSAGE_ROUTED5_3_EXTRA(msg_class, type1_in, type2_in, type3_in
, type4_in, type5_in, type1_out, type2_out, type3_out) |
| 301 |
61 #endif | 302 #endif |
62 | 303 |
63 #ifndef IPC_MESSAGE_MACROS_INCLUDE_BLOCK | 304 // Note: we currently use __LINE__ to give unique IDs to messages within a file. |
64 #define IPC_MESSAGE_MACROS_INCLUDE_BLOCK | 305 // They're globally unique since each file defines its own IPC_MESSAGE_START. |
65 | 306 // Ideally, we wouldn't use line numbers, but instead use the __COUNTER__ macro, |
66 // Multi-pass include of X_messages_internal.h. Preprocessor magic allows | 307 // but it needs gcc 4.3 and xcode doesn't use it yet. When that happens, switch |
67 // us to use 1 header to define the enums and classes for our render messages. | 308 // to it. |
68 #define IPC_MESSAGE_MACROS_ENUMS | |
69 #include MESSAGES_INTERNAL_FILE | |
70 | |
71 #define IPC_MESSAGE_MACROS_CLASSES | |
72 #include MESSAGES_INTERNAL_FILE | |
73 | |
74 #ifdef IPC_MESSAGE_MACROS_LOG_ENABLED | |
75 #define IPC_MESSAGE_MACROS_LOG | |
76 #include MESSAGES_INTERNAL_FILE | |
77 #endif | |
78 | |
79 #undef MESSAGES_INTERNAL_FILE | |
80 #undef IPC_MESSAGE_MACROS_INCLUDE_BLOCK | |
81 | |
82 #endif | |
83 | |
84 #if defined(IPC_MESSAGE_MACROS_ENUMS) | |
85 #undef IPC_MESSAGE_MACROS_ENUMS | |
86 | |
87 | |
88 // Undefine the macros from the previous pass (if any). | |
89 #undef IPC_BEGIN_MESSAGES | |
90 #undef IPC_END_MESSAGES | |
91 #undef IPC_MESSAGE_CONTROL0 | |
92 #undef IPC_MESSAGE_CONTROL1 | |
93 #undef IPC_MESSAGE_CONTROL2 | |
94 #undef IPC_MESSAGE_CONTROL3 | |
95 #undef IPC_MESSAGE_CONTROL4 | |
96 #undef IPC_MESSAGE_CONTROL5 | |
97 #undef IPC_MESSAGE_ROUTED0 | |
98 #undef IPC_MESSAGE_ROUTED1 | |
99 #undef IPC_MESSAGE_ROUTED2 | |
100 #undef IPC_MESSAGE_ROUTED3 | |
101 #undef IPC_MESSAGE_ROUTED4 | |
102 #undef IPC_MESSAGE_ROUTED5 | |
103 #undef IPC_SYNC_MESSAGE_CONTROL0_0 | |
104 #undef IPC_SYNC_MESSAGE_CONTROL0_1 | |
105 #undef IPC_SYNC_MESSAGE_CONTROL0_2 | |
106 #undef IPC_SYNC_MESSAGE_CONTROL0_3 | |
107 #undef IPC_SYNC_MESSAGE_CONTROL1_0 | |
108 #undef IPC_SYNC_MESSAGE_CONTROL1_1 | |
109 #undef IPC_SYNC_MESSAGE_CONTROL1_2 | |
110 #undef IPC_SYNC_MESSAGE_CONTROL1_3 | |
111 #undef IPC_SYNC_MESSAGE_CONTROL2_0 | |
112 #undef IPC_SYNC_MESSAGE_CONTROL2_1 | |
113 #undef IPC_SYNC_MESSAGE_CONTROL2_2 | |
114 #undef IPC_SYNC_MESSAGE_CONTROL2_3 | |
115 #undef IPC_SYNC_MESSAGE_CONTROL3_1 | |
116 #undef IPC_SYNC_MESSAGE_CONTROL3_2 | |
117 #undef IPC_SYNC_MESSAGE_CONTROL3_3 | |
118 #undef IPC_SYNC_MESSAGE_CONTROL3_4 | |
119 #undef IPC_SYNC_MESSAGE_CONTROL4_1 | |
120 #undef IPC_SYNC_MESSAGE_CONTROL4_2 | |
121 #undef IPC_SYNC_MESSAGE_ROUTED0_0 | |
122 #undef IPC_SYNC_MESSAGE_ROUTED0_1 | |
123 #undef IPC_SYNC_MESSAGE_ROUTED0_2 | |
124 #undef IPC_SYNC_MESSAGE_ROUTED0_3 | |
125 #undef IPC_SYNC_MESSAGE_ROUTED1_0 | |
126 #undef IPC_SYNC_MESSAGE_ROUTED1_1 | |
127 #undef IPC_SYNC_MESSAGE_ROUTED1_2 | |
128 #undef IPC_SYNC_MESSAGE_ROUTED1_3 | |
129 #undef IPC_SYNC_MESSAGE_ROUTED1_4 | |
130 #undef IPC_SYNC_MESSAGE_ROUTED2_0 | |
131 #undef IPC_SYNC_MESSAGE_ROUTED2_1 | |
132 #undef IPC_SYNC_MESSAGE_ROUTED2_2 | |
133 #undef IPC_SYNC_MESSAGE_ROUTED2_3 | |
134 #undef IPC_SYNC_MESSAGE_ROUTED3_0 | |
135 #undef IPC_SYNC_MESSAGE_ROUTED3_1 | |
136 #undef IPC_SYNC_MESSAGE_ROUTED3_2 | |
137 #undef IPC_SYNC_MESSAGE_ROUTED3_3 | |
138 #undef IPC_SYNC_MESSAGE_ROUTED3_4 | |
139 #undef IPC_SYNC_MESSAGE_ROUTED4_0 | |
140 #undef IPC_SYNC_MESSAGE_ROUTED4_1 | |
141 #undef IPC_SYNC_MESSAGE_ROUTED4_2 | |
142 #undef IPC_SYNC_MESSAGE_ROUTED4_3 | |
143 #undef IPC_SYNC_MESSAGE_ROUTED5_0 | |
144 #undef IPC_SYNC_MESSAGE_ROUTED5_1 | |
145 #undef IPC_SYNC_MESSAGE_ROUTED5_2 | |
146 #undef IPC_SYNC_MESSAGE_ROUTED5_3 | |
147 | |
148 // We're using the lowest 16 bits of type for the message id, and the highest | |
149 // 16 bits for the channel type. | |
150 // | |
151 // Do label##PreStart so that automation messages keep the same id as before. | |
152 #define IPC_BEGIN_MESSAGES(label) \ | |
153 enum label##MsgType { \ | |
154 label##Start = label##MsgStart << 16, \ | |
155 label##PreStart = (label##MsgStart << 16) - 1, | |
156 | |
157 #define IPC_END_MESSAGES(label) \ | |
158 label##End \ | |
159 }; | |
160 | 309 |
161 #define IPC_MESSAGE_CONTROL0(msg_class) \ | 310 #define IPC_MESSAGE_CONTROL0(msg_class) \ |
162 msg_class##__ID, | 311 class msg_class : public IPC::Message { \ |
| 312 public: \ |
| 313 enum { ID = (IPC_MESSAGE_START << 16) + __LINE__ }; \ |
| 314 msg_class() \ |
| 315 : IPC::Message(MSG_ROUTING_CONTROL, \ |
| 316 ID, \ |
| 317 PRIORITY_NORMAL) {} \ |
| 318 }; \ |
| 319 IPC_MESSAGE_CONTROL0_EXTRA(msg_class) |
163 | 320 |
164 #define IPC_MESSAGE_CONTROL1(msg_class, type1) \ | 321 #define IPC_MESSAGE_CONTROL1(msg_class, type1) \ |
165 msg_class##__ID, | 322 class msg_class : public IPC::MessageWithTuple< Tuple1<type1> > { \ |
166 | 323 public: \ |
167 #define IPC_MESSAGE_CONTROL2(msg_class, type1, type2) \ | 324 enum { ID = (IPC_MESSAGE_START << 16) + __LINE__ }; \ |
168 msg_class##__ID, | 325 msg_class(const type1& arg1); \ |
169 | 326 ~msg_class(); \ |
170 #define IPC_MESSAGE_CONTROL3(msg_class, type1, type2, type3) \ | 327 static void Log(std::string* name, const Message* msg, std::string* l); \ |
171 msg_class##__ID, | 328 }; \ |
172 | 329 IPC_MESSAGE_CONTROL1_EXTRA(msg_class, type1) |
173 #define IPC_MESSAGE_CONTROL4(msg_class, type1, type2, type3, type4) \ | 330 |
174 msg_class##__ID, | 331 #define IPC_MESSAGE_CONTROL2(msg_class, type1, type2) \ |
| 332 class msg_class : public IPC::MessageWithTuple< Tuple2<type1, type2> > { \ |
| 333 public: \ |
| 334 enum { ID = (IPC_MESSAGE_START << 16) + __LINE__ }; \ |
| 335 msg_class(const type1& arg1, const type2& arg2); \ |
| 336 ~msg_class(); \ |
| 337 static void Log(std::string* name, const Message* msg, std::string* l); \ |
| 338 }; \ |
| 339 IPC_MESSAGE_CONTROL2_EXTRA(msg_class, type1, type2) |
| 340 |
| 341 #define IPC_MESSAGE_CONTROL3(msg_class, type1, type2, type3) \ |
| 342 class msg_class : \ |
| 343 public IPC::MessageWithTuple< Tuple3<type1, type2, type3> > { \ |
| 344 public: \ |
| 345 enum { ID = (IPC_MESSAGE_START << 16) + __LINE__ }; \ |
| 346 msg_class(const type1& arg1, const type2& arg2, const type3& arg3); \ |
| 347 ~msg_class(); \ |
| 348 static void Log(std::string* name, const Message* msg, std::string* l); \ |
| 349 }; \ |
| 350 IPC_MESSAGE_CONTROL3_EXTRA(msg_class, type1, type2, type3) |
| 351 |
| 352 #define IPC_MESSAGE_CONTROL4(msg_class, type1, type2, type3, type4) \ |
| 353 class msg_class : \ |
| 354 public IPC::MessageWithTuple< Tuple4<type1, type2, type3, type4> > { \ |
| 355 public: \ |
| 356 enum { ID = (IPC_MESSAGE_START << 16) + __LINE__ }; \ |
| 357 msg_class(const type1& arg1, const type2& arg2, const type3& arg3, \ |
| 358 const type4& arg4); \ |
| 359 ~msg_class(); \ |
| 360 static void Log(std::string* name, const Message* msg, std::string* l); \ |
| 361 }; \ |
| 362 IPC_MESSAGE_CONTROL4_EXTRA(msg_class, type1, type2, type3, type4) |
175 | 363 |
176 #define IPC_MESSAGE_CONTROL5(msg_class, type1, type2, type3, type4, type5) \ | 364 #define IPC_MESSAGE_CONTROL5(msg_class, type1, type2, type3, type4, type5) \ |
177 msg_class##__ID, | 365 class msg_class : \ |
| 366 public IPC::MessageWithTuple< Tuple5<type1, type2, type3, type4, \ |
| 367 type5> > { \ |
| 368 public: \ |
| 369 enum { ID = (IPC_MESSAGE_START << 16) + __LINE__ }; \ |
| 370 msg_class(const type1& arg1, const type2& arg2, \ |
| 371 const type3& arg3, const type4& arg4, const type5& arg5); \ |
| 372 ~msg_class(); \ |
| 373 static void Log(std::string* name, const Message* msg, std::string* l); \ |
| 374 }; \ |
| 375 IPC_MESSAGE_CONTROL5_EXTRA(msg_class, type1, type2, type3, type4, type5) |
178 | 376 |
179 #define IPC_MESSAGE_ROUTED0(msg_class) \ | 377 #define IPC_MESSAGE_ROUTED0(msg_class) \ |
180 msg_class##__ID, | 378 class msg_class : public IPC::Message { \ |
| 379 public: \ |
| 380 enum { ID = (IPC_MESSAGE_START << 16) + __LINE__ }; \ |
| 381 msg_class(int32 routing_id) \ |
| 382 : IPC::Message(routing_id, ID, PRIORITY_NORMAL) {} \ |
| 383 }; \ |
| 384 IPC_MESSAGE_ROUTED0_EXTRA(msg_class) |
181 | 385 |
182 #define IPC_MESSAGE_ROUTED1(msg_class, type1) \ | 386 #define IPC_MESSAGE_ROUTED1(msg_class, type1) \ |
183 msg_class##__ID, | 387 class msg_class : public IPC::MessageWithTuple< Tuple1<type1> > { \ |
184 | 388 public: \ |
185 #define IPC_MESSAGE_ROUTED2(msg_class, type1, type2) \ | 389 enum { ID = (IPC_MESSAGE_START << 16) + __LINE__ }; \ |
186 msg_class##__ID, | 390 msg_class(int32 routing_id, const type1& arg1); \ |
187 | 391 ~msg_class(); \ |
188 #define IPC_MESSAGE_ROUTED3(msg_class, type1, type2, type3) \ | 392 static void Log(std::string* name, const Message* msg, std::string* l); \ |
189 msg_class##__ID, | 393 }; \ |
190 | 394 IPC_MESSAGE_ROUTED1_EXTRA(msg_class, type1) |
191 #define IPC_MESSAGE_ROUTED4(msg_class, type1, type2, type3, type4) \ | 395 |
192 msg_class##__ID, | 396 #define IPC_MESSAGE_ROUTED2(msg_class, type1, type2) \ |
| 397 class msg_class \ |
| 398 : public IPC::MessageWithTuple< Tuple2<type1, type2> > { \ |
| 399 public: \ |
| 400 enum { ID = (IPC_MESSAGE_START << 16) + __LINE__ }; \ |
| 401 msg_class(int32 routing_id, const type1& arg1, const type2& arg2); \ |
| 402 ~msg_class(); \ |
| 403 static void Log(std::string* name, const Message* msg, std::string* l); \ |
| 404 }; \ |
| 405 IPC_MESSAGE_ROUTED2_EXTRA(msg_class, type1, type2) |
| 406 |
| 407 #define IPC_MESSAGE_ROUTED3(msg_class, type1, type2, type3) \ |
| 408 class msg_class \ |
| 409 : public IPC::MessageWithTuple< Tuple3<type1, type2, type3> > { \ |
| 410 public: \ |
| 411 enum { ID = (IPC_MESSAGE_START << 16) + __LINE__ }; \ |
| 412 msg_class(int32 routing_id, const type1& arg1, const type2& arg2, \ |
| 413 const type3& arg3); \ |
| 414 ~msg_class(); \ |
| 415 static void Log(std::string* name, const Message* msg, std::string* l); \ |
| 416 }; \ |
| 417 IPC_MESSAGE_ROUTED3_EXTRA(msg_class, type1, type2, type3) |
| 418 |
| 419 #define IPC_MESSAGE_ROUTED4(msg_class, type1, type2, type3, type4) \ |
| 420 class msg_class \ |
| 421 : public IPC::MessageWithTuple< Tuple4<type1, type2, type3, type4> > { \ |
| 422 public: \ |
| 423 enum { ID = (IPC_MESSAGE_START << 16) + __LINE__ }; \ |
| 424 msg_class(int32 routing_id, const type1& arg1, const type2& arg2, \ |
| 425 const type3& arg3, const type4& arg4); \ |
| 426 ~msg_class(); \ |
| 427 static void Log(std::string* name, const Message* msg, std::string* l); \ |
| 428 }; \ |
| 429 IPC_MESSAGE_ROUTED4_EXTRA(msg_class, type1, type2, type3, type4) |
193 | 430 |
194 #define IPC_MESSAGE_ROUTED5(msg_class, type1, type2, type3, type4, type5) \ | 431 #define IPC_MESSAGE_ROUTED5(msg_class, type1, type2, type3, type4, type5) \ |
195 msg_class##__ID, | 432 class msg_class \ |
| 433 : public IPC::MessageWithTuple< Tuple5<type1, type2, type3, type4, \ |
| 434 type5> > { \ |
| 435 public: \ |
| 436 enum { ID = (IPC_MESSAGE_START << 16) + __LINE__ }; \ |
| 437 msg_class(int32 routing_id, const type1& arg1, const type2& arg2, \ |
| 438 const type3& arg3, const type4& arg4, const type5& arg5); \ |
| 439 ~msg_class(); \ |
| 440 static void Log(std::string* name, const Message* msg, std::string* l); \ |
| 441 }; \ |
| 442 IPC_MESSAGE_ROUTED5_EXTRA(msg_class, type1, type2, type3, type4, type5) |
196 | 443 |
197 #define IPC_SYNC_MESSAGE_CONTROL0_0(msg_class) \ | 444 #define IPC_SYNC_MESSAGE_CONTROL0_0(msg_class) \ |
198 msg_class##__ID, | 445 class msg_class : public IPC::MessageWithReply<Tuple0, Tuple0 > { \ |
199 | 446 public: \ |
200 #define IPC_SYNC_MESSAGE_CONTROL0_1(msg_class, type1_out) \ | 447 enum { ID = (IPC_MESSAGE_START << 16) + __LINE__ }; \ |
201 msg_class##__ID, | 448 msg_class(); \ |
| 449 ~msg_class(); \ |
| 450 static void Log(std::string* name, const Message* msg, std::string* l); \ |
| 451 }; \ |
| 452 IPC_SYNC_MESSAGE_CONTROL0_0_EXTRA(msg_class) |
| 453 |
| 454 #define IPC_SYNC_MESSAGE_CONTROL0_1(msg_class, type1_out) \ |
| 455 class msg_class : public IPC::MessageWithReply<Tuple0, Tuple1<type1_out&> > {\ |
| 456 public: \ |
| 457 enum { ID = (IPC_MESSAGE_START << 16) + __LINE__ }; \ |
| 458 msg_class(type1_out* arg1); \ |
| 459 ~msg_class(); \ |
| 460 static void Log(std::string* name, const Message* msg, std::string* l); \ |
| 461 }; \ |
| 462 IPC_SYNC_MESSAGE_CONTROL0_1_EXTRA(msg_class, type1_out) |
202 | 463 |
203 #define IPC_SYNC_MESSAGE_CONTROL0_2(msg_class, type1_out, type2_out) \ | 464 #define IPC_SYNC_MESSAGE_CONTROL0_2(msg_class, type1_out, type2_out) \ |
204 msg_class##__ID, | 465 class msg_class : \ |
| 466 public IPC::MessageWithReply<Tuple0, Tuple2<type1_out&, type2_out&> > { \ |
| 467 public: \ |
| 468 enum { ID = (IPC_MESSAGE_START << 16) + __LINE__ }; \ |
| 469 msg_class(type1_out* arg1, type2_out* arg2); \ |
| 470 ~msg_class(); \ |
| 471 static void Log(std::string* name, const Message* msg, std::string* l); \ |
| 472 }; \ |
| 473 IPC_SYNC_MESSAGE_CONTROL0_2_EXTRA(msg_class, type1_out, type2_out) |
205 | 474 |
206 #define IPC_SYNC_MESSAGE_CONTROL0_3(msg_class, type1_out, type2_out, type3_out)
\ | 475 #define IPC_SYNC_MESSAGE_CONTROL0_3(msg_class, type1_out, type2_out, type3_out)
\ |
207 msg_class##__ID, | 476 class msg_class : \ |
208 | 477 public IPC::MessageWithReply<Tuple0, \ |
209 #define IPC_SYNC_MESSAGE_CONTROL1_0(msg_class, type1_in) \ | 478 Tuple3<type1_out&, type2_out&, type3_out&> >{ \ |
210 msg_class##__ID, | 479 public: \ |
211 | 480 enum { ID = (IPC_MESSAGE_START << 16) + __LINE__ }; \ |
212 #define IPC_SYNC_MESSAGE_CONTROL1_1(msg_class, type1_in, type1_out) \ | 481 msg_class(type1_out* arg1, type2_out* arg2, type3_out* arg3); \ |
213 msg_class##__ID, | 482 ~msg_class(); \ |
| 483 static void Log(std::string* name, const Message* msg, std::string* l); \ |
| 484 }; \ |
| 485 IPC_SYNC_MESSAGE_CONTROL0_3_EXTRA(msg_class, type1_out, type2_out, type3_out) |
| 486 |
| 487 #define IPC_SYNC_MESSAGE_CONTROL1_0(msg_class, type1_in) \ |
| 488 class msg_class : \ |
| 489 public IPC::MessageWithReply<Tuple1<type1_in>, Tuple0 > { \ |
| 490 public: \ |
| 491 enum { ID = (IPC_MESSAGE_START << 16) + __LINE__ }; \ |
| 492 msg_class(const type1_in& arg1); \ |
| 493 ~msg_class(); \ |
| 494 static void Log(std::string* name, const Message* msg, std::string* l); \ |
| 495 }; \ |
| 496 IPC_SYNC_MESSAGE_CONTROL1_0_EXTRA(msg_class, type1_in) |
| 497 |
| 498 #define IPC_SYNC_MESSAGE_CONTROL1_1(msg_class, type1_in, type1_out) \ |
| 499 class msg_class : \ |
| 500 public IPC::MessageWithReply<Tuple1<type1_in>, Tuple1<type1_out&> > { \ |
| 501 public: \ |
| 502 enum { ID = (IPC_MESSAGE_START << 16) + __LINE__ }; \ |
| 503 msg_class(const type1_in& arg1, type1_out* arg2); \ |
| 504 ~msg_class(); \ |
| 505 static void Log(std::string* name, const Message* msg, std::string* l); \ |
| 506 }; \ |
| 507 IPC_SYNC_MESSAGE_CONTROL1_1_EXTRA(msg_class, type1_in, type1_out) |
214 | 508 |
215 #define IPC_SYNC_MESSAGE_CONTROL1_2(msg_class, type1_in, type1_out, type2_out) \ | 509 #define IPC_SYNC_MESSAGE_CONTROL1_2(msg_class, type1_in, type1_out, type2_out) \ |
216 msg_class##__ID, | 510 class msg_class : \ |
| 511 public IPC::MessageWithReply<Tuple1<type1_in>, Tuple2<type1_out&, type2_ou
t&> > { \ |
| 512 public: \ |
| 513 enum { ID = (IPC_MESSAGE_START << 16) + __LINE__ }; \ |
| 514 msg_class(const type1_in& arg1, type1_out* arg2, type2_out* arg3); \ |
| 515 ~msg_class(); \ |
| 516 static void Log(std::string* name, const Message* msg, std::string* l); \ |
| 517 }; \ |
| 518 IPC_SYNC_MESSAGE_CONTROL1_2_EXTRA(msg_class, type1_in, type1_out, type2_out) |
217 | 519 |
218 #define IPC_SYNC_MESSAGE_CONTROL1_3(msg_class, type1_in, type1_out, type2_out, t
ype3_out) \ | 520 #define IPC_SYNC_MESSAGE_CONTROL1_3(msg_class, type1_in, type1_out, type2_out, t
ype3_out) \ |
219 msg_class##__ID, | 521 class msg_class : \ |
220 | 522 public IPC::MessageWithReply<Tuple1<type1_in>, \ |
221 #define IPC_SYNC_MESSAGE_CONTROL2_0(msg_class, type1_in, type2_in) \ | 523 Tuple3<type1_out&, type2_out&, type3_out&> >{ \ |
222 msg_class##__ID, | 524 public: \ |
| 525 enum { ID = (IPC_MESSAGE_START << 16) + __LINE__ }; \ |
| 526 msg_class(const type1_in& arg1, type1_out* arg2, type2_out* arg3, type3_out*
arg4); \ |
| 527 ~msg_class(); \ |
| 528 static void Log(std::string* name, const Message* msg, std::string* l); \ |
| 529 }; \ |
| 530 IPC_SYNC_MESSAGE_CONTROL1_3_EXTRA(msg_class, type1_in, type1_out, type2_out, t
ype3_out) |
| 531 |
| 532 #define IPC_SYNC_MESSAGE_CONTROL2_0(msg_class, type1_in, type2_in) \ |
| 533 class msg_class : \ |
| 534 public IPC::MessageWithReply<Tuple2<type1_in, type2_in>, Tuple0 > { \ |
| 535 public: \ |
| 536 enum { ID = (IPC_MESSAGE_START << 16) + __LINE__ }; \ |
| 537 msg_class(const type1_in& arg1, const type2_in& arg2); \ |
| 538 ~msg_class(); \ |
| 539 static void Log(std::string* name, const Message* msg, std::string* l); \ |
| 540 }; \ |
| 541 IPC_SYNC_MESSAGE_CONTROL2_0_EXTRA(msg_class, type1_in, type2_in) |
223 | 542 |
224 #define IPC_SYNC_MESSAGE_CONTROL2_1(msg_class, type1_in, type2_in, type1_out) \ | 543 #define IPC_SYNC_MESSAGE_CONTROL2_1(msg_class, type1_in, type2_in, type1_out) \ |
225 msg_class##__ID, | 544 class msg_class : \ |
| 545 public IPC::MessageWithReply<Tuple2<type1_in, type2_in>, Tuple1<type1_out&
> > { \ |
| 546 public: \ |
| 547 enum { ID = (IPC_MESSAGE_START << 16) + __LINE__ }; \ |
| 548 msg_class(const type1_in& arg1, const type2_in& arg2, type1_out* arg3); \ |
| 549 ~msg_class(); \ |
| 550 static void Log(std::string* name, const Message* msg, std::string* l); \ |
| 551 }; \ |
| 552 IPC_SYNC_MESSAGE_CONTROL2_1_EXTRA(msg_class, type1_in, type2_in, type1_out) |
226 | 553 |
227 #define IPC_SYNC_MESSAGE_CONTROL2_2(msg_class, type1_in, type2_in, type1_out, ty
pe2_out) \ | 554 #define IPC_SYNC_MESSAGE_CONTROL2_2(msg_class, type1_in, type2_in, type1_out, ty
pe2_out) \ |
228 msg_class##__ID, | 555 class msg_class : \ |
| 556 public IPC::MessageWithReply<Tuple2<type1_in, type2_in>, \ |
| 557 Tuple2<type1_out&, type2_out&> > { \ |
| 558 public: \ |
| 559 enum { ID = (IPC_MESSAGE_START << 16) + __LINE__ }; \ |
| 560 msg_class(const type1_in& arg1, const type2_in& arg2, type1_out* arg3, type2
_out* arg4); \ |
| 561 ~msg_class(); \ |
| 562 static void Log(std::string* name, const Message* msg, std::string* l); \ |
| 563 }; \ |
| 564 IPC_SYNC_MESSAGE_CONTROL2_2_EXTRA(msg_class, type1_in, type2_in, type1_out, ty
pe2_out) |
229 | 565 |
230 #define IPC_SYNC_MESSAGE_CONTROL2_3(msg_class, type1_in, type2_in, type1_out, ty
pe2_out, type3_out) \ | 566 #define IPC_SYNC_MESSAGE_CONTROL2_3(msg_class, type1_in, type2_in, type1_out, ty
pe2_out, type3_out) \ |
231 msg_class##__ID, | 567 class msg_class : \ |
| 568 public IPC::MessageWithReply<Tuple2<type1_in, type2_in>, \ |
| 569 Tuple3<type1_out&, type2_out&, type3_out&> > { \ |
| 570 public: \ |
| 571 enum { ID = (IPC_MESSAGE_START << 16) + __LINE__ }; \ |
| 572 msg_class(const type1_in& arg1, const type2_in& arg2, type1_out* arg3, type2
_out* arg4, type3_out* arg5); \ |
| 573 ~msg_class(); \ |
| 574 static void Log(std::string* name, const Message* msg, std::string* l); \ |
| 575 }; \ |
| 576 IPC_SYNC_MESSAGE_CONTROL2_3_EXTRA(msg_class, type1_in, type2_in, type1_out, ty
pe2_out, type3_out) |
232 | 577 |
233 #define IPC_SYNC_MESSAGE_CONTROL3_1(msg_class, type1_in, type2_in, type3_in, typ
e1_out) \ | 578 #define IPC_SYNC_MESSAGE_CONTROL3_1(msg_class, type1_in, type2_in, type3_in, typ
e1_out) \ |
234 msg_class##__ID, | 579 class msg_class : \ |
| 580 public IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ |
| 581 Tuple1<type1_out&> > { \ |
| 582 public: \ |
| 583 enum { ID = (IPC_MESSAGE_START << 16) + __LINE__ }; \ |
| 584 msg_class(const type1_in& arg1, const type2_in& arg2, const type3_in& arg3,
type1_out* arg4); \ |
| 585 ~msg_class(); \ |
| 586 static void Log(std::string* name, const Message* msg, std::string* l); \ |
| 587 }; \ |
| 588 IPC_SYNC_MESSAGE_CONTROL3_1_EXTRA(msg_class, type1_in, type2_in, type3_in, typ
e1_out) |
235 | 589 |
236 #define IPC_SYNC_MESSAGE_CONTROL3_2(msg_class, type1_in, type2_in, type3_in, typ
e1_out, type2_out) \ | 590 #define IPC_SYNC_MESSAGE_CONTROL3_2(msg_class, type1_in, type2_in, type3_in, typ
e1_out, type2_out) \ |
237 msg_class##__ID, | 591 class msg_class : \ |
| 592 public IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ |
| 593 Tuple2<type1_out&, type2_out&> > { \ |
| 594 public: \ |
| 595 enum { ID = (IPC_MESSAGE_START << 16) + __LINE__ }; \ |
| 596 msg_class(const type1_in& arg1, const type2_in& arg2, const type3_in& arg3,
type1_out* arg4, type2_out* arg5); \ |
| 597 ~msg_class(); \ |
| 598 static void Log(std::string* name, const Message* msg, std::string* l); \ |
| 599 }; \ |
| 600 IPC_SYNC_MESSAGE_CONTROL3_2_EXTRA(msg_class, type1_in, type2_in, type3_in, typ
e1_out, type2_out) |
238 | 601 |
239 #define IPC_SYNC_MESSAGE_CONTROL3_3(msg_class, type1_in, type2_in, type3_in, typ
e1_out, type2_out, type3_out) \ | 602 #define IPC_SYNC_MESSAGE_CONTROL3_3(msg_class, type1_in, type2_in, type3_in, typ
e1_out, type2_out, type3_out) \ |
240 msg_class##__ID, | 603 class msg_class : \ |
| 604 public IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ |
| 605 Tuple3<type1_out&, type2_out&, type3_out&> > { \ |
| 606 public: \ |
| 607 enum { ID = (IPC_MESSAGE_START << 16) + __LINE__ }; \ |
| 608 msg_class(const type1_in& arg1, const type2_in& arg2, const type3_in& arg3,
type1_out* arg4, type2_out* arg5, type3_out* arg6); \ |
| 609 ~msg_class(); \ |
| 610 static void Log(std::string* name, const Message* msg, std::string* l); \ |
| 611 }; \ |
| 612 IPC_SYNC_MESSAGE_CONTROL3_3_EXTRA(msg_class, type1_in, type2_in, type3_in, typ
e1_out, type2_out, type3_out) |
241 | 613 |
242 #define IPC_SYNC_MESSAGE_CONTROL3_4(msg_class, type1_in, type2_in, type3_in, typ
e1_out, type2_out, type3_out, type4_out) \ | 614 #define IPC_SYNC_MESSAGE_CONTROL3_4(msg_class, type1_in, type2_in, type3_in, typ
e1_out, type2_out, type3_out, type4_out) \ |
243 msg_class##__ID, | 615 class msg_class : \ |
| 616 public IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ |
| 617 Tuple4<type1_out&, type2_out&, type3_out&, type4_out&> > { \ |
| 618 public: \ |
| 619 enum { ID = (IPC_MESSAGE_START << 16) + __LINE__ }; \ |
| 620 msg_class(const type1_in& arg1, const type2_in& arg2, const type3_in& arg3,
type1_out* arg4, type2_out* arg5, type3_out* arg6, type4_out* arg7); \ |
| 621 ~msg_class(); \ |
| 622 static void Log(std::string* name, const Message* msg, std::string* l);
\ |
| 623 }; \ |
| 624 IPC_SYNC_MESSAGE_CONTROL3_4_EXTRA(msg_class, type1_in, type2_in, type3_in, typ
e1_out, type2_out, type3_out, type4_out) |
244 | 625 |
245 #define IPC_SYNC_MESSAGE_CONTROL4_1(msg_class, type1_in, type2_in, type3_in, typ
e4_in, type1_out) \ | 626 #define IPC_SYNC_MESSAGE_CONTROL4_1(msg_class, type1_in, type2_in, type3_in, typ
e4_in, type1_out) \ |
246 msg_class##__ID, | 627 class msg_class : \ |
| 628 public IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in
>, \ |
| 629 Tuple1<type1_out&> > { \ |
| 630 public: \ |
| 631 enum { ID = (IPC_MESSAGE_START << 16) + __LINE__ }; \ |
| 632 msg_class(const type1_in& arg1, const type2_in& arg2, const type3_in& arg3,
const type4_in& arg4, type1_out* arg6); \ |
| 633 ~msg_class(); \ |
| 634 static void Log(std::string* name, const Message* msg, std::string* l); \ |
| 635 }; \ |
| 636 IPC_SYNC_MESSAGE_CONTROL4_1_EXTRA(msg_class, type1_in, type2_in, type3_in, typ
e4_in, type1_out) |
247 | 637 |
248 #define IPC_SYNC_MESSAGE_CONTROL4_2(msg_class, type1_in, type2_in, type3_in, typ
e4_in, type1_out, type2_out) \ | 638 #define IPC_SYNC_MESSAGE_CONTROL4_2(msg_class, type1_in, type2_in, type3_in, typ
e4_in, type1_out, type2_out) \ |
249 msg_class##__ID, | 639 class msg_class : \ |
| 640 public IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in
>, \ |
| 641 Tuple2<type1_out&, type2_out&> > { \ |
| 642 public: \ |
| 643 enum { ID = (IPC_MESSAGE_START << 16) + __LINE__ }; \ |
| 644 msg_class(const type1_in& arg1, const type2_in& arg2, const type3_in& arg3,
const type4_in& arg4, type1_out* arg5, type2_out* arg6); \ |
| 645 ~msg_class(); \ |
| 646 static void Log(std::string* name, const Message* msg, std::string* l); \ |
| 647 }; \ |
| 648 IPC_SYNC_MESSAGE_CONTROL4_2_EXTRA(msg_class, type1_in, type2_in, type3_in, typ
e4_in, type1_out, type2_out) |
250 | 649 |
251 #define IPC_SYNC_MESSAGE_ROUTED0_0(msg_class) \ | 650 #define IPC_SYNC_MESSAGE_ROUTED0_0(msg_class) \ |
252 msg_class##__ID, | 651 class msg_class : public IPC::MessageWithReply<Tuple0, Tuple0 > { \ |
| 652 public: \ |
| 653 enum { ID = (IPC_MESSAGE_START << 16) + __LINE__ }; \ |
| 654 msg_class(int routing_id); \ |
| 655 ~msg_class(); \ |
| 656 static void Log(std::string* name, const Message* msg, std::string* l); \ |
| 657 }; \ |
| 658 IPC_SYNC_MESSAGE_ROUTED0_0_EXTRA(msg_class) |
253 | 659 |
254 #define IPC_SYNC_MESSAGE_ROUTED0_1(msg_class, type1_out) \ | 660 #define IPC_SYNC_MESSAGE_ROUTED0_1(msg_class, type1_out) \ |
255 msg_class##__ID, | 661 class msg_class : public IPC::MessageWithReply<Tuple0, Tuple1<type1_out&> > {
\ |
| 662 public: \ |
| 663 enum { ID = (IPC_MESSAGE_START << 16) + __LINE__ }; \ |
| 664 msg_class(int routing_id, type1_out* arg1); \ |
| 665 ~msg_class(); \ |
| 666 static void Log(std::string* name, const Message* msg, std::string* l);
\ |
| 667 }; \ |
| 668 IPC_SYNC_MESSAGE_ROUTED0_1_EXTRA(msg_class, type1_out) |
256 | 669 |
257 #define IPC_SYNC_MESSAGE_ROUTED0_2(msg_class, type1_out, type2_out) \ | 670 #define IPC_SYNC_MESSAGE_ROUTED0_2(msg_class, type1_out, type2_out) \ |
258 msg_class##__ID, | 671 class msg_class : \ |
| 672 public IPC::MessageWithReply<Tuple0, Tuple2<type1_out&, type2_out&> > { \ |
| 673 public: \ |
| 674 enum { ID = (IPC_MESSAGE_START << 16) + __LINE__ }; \ |
| 675 msg_class(int routing_id, type1_out* arg1, type2_out* arg2); \ |
| 676 ~msg_class(); \ |
| 677 static void Log(std::string* name, const Message* msg, std::string* l); \ |
| 678 }; \ |
| 679 IPC_SYNC_MESSAGE_ROUTED0_2_EXTRA(msg_class, type1_out, type2_out) |
259 | 680 |
260 #define IPC_SYNC_MESSAGE_ROUTED0_3(msg_class, type1_out, type2_out, type3_out) \ | 681 #define IPC_SYNC_MESSAGE_ROUTED0_3(msg_class, type1_out, type2_out, type3_out) \ |
261 msg_class##__ID, | 682 class msg_class : \ |
| 683 public IPC::MessageWithReply<Tuple0, \ |
| 684 Tuple3<type1_out&, type2_out&, type3_out&> >{ \ |
| 685 public: \ |
| 686 enum { ID = (IPC_MESSAGE_START << 16) + __LINE__ }; \ |
| 687 msg_class(int routing_id, type1_out* arg1, type2_out* arg2, type3_out* arg3)
; \ |
| 688 ~msg_class(); \ |
| 689 static void Log(std::string* name, const Message* msg, std::string* l); \ |
| 690 }; \ |
| 691 IPC_SYNC_MESSAGE_ROUTED0_3_EXTRA(msg_class, type1_out, type2_out, type3_out) |
262 | 692 |
263 #define IPC_SYNC_MESSAGE_ROUTED1_0(msg_class, type1_in) \ | 693 #define IPC_SYNC_MESSAGE_ROUTED1_0(msg_class, type1_in) \ |
264 msg_class##__ID, | 694 class msg_class : \ |
| 695 public IPC::MessageWithReply<Tuple1<type1_in>, Tuple0 > { \ |
| 696 public: \ |
| 697 enum { ID = (IPC_MESSAGE_START << 16) + __LINE__ }; \ |
| 698 msg_class(int routing_id, const type1_in& arg1); \ |
| 699 ~msg_class(); \ |
| 700 static void Log(std::string* name, const Message* msg, std::string* l); \ |
| 701 }; \ |
| 702 IPC_SYNC_MESSAGE_ROUTED1_0_EXTRA(msg_class, type1_in) |
265 | 703 |
266 #define IPC_SYNC_MESSAGE_ROUTED1_1(msg_class, type1_in, type1_out) \ | 704 #define IPC_SYNC_MESSAGE_ROUTED1_1(msg_class, type1_in, type1_out) \ |
267 msg_class##__ID, | 705 class msg_class : \ |
| 706 public IPC::MessageWithReply<Tuple1<type1_in>, Tuple1<type1_out&> > { \ |
| 707 public: \ |
| 708 enum { ID = (IPC_MESSAGE_START << 16) + __LINE__ }; \ |
| 709 msg_class(int routing_id, const type1_in& arg1, type1_out* arg2); \ |
| 710 ~msg_class(); \ |
| 711 static void Log(std::string* name, const Message* msg, std::string* l); \ |
| 712 }; \ |
| 713 IPC_SYNC_MESSAGE_ROUTED1_1_EXTRA(msg_class, type1_in, type1_out) |
268 | 714 |
269 #define IPC_SYNC_MESSAGE_ROUTED1_2(msg_class, type1_in, type1_out, type2_out) \ | 715 #define IPC_SYNC_MESSAGE_ROUTED1_2(msg_class, type1_in, type1_out, type2_out) \ |
270 msg_class##__ID, | 716 class msg_class : \ |
| 717 public IPC::MessageWithReply<Tuple1<type1_in>, Tuple2<type1_out&, type2_ou
t&> > { \ |
| 718 public: \ |
| 719 enum { ID = (IPC_MESSAGE_START << 16) + __LINE__ }; \ |
| 720 msg_class(int routing_id, const type1_in& arg1, type1_out* arg2, type2_out*
arg3); \ |
| 721 ~msg_class(); \ |
| 722 static void Log(std::string* name, const Message* msg, std::string* l); \ |
| 723 }; \ |
| 724 IPC_SYNC_MESSAGE_ROUTED1_2_EXTRA(msg_class, type1_in, type1_out, type2_out) |
271 | 725 |
272 #define IPC_SYNC_MESSAGE_ROUTED1_3(msg_class, type1_in, type1_out, type2_out, ty
pe3_out) \ | 726 #define IPC_SYNC_MESSAGE_ROUTED1_3(msg_class, type1_in, type1_out, type2_out, ty
pe3_out) \ |
273 msg_class##__ID, | 727 class msg_class : \ |
| 728 public IPC::MessageWithReply<Tuple1<type1_in>, \ |
| 729 Tuple3<type1_out&, type2_out&, type3_out&> >{ \ |
| 730 public: \ |
| 731 enum { ID = (IPC_MESSAGE_START << 16) + __LINE__ }; \ |
| 732 msg_class(int routing_id, const type1_in& arg1, type1_out* arg2, type2_out*
arg3, type3_out* arg4); \ |
| 733 ~msg_class(); \ |
| 734 static void Log(std::string* name, const Message* msg, std::string* l); \ |
| 735 }; \ |
| 736 IPC_SYNC_MESSAGE_ROUTED1_3_EXTRA(msg_class, type1_in, type1_out, type2_out, ty
pe3_out) |
274 | 737 |
275 #define IPC_SYNC_MESSAGE_ROUTED1_4(msg_class, type1_in, type1_out, type2_out, ty
pe3_out, type4_out) \ | 738 #define IPC_SYNC_MESSAGE_ROUTED1_4(msg_class, type1_in, type1_out, type2_out, ty
pe3_out, type4_out) \ |
276 msg_class##__ID, | 739 class msg_class : \ |
| 740 public IPC::MessageWithReply<Tuple1<type1_in>, \ |
| 741 Tuple4<type1_out&, type2_out&, type3_out&, type4_out&> >{ \ |
| 742 public: \ |
| 743 enum { ID = (IPC_MESSAGE_START << 16) + __LINE__ }; \ |
| 744 msg_class(int routing_id, const type1_in& arg1, type1_out* arg2, type2_out*
arg3, type3_out* arg4, type4_out* arg5); \ |
| 745 ~msg_class(); \ |
| 746 static void Log(std::string* name, const Message* msg, std::string* l); \ |
| 747 }; \ |
| 748 IPC_SYNC_MESSAGE_ROUTED1_4_EXTRA(msg_class, type1_in, type1_out, type2_out, ty
pe3_out, type4_out) |
277 | 749 |
278 #define IPC_SYNC_MESSAGE_ROUTED2_0(msg_class, type1_in, type2_in) \ | 750 #define IPC_SYNC_MESSAGE_ROUTED2_0(msg_class, type1_in, type2_in) \ |
279 msg_class##__ID, | 751 class msg_class : \ |
| 752 public IPC::MessageWithReply<Tuple2<type1_in, type2_in>, Tuple0 > { \ |
| 753 public: \ |
| 754 enum { ID = (IPC_MESSAGE_START << 16) + __LINE__ }; \ |
| 755 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2); \ |
| 756 ~msg_class(); \ |
| 757 static void Log(std::string* name, const Message* msg, std::string* l); \ |
| 758 }; \ |
| 759 IPC_SYNC_MESSAGE_ROUTED2_0_EXTRA(msg_class, type1_in, type2_in) |
280 | 760 |
281 #define IPC_SYNC_MESSAGE_ROUTED2_1(msg_class, type1_in, type2_in, type1_out) \ | 761 #define IPC_SYNC_MESSAGE_ROUTED2_1(msg_class, type1_in, type2_in, type1_out) \ |
282 msg_class##__ID, | 762 class msg_class : \ |
| 763 public IPC::MessageWithReply<Tuple2<type1_in, type2_in>, Tuple1<type1_out&
> > { \ |
| 764 public: \ |
| 765 enum { ID = (IPC_MESSAGE_START << 16) + __LINE__ }; \ |
| 766 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, type1_
out* arg3); \ |
| 767 ~msg_class(); \ |
| 768 static void Log(std::string* name, const Message* msg, std::string* l); \ |
| 769 }; \ |
| 770 IPC_SYNC_MESSAGE_ROUTED2_1_EXTRA(msg_class, type1_in, type2_in, type1_out) |
283 | 771 |
284 #define IPC_SYNC_MESSAGE_ROUTED2_2(msg_class, type1_in, type2_in, type1_out, typ
e2_out) \ | 772 #define IPC_SYNC_MESSAGE_ROUTED2_2(msg_class, type1_in, type2_in, type1_out, typ
e2_out) \ |
285 msg_class##__ID, | 773 class msg_class : \ |
| 774 public IPC::MessageWithReply<Tuple2<type1_in, type2_in>, \ |
| 775 Tuple2<type1_out&, type2_out&> > { \ |
| 776 public: \ |
| 777 enum { ID = (IPC_MESSAGE_START << 16) + __LINE__ }; \ |
| 778 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, type1_
out* arg3, type2_out* arg4); \ |
| 779 ~msg_class(); \ |
| 780 static void Log(std::string* name, const Message* msg, std::string* l); \ |
| 781 }; \ |
| 782 IPC_SYNC_MESSAGE_ROUTED2_2_EXTRA(msg_class, type1_in, type2_in, type1_out, typ
e2_out) |
286 | 783 |
287 #define IPC_SYNC_MESSAGE_ROUTED2_3(msg_class, type1_in, type2_in, type1_out, typ
e2_out, type3_out) \ | 784 #define IPC_SYNC_MESSAGE_ROUTED2_3(msg_class, type1_in, type2_in, type1_out, typ
e2_out, type3_out) \ |
288 msg_class##__ID, | 785 class msg_class : \ |
| 786 public IPC::MessageWithReply<Tuple2<type1_in, type2_in>, \ |
| 787 Tuple3<type1_out&, type2_out&, type3_out&> > { \ |
| 788 public: \ |
| 789 enum { ID = (IPC_MESSAGE_START << 16) + __LINE__ }; \ |
| 790 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, type1_
out* arg3, type2_out* arg4, type3_out* arg5); \ |
| 791 ~msg_class(); \ |
| 792 static void Log(std::string* name, const Message* msg, std::string* l); \ |
| 793 }; \ |
| 794 IPC_SYNC_MESSAGE_ROUTED2_3_EXTRA(msg_class, type1_in, type2_in, type1_out, typ
e2_out, type3_out) |
289 | 795 |
290 #define IPC_SYNC_MESSAGE_ROUTED3_0(msg_class, type1_in, type2_in, type3_in) \ | 796 #define IPC_SYNC_MESSAGE_ROUTED3_0(msg_class, type1_in, type2_in, type3_in) \ |
291 msg_class##__ID, | 797 class msg_class : \ |
| 798 public IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, Tuple0
> { \ |
| 799 public: \ |
| 800 enum { ID = (IPC_MESSAGE_START << 16) + __LINE__ }; \ |
| 801 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const
type3_in& arg3); \ |
| 802 ~msg_class(); \ |
| 803 static void Log(std::string* name, const Message* msg, std::string* l); \ |
| 804 }; \ |
| 805 IPC_SYNC_MESSAGE_ROUTED3_0_EXTRA(msg_class, type1_in, type2_in, type3_in) |
292 | 806 |
293 #define IPC_SYNC_MESSAGE_ROUTED3_1(msg_class, type1_in, type2_in, type3_in, type
1_out) \ | 807 #define IPC_SYNC_MESSAGE_ROUTED3_1(msg_class, type1_in, type2_in, type3_in, type
1_out) \ |
294 msg_class##__ID, | 808 class msg_class : \ |
| 809 public IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ |
| 810 Tuple1<type1_out&> > { \ |
| 811 public: \ |
| 812 enum { ID = (IPC_MESSAGE_START << 16) + __LINE__ }; \ |
| 813 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const
type3_in& arg3, type1_out* arg4); \ |
| 814 ~msg_class(); \ |
| 815 static void Log(std::string* name, const Message* msg, std::string* l); \ |
| 816 }; \ |
| 817 IPC_SYNC_MESSAGE_ROUTED3_1_EXTRA(msg_class, type1_in, type2_in, type3_in, type
1_out) |
295 | 818 |
296 #define IPC_SYNC_MESSAGE_ROUTED3_2(msg_class, type1_in, type2_in, type3_in, type
1_out, type2_out) \ | 819 #define IPC_SYNC_MESSAGE_ROUTED3_2(msg_class, type1_in, type2_in, type3_in, type
1_out, type2_out) \ |
297 msg_class##__ID, | 820 class msg_class : \ |
| 821 public IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ |
| 822 Tuple2<type1_out&, type2_out&> > { \ |
| 823 public: \ |
| 824 enum { ID = (IPC_MESSAGE_START << 16) + __LINE__ }; \ |
| 825 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const
type3_in& arg3, type1_out* arg4, type2_out* arg5); \ |
| 826 ~msg_class(); \ |
| 827 static void Log(std::string* name, const Message* msg, std::string* l); \ |
| 828 }; \ |
| 829 IPC_SYNC_MESSAGE_ROUTED3_2_EXTRA(msg_class, type1_in, type2_in, type3_in, type
1_out, type2_out) |
298 | 830 |
299 #define IPC_SYNC_MESSAGE_ROUTED3_3(msg_class, type1_in, type2_in, type3_in, type
1_out, type2_out, type3_out) \ | 831 #define IPC_SYNC_MESSAGE_ROUTED3_3(msg_class, type1_in, type2_in, type3_in, type
1_out, type2_out, type3_out) \ |
300 msg_class##__ID, | 832 class msg_class : \ |
| 833 public IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ |
| 834 Tuple3<type1_out&, type2_out&, type3_out&> > { \ |
| 835 public: \ |
| 836 enum { ID = (IPC_MESSAGE_START << 16) + __LINE__ }; \ |
| 837 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const
type3_in& arg3, type1_out* arg4, type2_out* arg5, type3_out* arg6); \ |
| 838 ~msg_class(); \ |
| 839 static void Log(std::string* name, const Message* msg, std::string* l); \ |
| 840 }; \ |
| 841 IPC_SYNC_MESSAGE_ROUTED3_3_EXTRA(msg_class, type1_in, type2_in, type3_in, type
1_out, type2_out, type3_out) |
301 | 842 |
302 #define IPC_SYNC_MESSAGE_ROUTED3_4(msg_class, type1_in, type2_in, type3_in, type
1_out, type2_out, type3_out, type4_out) \ | 843 #define IPC_SYNC_MESSAGE_ROUTED3_4(msg_class, type1_in, type2_in, type3_in, type
1_out, type2_out, type3_out, type4_out) \ |
303 msg_class##__ID, | 844 class msg_class : \ |
| 845 public IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ |
| 846 Tuple4<type1_out&, type2_out&, type3_out&, type4_out&> > { \ |
| 847 public: \ |
| 848 enum { ID = (IPC_MESSAGE_START << 16) + __LINE__ }; \ |
| 849 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const
type3_in& arg3, type1_out* arg4, type2_out* arg5, type3_out* arg6, type4_out* ar
g7); \ |
| 850 ~msg_class(); \ |
| 851 static void Log(std::string* name, const Message* msg, std::string* l); \ |
| 852 }; \ |
| 853 IPC_SYNC_MESSAGE_ROUTED3_4_EXTRA(msg_class, type1_in, type2_in, type3_in, type
1_out, type2_out, type3_out, type4_out) |
304 | 854 |
305 #define IPC_SYNC_MESSAGE_ROUTED4_0(msg_class, type1_in, type2_in, type3_in, type
4_in) \ | 855 #define IPC_SYNC_MESSAGE_ROUTED4_0(msg_class, type1_in, type2_in, type3_in, type
4_in) \ |
306 msg_class##__ID, | 856 class msg_class : \ |
| 857 public IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in
>, \ |
| 858 Tuple0 > { \ |
| 859 public: \ |
| 860 enum { ID = (IPC_MESSAGE_START << 16) + __LINE__ }; \ |
| 861 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const
type3_in& arg3, const type4_in& arg4); \ |
| 862 ~msg_class(); \ |
| 863 static void Log(std::string* name, const Message* msg, std::string* l); \ |
| 864 }; \ |
| 865 IPC_SYNC_MESSAGE_ROUTED4_0_EXTRA(msg_class, type1_in, type2_in, type3_in, type
4_in) |
307 | 866 |
308 #define IPC_SYNC_MESSAGE_ROUTED4_1(msg_class, type1_in, type2_in, type3_in, type
4_in, type1_out) \ | 867 #define IPC_SYNC_MESSAGE_ROUTED4_1(msg_class, type1_in, type2_in, type3_in, type
4_in, type1_out) \ |
309 msg_class##__ID, | 868 class msg_class : \ |
| 869 public IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in
>, \ |
| 870 Tuple1<type1_out&> > { \ |
| 871 public: \ |
| 872 enum { ID = (IPC_MESSAGE_START << 16) + __LINE__ }; \ |
| 873 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const
type3_in& arg3, const type4_in& arg4, type1_out* arg6); \ |
| 874 ~msg_class(); \ |
| 875 static void Log(std::string* name, const Message* msg, std::string* l); \ |
| 876 }; \ |
| 877 IPC_SYNC_MESSAGE_ROUTED4_1_EXTRA(msg_class, type1_in, type2_in, type3_in, type
4_in, type1_out) |
310 | 878 |
311 #define IPC_SYNC_MESSAGE_ROUTED4_2(msg_class, type1_in, type2_in, type3_in, type
4_in, type1_out, type2_out) \ | 879 #define IPC_SYNC_MESSAGE_ROUTED4_2(msg_class, type1_in, type2_in, type3_in, type
4_in, type1_out, type2_out) \ |
312 msg_class##__ID, | 880 class msg_class : \ |
| 881 public IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in
>, \ |
| 882 Tuple2<type1_out&, type2_out&> > { \ |
| 883 public: \ |
| 884 enum { ID = (IPC_MESSAGE_START << 16) + __LINE__ }; \ |
| 885 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const
type3_in& arg3, const type4_in& arg4, type1_out* arg5, type2_out* arg6); \ |
| 886 ~msg_class(); \ |
| 887 static void Log(std::string* name, const Message* msg, std::string* l); \ |
| 888 }; \ |
| 889 IPC_SYNC_MESSAGE_ROUTED4_2_EXTRA(msg_class, type1_in, type2_in, type3_in, type
4_in, type1_out, type2_out) |
313 | 890 |
314 #define IPC_SYNC_MESSAGE_ROUTED4_3(msg_class, type1_in, type2_in, type3_in, type
4_in, type1_out, type2_out, type3_out) \ | 891 #define IPC_SYNC_MESSAGE_ROUTED4_3(msg_class, type1_in, type2_in, type3_in, type
4_in, type1_out, type2_out, type3_out) \ |
315 msg_class##__ID, | 892 class msg_class : \ |
| 893 public IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in
>, \ |
| 894 Tuple3<type1_out&, type2_out&, type3_out&> > { \ |
| 895 public: \ |
| 896 enum { ID = (IPC_MESSAGE_START << 16) + __LINE__ }; \ |
| 897 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const
type3_in& arg3, const type4_in& arg4, type1_out* arg5, type2_out* arg6, type3_ou
t* arg7); \ |
| 898 ~msg_class(); \ |
| 899 static void Log(std::string* name, const Message* msg, std::string* l); \ |
| 900 }; \ |
| 901 IPC_SYNC_MESSAGE_ROUTED4_3_EXTRA(msg_class, type1_in, type2_in, type3_in, type
4_in, type1_out, type2_out, type3_out) |
316 | 902 |
317 #define IPC_SYNC_MESSAGE_ROUTED5_0(msg_class, type1_in, type2_in, type3_in, type
4_in, type5_in) \ | 903 #define IPC_SYNC_MESSAGE_ROUTED5_0(msg_class, type1_in, type2_in, type3_in, type
4_in, type5_in) \ |
318 msg_class##__ID, | 904 class msg_class : \ |
| 905 public IPC::MessageWithReply<Tuple5<type1_in, type2_in, type3_in, type4_in
, type5_in>, \ |
| 906 Tuple0 > { \ |
| 907 public: \ |
| 908 enum { ID = (IPC_MESSAGE_START << 16) + __LINE__ }; \ |
| 909 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const
type3_in& arg3, const type4_in& arg4, const type5_in& arg5); \ |
| 910 ~msg_class(); \ |
| 911 static void Log(std::string* name, const Message* msg, std::string* l); \ |
| 912 }; \ |
| 913 IPC_SYNC_MESSAGE_ROUTED5_0_EXTRA(msg_class, type1_in, type2_in, type3_in, type
4_in, type5_in) |
319 | 914 |
320 #define IPC_SYNC_MESSAGE_ROUTED5_1(msg_class, type1_in, type2_in, type3_in, type
4_in, type5_in, type1_out) \ | 915 #define IPC_SYNC_MESSAGE_ROUTED5_1(msg_class, type1_in, type2_in, type3_in, type
4_in, type5_in, type1_out) \ |
321 msg_class##__ID, | 916 class msg_class : \ |
| 917 public IPC::MessageWithReply<Tuple5<type1_in, type2_in, type3_in, type4_in
, type5_in>, \ |
| 918 Tuple1<type1_out&> > { \ |
| 919 public: \ |
| 920 enum { ID = (IPC_MESSAGE_START << 16) + __LINE__ }; \ |
| 921 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const
type3_in& arg3, const type4_in& arg4, const type5_in& arg5, type1_out* arg6); \ |
| 922 ~msg_class(); \ |
| 923 static void Log(std::string* name, const Message* msg, std::string* l); \ |
| 924 }; \ |
| 925 IPC_SYNC_MESSAGE_ROUTED5_1_EXTRA(msg_class, type1_in, type2_in, type3_in, type
4_in, type5_in, type1_out) |
322 | 926 |
323 #define IPC_SYNC_MESSAGE_ROUTED5_2(msg_class, type1_in, type2_in, type3_in, type
4_in, type5_in, type1_out, type2_out) \ | 927 #define IPC_SYNC_MESSAGE_ROUTED5_2(msg_class, type1_in, type2_in, type3_in, type
4_in, type5_in, type1_out, type2_out) \ |
324 msg_class##__ID, | 928 class msg_class : \ |
| 929 public IPC::MessageWithReply<Tuple5<type1_in, type2_in, type3_in, type4_in
, type5_in>, \ |
| 930 Tuple2<type1_out&, type2_out&> > { \ |
| 931 public: \ |
| 932 enum { ID = (IPC_MESSAGE_START << 16) + __LINE__ }; \ |
| 933 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const
type3_in& arg3, const type4_in& arg4, const type4_in& arg5, type1_out* arg6, typ
e2_out* arg7); \ |
| 934 ~msg_class(); \ |
| 935 static void Log(std::string* name, const Message* msg, std::string* l); \ |
| 936 }; \ |
| 937 IPC_SYNC_MESSAGE_ROUTED5_2_EXTRA(msg_class, type1_in, type2_in, type3_in, type
4_in, type5_in, type1_out, type2_out) |
325 | 938 |
326 #define IPC_SYNC_MESSAGE_ROUTED5_3(msg_class, type1_in, type2_in, type3_in, type
4_in, type5_in, type1_out, type2_out, type3_out) \ | 939 #define IPC_SYNC_MESSAGE_ROUTED5_3(msg_class, type1_in, type2_in, type3_in, type
4_in, type5_in, type1_out, type2_out, type3_out) \ |
327 msg_class##__ID, | 940 class msg_class : \ |
| 941 public IPC::MessageWithReply<Tuple5<type1_in, type2_in, type3_in, type4_in
, type5_in>, \ |
| 942 Tuple3<type1_out&, type2_out&, type3_out&> > { \ |
| 943 public: \ |
| 944 enum { ID = (IPC_MESSAGE_START << 16) + __LINE__ }; \ |
| 945 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const
type3_in& arg3, const type4_in& arg4, const type4_in& arg5, type1_out* arg6, typ
e2_out* arg7, type3_out* arg8); \ |
| 946 ~msg_class(); \ |
| 947 static void Log(std::string* name, const Message* msg, std::string* l); \ |
| 948 }; \ |
| 949 IPC_SYNC_MESSAGE_ROUTED5_3_EXTRA(msg_class, type1_in, type2_in, type3_in, type
4_in, type5_in, type1_out, type2_out, type3_out) |
| 950 |
| 951 |
328 | 952 |
329 // Message crackers and handlers. | 953 // Message crackers and handlers. |
330 // Prefer to use the IPC_BEGIN_MESSAGE_MAP_EX to the older macros since they | 954 // Prefer to use the IPC_BEGIN_MESSAGE_MAP_EX to the older macros since they |
331 // allow you to detect when a message could not be de-serialized. Usage: | 955 // allow you to detect when a message could not be de-serialized. Usage: |
332 // | 956 // |
333 // void MyClass::OnMessageReceived(const IPC::Message& msg) { | 957 // void MyClass::OnMessageReceived(const IPC::Message& msg) { |
334 // bool msg_is_good = false; | 958 // bool msg_is_good = false; |
335 // IPC_BEGIN_MESSAGE_MAP_EX(MyClass, msg, msg_is_good) | 959 // IPC_BEGIN_MESSAGE_MAP_EX(MyClass, msg, msg_is_good) |
336 // IPC_MESSAGE_HANDLER(MsgClassOne, OnMsgClassOne) | 960 // IPC_MESSAGE_HANDLER(MsgClassOne, OnMsgClassOne) |
337 // ...more handlers here ... | 961 // ...more handlers here ... |
338 // IPC_MESSAGE_HANDLER(MsgClassTen, OnMsgClassTen) | 962 // IPC_MESSAGE_HANDLER(MsgClassTen, OnMsgClassTen) |
339 // IPC_END_MESSAGE_MAP_EX() | 963 // IPC_END_MESSAGE_MAP_EX() |
340 // if (!msg_is_good) { | 964 // if (!msg_is_good) { |
341 // // Signal error here or terminate offending process. | 965 // // Signal error here or terminate offending process. |
342 // } | 966 // } |
343 // } | 967 // } |
344 | 968 |
| 969 |
345 #define IPC_DEFINE_MESSAGE_MAP(class_name) \ | 970 #define IPC_DEFINE_MESSAGE_MAP(class_name) \ |
346 void class_name::OnMessageReceived(const IPC::Message& msg) \ | 971 void class_name::OnMessageReceived(const IPC::Message& msg) \ |
347 IPC_BEGIN_MESSAGE_MAP(class_name, msg) | 972 IPC_BEGIN_MESSAGE_MAP(class_name, msg) |
348 | 973 |
349 #define IPC_BEGIN_MESSAGE_MAP_EX(class_name, msg, msg_is_ok) \ | 974 #define IPC_BEGIN_MESSAGE_MAP_EX(class_name, msg, msg_is_ok) \ |
350 { \ | 975 { \ |
351 typedef class_name _IpcMessageHandlerClass; \ | 976 typedef class_name _IpcMessageHandlerClass; \ |
352 const IPC::Message& ipc_message__ = msg; \ | 977 const IPC::Message& ipc_message__ = msg; \ |
353 bool& msg_is_ok__ = msg_is_ok; \ | 978 bool& msg_is_ok__ = msg_is_ok; \ |
354 switch (ipc_message__.type()) { \ | 979 switch (ipc_message__.type()) { \ |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
398 "Invalid message with type = " << \ | 1023 "Invalid message with type = " << \ |
399 ipc_message__.type()) | 1024 ipc_message__.type()) |
400 | 1025 |
401 #define IPC_END_MESSAGE_MAP() \ | 1026 #define IPC_END_MESSAGE_MAP() \ |
402 DCHECK(msg_is_ok__); \ | 1027 DCHECK(msg_is_ok__); \ |
403 } \ | 1028 } \ |
404 } | 1029 } |
405 | 1030 |
406 #define IPC_END_MESSAGE_MAP_EX() \ | 1031 #define IPC_END_MESSAGE_MAP_EX() \ |
407 } \ | 1032 } \ |
408 } | 1033 } |
409 | |
410 #elif defined(IPC_MESSAGE_MACROS_LOG) | |
411 #undef IPC_MESSAGE_MACROS_LOG | |
412 | |
413 | |
414 // Undefine the macros from the previous pass (if any). | |
415 #undef IPC_BEGIN_MESSAGES | |
416 #undef IPC_END_MESSAGES | |
417 #undef IPC_MESSAGE_CONTROL0 | |
418 #undef IPC_MESSAGE_CONTROL1 | |
419 #undef IPC_MESSAGE_CONTROL2 | |
420 #undef IPC_MESSAGE_CONTROL3 | |
421 #undef IPC_MESSAGE_CONTROL4 | |
422 #undef IPC_MESSAGE_CONTROL5 | |
423 #undef IPC_MESSAGE_ROUTED0 | |
424 #undef IPC_MESSAGE_ROUTED1 | |
425 #undef IPC_MESSAGE_ROUTED2 | |
426 #undef IPC_MESSAGE_ROUTED3 | |
427 #undef IPC_MESSAGE_ROUTED4 | |
428 #undef IPC_MESSAGE_ROUTED5 | |
429 #undef IPC_SYNC_MESSAGE_CONTROL0_0 | |
430 #undef IPC_SYNC_MESSAGE_CONTROL0_1 | |
431 #undef IPC_SYNC_MESSAGE_CONTROL0_2 | |
432 #undef IPC_SYNC_MESSAGE_CONTROL0_3 | |
433 #undef IPC_SYNC_MESSAGE_CONTROL1_0 | |
434 #undef IPC_SYNC_MESSAGE_CONTROL1_1 | |
435 #undef IPC_SYNC_MESSAGE_CONTROL1_2 | |
436 #undef IPC_SYNC_MESSAGE_CONTROL1_3 | |
437 #undef IPC_SYNC_MESSAGE_CONTROL2_0 | |
438 #undef IPC_SYNC_MESSAGE_CONTROL2_1 | |
439 #undef IPC_SYNC_MESSAGE_CONTROL2_2 | |
440 #undef IPC_SYNC_MESSAGE_CONTROL2_3 | |
441 #undef IPC_SYNC_MESSAGE_CONTROL3_1 | |
442 #undef IPC_SYNC_MESSAGE_CONTROL3_2 | |
443 #undef IPC_SYNC_MESSAGE_CONTROL3_3 | |
444 #undef IPC_SYNC_MESSAGE_CONTROL3_4 | |
445 #undef IPC_SYNC_MESSAGE_CONTROL4_1 | |
446 #undef IPC_SYNC_MESSAGE_CONTROL4_2 | |
447 #undef IPC_SYNC_MESSAGE_ROUTED0_0 | |
448 #undef IPC_SYNC_MESSAGE_ROUTED0_1 | |
449 #undef IPC_SYNC_MESSAGE_ROUTED0_2 | |
450 #undef IPC_SYNC_MESSAGE_ROUTED0_3 | |
451 #undef IPC_SYNC_MESSAGE_ROUTED1_0 | |
452 #undef IPC_SYNC_MESSAGE_ROUTED1_1 | |
453 #undef IPC_SYNC_MESSAGE_ROUTED1_2 | |
454 #undef IPC_SYNC_MESSAGE_ROUTED1_3 | |
455 #undef IPC_SYNC_MESSAGE_ROUTED1_4 | |
456 #undef IPC_SYNC_MESSAGE_ROUTED2_0 | |
457 #undef IPC_SYNC_MESSAGE_ROUTED2_1 | |
458 #undef IPC_SYNC_MESSAGE_ROUTED2_2 | |
459 #undef IPC_SYNC_MESSAGE_ROUTED2_3 | |
460 #undef IPC_SYNC_MESSAGE_ROUTED3_0 | |
461 #undef IPC_SYNC_MESSAGE_ROUTED3_1 | |
462 #undef IPC_SYNC_MESSAGE_ROUTED3_2 | |
463 #undef IPC_SYNC_MESSAGE_ROUTED3_3 | |
464 #undef IPC_SYNC_MESSAGE_ROUTED3_4 | |
465 #undef IPC_SYNC_MESSAGE_ROUTED4_0 | |
466 #undef IPC_SYNC_MESSAGE_ROUTED4_1 | |
467 #undef IPC_SYNC_MESSAGE_ROUTED4_2 | |
468 #undef IPC_SYNC_MESSAGE_ROUTED4_3 | |
469 #undef IPC_SYNC_MESSAGE_ROUTED5_0 | |
470 #undef IPC_SYNC_MESSAGE_ROUTED5_1 | |
471 #undef IPC_SYNC_MESSAGE_ROUTED5_2 | |
472 #undef IPC_SYNC_MESSAGE_ROUTED5_3 | |
473 | |
474 #ifndef IPC_LOG_TABLE_CREATED | |
475 #define IPC_LOG_TABLE_CREATED | |
476 typedef void (*LogFunction)(uint32 type, | |
477 std::string* name, | |
478 const IPC::Message* msg, | |
479 std::string* params); | |
480 | |
481 LogFunction g_log_function_mapping[LastMsgIndex]; | |
482 #endif | |
483 | |
484 | |
485 #define IPC_BEGIN_MESSAGES(label) \ | |
486 void label##MsgLog(uint32 type, std::string* name, const IPC::Message* msg, \ | |
487 std::string* params) { \ | |
488 switch (type) { | |
489 | |
490 #define IPC_END_MESSAGES(label) \ | |
491 default: \ | |
492 if (name) \ | |
493 *name = "[UNKNOWN " #label " MSG]"; \ | |
494 } \ | |
495 } \ | |
496 class LoggerRegisterHelper##label { \ | |
497 public: \ | |
498 LoggerRegisterHelper##label() { \ | |
499 g_log_function_mapping[label##MsgStart] = label##MsgLog; \ | |
500 } \ | |
501 }; \ | |
502 LoggerRegisterHelper##label g_LoggerRegisterHelper##label; | |
503 | |
504 #define IPC_MESSAGE_LOG(msg_class) \ | |
505 case msg_class##__ID: \ | |
506 if (name) \ | |
507 *name = #msg_class; \ | |
508 if (msg && params) \ | |
509 msg_class::Log(msg, params); \ | |
510 break; | |
511 | |
512 #define IPC_MESSAGE_CONTROL0(msg_class) \ | |
513 IPC_MESSAGE_LOG(msg_class) | |
514 | |
515 #define IPC_MESSAGE_CONTROL1(msg_class, type1) \ | |
516 IPC_MESSAGE_LOG(msg_class) | |
517 | |
518 #define IPC_MESSAGE_CONTROL2(msg_class, type1, type2) \ | |
519 IPC_MESSAGE_LOG(msg_class) | |
520 | |
521 #define IPC_MESSAGE_CONTROL3(msg_class, type1, type2, type3) \ | |
522 IPC_MESSAGE_LOG(msg_class) | |
523 | |
524 #define IPC_MESSAGE_CONTROL4(msg_class, type1, type2, type3, type4) \ | |
525 IPC_MESSAGE_LOG(msg_class) | |
526 | |
527 #define IPC_MESSAGE_CONTROL5(msg_class, type1, type2, type3, type4, type5) \ | |
528 IPC_MESSAGE_LOG(msg_class) | |
529 | |
530 #define IPC_MESSAGE_ROUTED0(msg_class) \ | |
531 IPC_MESSAGE_LOG(msg_class) | |
532 | |
533 #define IPC_MESSAGE_ROUTED1(msg_class, type1) \ | |
534 IPC_MESSAGE_LOG(msg_class) | |
535 | |
536 #define IPC_MESSAGE_ROUTED2(msg_class, type1, type2) \ | |
537 IPC_MESSAGE_LOG(msg_class) | |
538 | |
539 #define IPC_MESSAGE_ROUTED3(msg_class, type1, type2, type3) \ | |
540 IPC_MESSAGE_LOG(msg_class) | |
541 | |
542 #define IPC_MESSAGE_ROUTED4(msg_class, type1, type2, type3, type4) \ | |
543 IPC_MESSAGE_LOG(msg_class) | |
544 | |
545 #define IPC_MESSAGE_ROUTED5(msg_class, type1, type2, type3, type4, type5) \ | |
546 IPC_MESSAGE_LOG(msg_class) | |
547 | |
548 #define IPC_SYNC_MESSAGE_CONTROL0_0(msg_class) \ | |
549 IPC_MESSAGE_LOG(msg_class) | |
550 | |
551 #define IPC_SYNC_MESSAGE_CONTROL0_1(msg_class, type1_out) \ | |
552 IPC_MESSAGE_LOG(msg_class) | |
553 | |
554 #define IPC_SYNC_MESSAGE_CONTROL0_2(msg_class, type1_out, type2_out) \ | |
555 IPC_MESSAGE_LOG(msg_class) | |
556 | |
557 #define IPC_SYNC_MESSAGE_CONTROL0_3(msg_class, type1_out, type2_out, type3_out)
\ | |
558 IPC_MESSAGE_LOG(msg_class) | |
559 | |
560 #define IPC_SYNC_MESSAGE_CONTROL1_0(msg_class, type1_in) \ | |
561 IPC_MESSAGE_LOG(msg_class) | |
562 | |
563 #define IPC_SYNC_MESSAGE_CONTROL1_1(msg_class, type1_in, type1_out) \ | |
564 IPC_MESSAGE_LOG(msg_class) | |
565 | |
566 #define IPC_SYNC_MESSAGE_CONTROL1_2(msg_class, type1_in, type1_out, type2_out) \ | |
567 IPC_MESSAGE_LOG(msg_class) | |
568 | |
569 #define IPC_SYNC_MESSAGE_CONTROL1_3(msg_class, type1_in, type1_out, type2_out, t
ype3_out) \ | |
570 IPC_MESSAGE_LOG(msg_class) | |
571 | |
572 #define IPC_SYNC_MESSAGE_CONTROL2_0(msg_class, type1_in, type2_in) \ | |
573 IPC_MESSAGE_LOG(msg_class) | |
574 | |
575 #define IPC_SYNC_MESSAGE_CONTROL2_1(msg_class, type1_in, type2_in, type1_out) \ | |
576 IPC_MESSAGE_LOG(msg_class) | |
577 | |
578 #define IPC_SYNC_MESSAGE_CONTROL2_2(msg_class, type1_in, type2_in, type1_out, ty
pe2_out) \ | |
579 IPC_MESSAGE_LOG(msg_class) | |
580 | |
581 #define IPC_SYNC_MESSAGE_CONTROL2_3(msg_class, type1_in, type2_in, type1_out, ty
pe2_out, type3_out) \ | |
582 IPC_MESSAGE_LOG(msg_class) | |
583 | |
584 #define IPC_SYNC_MESSAGE_CONTROL3_1(msg_class, type1_in, type2_in, type3_in, typ
e1_out) \ | |
585 IPC_MESSAGE_LOG(msg_class) | |
586 | |
587 #define IPC_SYNC_MESSAGE_CONTROL3_2(msg_class, type1_in, type2_in, type3_in, typ
e1_out, type2_out) \ | |
588 IPC_MESSAGE_LOG(msg_class) | |
589 | |
590 #define IPC_SYNC_MESSAGE_CONTROL3_3(msg_class, type1_in, type2_in, type3_in, typ
e1_out, type2_out, type3_out) \ | |
591 IPC_MESSAGE_LOG(msg_class) | |
592 | |
593 #define IPC_SYNC_MESSAGE_CONTROL3_4(msg_class, type1_in, type2_in, type3_in, typ
e1_out, type2_out, type3_out, type4_out) \ | |
594 IPC_MESSAGE_LOG(msg_class) | |
595 | |
596 #define IPC_SYNC_MESSAGE_CONTROL4_1(msg_class, type1_in, type2_in, type3_in, typ
e4_in, type1_out) \ | |
597 IPC_MESSAGE_LOG(msg_class) | |
598 | |
599 #define IPC_SYNC_MESSAGE_CONTROL4_2(msg_class, type1_in, type2_in, type3_in, typ
e4_in, type1_out, type2_out) \ | |
600 IPC_MESSAGE_LOG(msg_class) | |
601 | |
602 #define IPC_SYNC_MESSAGE_ROUTED0_0(msg_class) \ | |
603 IPC_MESSAGE_LOG(msg_class) | |
604 | |
605 #define IPC_SYNC_MESSAGE_ROUTED0_1(msg_class, type1_out) \ | |
606 IPC_MESSAGE_LOG(msg_class) | |
607 | |
608 #define IPC_SYNC_MESSAGE_ROUTED0_2(msg_class, type1_out, type2_out) \ | |
609 IPC_MESSAGE_LOG(msg_class) | |
610 | |
611 #define IPC_SYNC_MESSAGE_ROUTED0_3(msg_class, type1_out, type2_out, type3_out) \ | |
612 IPC_MESSAGE_LOG(msg_class) | |
613 | |
614 #define IPC_SYNC_MESSAGE_ROUTED1_0(msg_class, type1_in) \ | |
615 IPC_MESSAGE_LOG(msg_class) | |
616 | |
617 #define IPC_SYNC_MESSAGE_ROUTED1_1(msg_class, type1_in, type1_out) \ | |
618 IPC_MESSAGE_LOG(msg_class) | |
619 | |
620 #define IPC_SYNC_MESSAGE_ROUTED1_2(msg_class, type1_in, type1_out, type2_out) \ | |
621 IPC_MESSAGE_LOG(msg_class) | |
622 | |
623 #define IPC_SYNC_MESSAGE_ROUTED1_3(msg_class, type1_in, type1_out, type2_out, ty
pe3_out) \ | |
624 IPC_MESSAGE_LOG(msg_class) | |
625 | |
626 #define IPC_SYNC_MESSAGE_ROUTED1_4(msg_class, type1_in, type1_out, type2_out, ty
pe3_out, type4_out) \ | |
627 IPC_MESSAGE_LOG(msg_class) | |
628 | |
629 #define IPC_SYNC_MESSAGE_ROUTED2_0(msg_class, type1_in, type2_in) \ | |
630 IPC_MESSAGE_LOG(msg_class) | |
631 | |
632 #define IPC_SYNC_MESSAGE_ROUTED2_1(msg_class, type1_in, type2_in, type1_out) \ | |
633 IPC_MESSAGE_LOG(msg_class) | |
634 | |
635 #define IPC_SYNC_MESSAGE_ROUTED2_2(msg_class, type1_in, type2_in, type1_out, typ
e2_out) \ | |
636 IPC_MESSAGE_LOG(msg_class) | |
637 | |
638 #define IPC_SYNC_MESSAGE_ROUTED2_3(msg_class, type1_in, type2_in, type1_out, typ
e2_out, type3_out) \ | |
639 IPC_MESSAGE_LOG(msg_class) | |
640 | |
641 #define IPC_SYNC_MESSAGE_ROUTED3_0(msg_class, type1_in, type2_in, type3_in) \ | |
642 IPC_MESSAGE_LOG(msg_class) | |
643 | |
644 #define IPC_SYNC_MESSAGE_ROUTED3_1(msg_class, type1_in, type2_in, type3_in, type
1_out) \ | |
645 IPC_MESSAGE_LOG(msg_class) | |
646 | |
647 #define IPC_SYNC_MESSAGE_ROUTED3_2(msg_class, type1_in, type2_in, type3_in, type
1_out, type2_out) \ | |
648 IPC_MESSAGE_LOG(msg_class) | |
649 | |
650 #define IPC_SYNC_MESSAGE_ROUTED3_3(msg_class, type1_in, type2_in, type3_in, type
1_out, type2_out, type3_out) \ | |
651 IPC_MESSAGE_LOG(msg_class) | |
652 | |
653 #define IPC_SYNC_MESSAGE_ROUTED3_4(msg_class, type1_in, type2_in, type3_in, type
1_out, type2_out, type3_out, type4_out) \ | |
654 IPC_MESSAGE_LOG(msg_class) | |
655 | |
656 #define IPC_SYNC_MESSAGE_ROUTED4_0(msg_class, type1_in, type2_in, type3_in, type
4_in) \ | |
657 IPC_MESSAGE_LOG(msg_class) | |
658 | |
659 #define IPC_SYNC_MESSAGE_ROUTED4_1(msg_class, type1_in, type2_in, type3_in, type
4_in, type1_out) \ | |
660 IPC_MESSAGE_LOG(msg_class) | |
661 | |
662 #define IPC_SYNC_MESSAGE_ROUTED4_2(msg_class, type1_in, type2_in, type3_in, type
4_in, type1_out, type2_out) \ | |
663 IPC_MESSAGE_LOG(msg_class) | |
664 | |
665 #define IPC_SYNC_MESSAGE_ROUTED4_3(msg_class, type1_in, type2_in, type3_in, type
4_in, type1_out, type2_out, type3_out) \ | |
666 IPC_MESSAGE_LOG(msg_class) | |
667 | |
668 #define IPC_SYNC_MESSAGE_ROUTED5_0(msg_class, type1_in, type2_in, type3_in, type
4_in, type5_in) \ | |
669 IPC_MESSAGE_LOG(msg_class) | |
670 | |
671 #define IPC_SYNC_MESSAGE_ROUTED5_1(msg_class, type1_in, type2_in, type3_in, type
4_in, type5_in, type1_out) \ | |
672 IPC_MESSAGE_LOG(msg_class) | |
673 | |
674 #define IPC_SYNC_MESSAGE_ROUTED5_2(msg_class, type1_in, type2_in, type3_in, type
4_in, type5_in, type1_out, type2_out) \ | |
675 IPC_MESSAGE_LOG(msg_class) | |
676 | |
677 #define IPC_SYNC_MESSAGE_ROUTED5_3(msg_class, type1_in, type2_in, type3_in, type
4_in, type5_in, type1_out, type2_out, type3_out) \ | |
678 IPC_MESSAGE_LOG(msg_class) | |
679 | |
680 #elif defined(IPC_MESSAGE_MACROS_CLASSES) | |
681 #undef IPC_MESSAGE_MACROS_CLASSES | |
682 | |
683 | |
684 // Undefine the macros from the previous pass (if any). | |
685 #undef IPC_BEGIN_MESSAGES | |
686 #undef IPC_END_MESSAGES | |
687 #undef IPC_MESSAGE_CONTROL0 | |
688 #undef IPC_MESSAGE_CONTROL1 | |
689 #undef IPC_MESSAGE_CONTROL2 | |
690 #undef IPC_MESSAGE_CONTROL3 | |
691 #undef IPC_MESSAGE_CONTROL4 | |
692 #undef IPC_MESSAGE_CONTROL5 | |
693 #undef IPC_MESSAGE_ROUTED0 | |
694 #undef IPC_MESSAGE_ROUTED1 | |
695 #undef IPC_MESSAGE_ROUTED2 | |
696 #undef IPC_MESSAGE_ROUTED3 | |
697 #undef IPC_MESSAGE_ROUTED4 | |
698 #undef IPC_MESSAGE_ROUTED5 | |
699 #undef IPC_SYNC_MESSAGE_CONTROL0_0 | |
700 #undef IPC_SYNC_MESSAGE_CONTROL0_1 | |
701 #undef IPC_SYNC_MESSAGE_CONTROL0_2 | |
702 #undef IPC_SYNC_MESSAGE_CONTROL0_3 | |
703 #undef IPC_SYNC_MESSAGE_CONTROL1_0 | |
704 #undef IPC_SYNC_MESSAGE_CONTROL1_1 | |
705 #undef IPC_SYNC_MESSAGE_CONTROL1_2 | |
706 #undef IPC_SYNC_MESSAGE_CONTROL1_3 | |
707 #undef IPC_SYNC_MESSAGE_CONTROL2_0 | |
708 #undef IPC_SYNC_MESSAGE_CONTROL2_1 | |
709 #undef IPC_SYNC_MESSAGE_CONTROL2_2 | |
710 #undef IPC_SYNC_MESSAGE_CONTROL2_3 | |
711 #undef IPC_SYNC_MESSAGE_CONTROL3_1 | |
712 #undef IPC_SYNC_MESSAGE_CONTROL3_2 | |
713 #undef IPC_SYNC_MESSAGE_CONTROL3_3 | |
714 #undef IPC_SYNC_MESSAGE_CONTROL3_4 | |
715 #undef IPC_SYNC_MESSAGE_CONTROL4_1 | |
716 #undef IPC_SYNC_MESSAGE_CONTROL4_2 | |
717 #undef IPC_SYNC_MESSAGE_ROUTED0_0 | |
718 #undef IPC_SYNC_MESSAGE_ROUTED0_1 | |
719 #undef IPC_SYNC_MESSAGE_ROUTED0_2 | |
720 #undef IPC_SYNC_MESSAGE_ROUTED0_3 | |
721 #undef IPC_SYNC_MESSAGE_ROUTED1_0 | |
722 #undef IPC_SYNC_MESSAGE_ROUTED1_1 | |
723 #undef IPC_SYNC_MESSAGE_ROUTED1_2 | |
724 #undef IPC_SYNC_MESSAGE_ROUTED1_3 | |
725 #undef IPC_SYNC_MESSAGE_ROUTED1_4 | |
726 #undef IPC_SYNC_MESSAGE_ROUTED2_0 | |
727 #undef IPC_SYNC_MESSAGE_ROUTED2_1 | |
728 #undef IPC_SYNC_MESSAGE_ROUTED2_2 | |
729 #undef IPC_SYNC_MESSAGE_ROUTED2_3 | |
730 #undef IPC_SYNC_MESSAGE_ROUTED3_0 | |
731 #undef IPC_SYNC_MESSAGE_ROUTED3_1 | |
732 #undef IPC_SYNC_MESSAGE_ROUTED3_2 | |
733 #undef IPC_SYNC_MESSAGE_ROUTED3_3 | |
734 #undef IPC_SYNC_MESSAGE_ROUTED3_4 | |
735 #undef IPC_SYNC_MESSAGE_ROUTED4_0 | |
736 #undef IPC_SYNC_MESSAGE_ROUTED4_1 | |
737 #undef IPC_SYNC_MESSAGE_ROUTED4_2 | |
738 #undef IPC_SYNC_MESSAGE_ROUTED4_3 | |
739 #undef IPC_SYNC_MESSAGE_ROUTED5_0 | |
740 #undef IPC_SYNC_MESSAGE_ROUTED5_1 | |
741 #undef IPC_SYNC_MESSAGE_ROUTED5_2 | |
742 #undef IPC_SYNC_MESSAGE_ROUTED5_3 | |
743 | |
744 #define IPC_BEGIN_MESSAGES(label) | |
745 #define IPC_END_MESSAGES(label) | |
746 | |
747 #define IPC_MESSAGE_CONTROL0(msg_class) \ | |
748 class msg_class : public IPC::Message { \ | |
749 public: \ | |
750 enum { ID = msg_class##__ID }; \ | |
751 msg_class() \ | |
752 : IPC::Message(MSG_ROUTING_CONTROL, \ | |
753 ID, \ | |
754 PRIORITY_NORMAL) {} \ | |
755 }; | |
756 | |
757 #define IPC_MESSAGE_CONTROL1(msg_class, type1) \ | |
758 class msg_class : public IPC::MessageWithTuple< Tuple1<type1> > { \ | |
759 public: \ | |
760 enum { ID = msg_class##__ID }; \ | |
761 msg_class(const type1& arg1); \ | |
762 ~msg_class(); \ | |
763 static void Log(const Message* msg, std::string* l); \ | |
764 }; | |
765 | |
766 #define IPC_MESSAGE_CONTROL2(msg_class, type1, type2) \ | |
767 class msg_class : public IPC::MessageWithTuple< Tuple2<type1, type2> > { \ | |
768 public: \ | |
769 enum { ID = msg_class##__ID }; \ | |
770 msg_class(const type1& arg1, const type2& arg2); \ | |
771 ~msg_class(); \ | |
772 static void Log(const Message* msg, std::string* l); \ | |
773 }; | |
774 | |
775 #define IPC_MESSAGE_CONTROL3(msg_class, type1, type2, type3) \ | |
776 class msg_class : \ | |
777 public IPC::MessageWithTuple< Tuple3<type1, type2, type3> > { \ | |
778 public: \ | |
779 enum { ID = msg_class##__ID }; \ | |
780 msg_class(const type1& arg1, const type2& arg2, const type3& arg3); \ | |
781 ~msg_class(); \ | |
782 static void Log(const Message* msg, std::string* l); \ | |
783 }; | |
784 | |
785 #define IPC_MESSAGE_CONTROL4(msg_class, type1, type2, type3, type4) \ | |
786 class msg_class : \ | |
787 public IPC::MessageWithTuple< Tuple4<type1, type2, type3, type4> > { \ | |
788 public: \ | |
789 enum { ID = msg_class##__ID }; \ | |
790 msg_class(const type1& arg1, const type2& arg2, const type3& arg3, \ | |
791 const type4& arg4); \ | |
792 ~msg_class(); \ | |
793 static void Log(const Message* msg, std::string* l); \ | |
794 }; | |
795 | |
796 #define IPC_MESSAGE_CONTROL5(msg_class, type1, type2, type3, type4, type5) \ | |
797 class msg_class : \ | |
798 public IPC::MessageWithTuple< Tuple5<type1, type2, type3, type4, \ | |
799 type5> > { \ | |
800 public: \ | |
801 enum { ID = msg_class##__ID }; \ | |
802 msg_class(const type1& arg1, const type2& arg2, \ | |
803 const type3& arg3, const type4& arg4, const type5& arg5); \ | |
804 ~msg_class(); \ | |
805 static void Log(const Message* msg, std::string* l); \ | |
806 }; | |
807 | |
808 #define IPC_MESSAGE_ROUTED0(msg_class) \ | |
809 class msg_class : public IPC::Message { \ | |
810 public: \ | |
811 enum { ID = msg_class##__ID }; \ | |
812 msg_class(int32 routing_id) \ | |
813 : IPC::Message(routing_id, ID, PRIORITY_NORMAL) {} \ | |
814 }; | |
815 | |
816 #define IPC_MESSAGE_ROUTED1(msg_class, type1) \ | |
817 class msg_class : public IPC::MessageWithTuple< Tuple1<type1> > { \ | |
818 public: \ | |
819 enum { ID = msg_class##__ID }; \ | |
820 msg_class(int32 routing_id, const type1& arg1); \ | |
821 ~msg_class(); \ | |
822 static void Log(const Message* msg, std::string* l); \ | |
823 }; | |
824 | |
825 #define IPC_MESSAGE_ROUTED2(msg_class, type1, type2) \ | |
826 class msg_class \ | |
827 : public IPC::MessageWithTuple< Tuple2<type1, type2> > { \ | |
828 public: \ | |
829 enum { ID = msg_class##__ID }; \ | |
830 msg_class(int32 routing_id, const type1& arg1, const type2& arg2); \ | |
831 ~msg_class(); \ | |
832 static void Log(const Message* msg, std::string* l); \ | |
833 }; | |
834 | |
835 #define IPC_MESSAGE_ROUTED3(msg_class, type1, type2, type3) \ | |
836 class msg_class \ | |
837 : public IPC::MessageWithTuple< Tuple3<type1, type2, type3> > { \ | |
838 public: \ | |
839 enum { ID = msg_class##__ID }; \ | |
840 msg_class(int32 routing_id, const type1& arg1, const type2& arg2, \ | |
841 const type3& arg3); \ | |
842 ~msg_class(); \ | |
843 static void Log(const Message* msg, std::string* l); \ | |
844 }; | |
845 | |
846 #define IPC_MESSAGE_ROUTED4(msg_class, type1, type2, type3, type4) \ | |
847 class msg_class \ | |
848 : public IPC::MessageWithTuple< Tuple4<type1, type2, type3, type4> > { \ | |
849 public: \ | |
850 enum { ID = msg_class##__ID }; \ | |
851 msg_class(int32 routing_id, const type1& arg1, const type2& arg2, \ | |
852 const type3& arg3, const type4& arg4); \ | |
853 ~msg_class(); \ | |
854 static void Log(const Message* msg, std::string* l); \ | |
855 }; | |
856 | |
857 #define IPC_MESSAGE_ROUTED5(msg_class, type1, type2, type3, type4, type5) \ | |
858 class msg_class \ | |
859 : public IPC::MessageWithTuple< Tuple5<type1, type2, type3, type4, \ | |
860 type5> > { \ | |
861 public: \ | |
862 enum { ID = msg_class##__ID }; \ | |
863 msg_class(int32 routing_id, const type1& arg1, const type2& arg2, \ | |
864 const type3& arg3, const type4& arg4, const type5& arg5); \ | |
865 ~msg_class(); \ | |
866 static void Log(const Message* msg, std::string* l); \ | |
867 }; | |
868 | |
869 #define IPC_SYNC_MESSAGE_CONTROL0_0(msg_class) \ | |
870 class msg_class : public IPC::MessageWithReply<Tuple0, Tuple0 > { \ | |
871 public: \ | |
872 enum { ID = msg_class##__ID }; \ | |
873 msg_class(); \ | |
874 ~msg_class(); \ | |
875 static void Log(const Message* msg, std::string* l); \ | |
876 }; | |
877 | |
878 #define IPC_SYNC_MESSAGE_CONTROL0_1(msg_class, type1_out) \ | |
879 class msg_class : public IPC::MessageWithReply<Tuple0, Tuple1<type1_out&> > {\ | |
880 public: \ | |
881 enum { ID = msg_class##__ID }; \ | |
882 msg_class(type1_out* arg1); \ | |
883 ~msg_class(); \ | |
884 static void Log(const Message* msg, std::string* l); \ | |
885 }; | |
886 | |
887 #define IPC_SYNC_MESSAGE_CONTROL0_2(msg_class, type1_out, type2_out) \ | |
888 class msg_class : \ | |
889 public IPC::MessageWithReply<Tuple0, Tuple2<type1_out&, type2_out&> > { \ | |
890 public: \ | |
891 enum { ID = msg_class##__ID }; \ | |
892 msg_class(type1_out* arg1, type2_out* arg2); \ | |
893 ~msg_class(); \ | |
894 static void Log(const Message* msg, std::string* l); \ | |
895 }; | |
896 | |
897 #define IPC_SYNC_MESSAGE_CONTROL0_3(msg_class, type1_out, type2_out, type3_out)
\ | |
898 class msg_class : \ | |
899 public IPC::MessageWithReply<Tuple0, \ | |
900 Tuple3<type1_out&, type2_out&, type3_out&> >{ \ | |
901 public: \ | |
902 enum { ID = msg_class##__ID }; \ | |
903 msg_class(type1_out* arg1, type2_out* arg2, type3_out* arg3); \ | |
904 ~msg_class(); \ | |
905 static void Log(const Message* msg, std::string* l); \ | |
906 }; | |
907 | |
908 #define IPC_SYNC_MESSAGE_CONTROL1_0(msg_class, type1_in) \ | |
909 class msg_class : \ | |
910 public IPC::MessageWithReply<Tuple1<type1_in>, Tuple0 > { \ | |
911 public: \ | |
912 enum { ID = msg_class##__ID }; \ | |
913 msg_class(const type1_in& arg1); \ | |
914 ~msg_class(); \ | |
915 static void Log(const Message* msg, std::string* l); \ | |
916 }; | |
917 | |
918 #define IPC_SYNC_MESSAGE_CONTROL1_1(msg_class, type1_in, type1_out) \ | |
919 class msg_class : \ | |
920 public IPC::MessageWithReply<Tuple1<type1_in>, Tuple1<type1_out&> > { \ | |
921 public: \ | |
922 enum { ID = msg_class##__ID }; \ | |
923 msg_class(const type1_in& arg1, type1_out* arg2); \ | |
924 ~msg_class(); \ | |
925 static void Log(const Message* msg, std::string* l); \ | |
926 }; | |
927 | |
928 #define IPC_SYNC_MESSAGE_CONTROL1_2(msg_class, type1_in, type1_out, type2_out) \ | |
929 class msg_class : \ | |
930 public IPC::MessageWithReply<Tuple1<type1_in>, Tuple2<type1_out&, type2_ou
t&> > { \ | |
931 public: \ | |
932 enum { ID = msg_class##__ID }; \ | |
933 msg_class(const type1_in& arg1, type1_out* arg2, type2_out* arg3); \ | |
934 ~msg_class(); \ | |
935 static void Log(const Message* msg, std::string* l); \ | |
936 }; | |
937 | |
938 #define IPC_SYNC_MESSAGE_CONTROL1_3(msg_class, type1_in, type1_out, type2_out, t
ype3_out) \ | |
939 class msg_class : \ | |
940 public IPC::MessageWithReply<Tuple1<type1_in>, \ | |
941 Tuple3<type1_out&, type2_out&, type3_out&> >{ \ | |
942 public: \ | |
943 enum { ID = msg_class##__ID }; \ | |
944 msg_class(const type1_in& arg1, type1_out* arg2, type2_out* arg3, type3_out*
arg4); \ | |
945 ~msg_class(); \ | |
946 static void Log(const Message* msg, std::string* l); \ | |
947 }; | |
948 | |
949 #define IPC_SYNC_MESSAGE_CONTROL2_0(msg_class, type1_in, type2_in) \ | |
950 class msg_class : \ | |
951 public IPC::MessageWithReply<Tuple2<type1_in, type2_in>, Tuple0 > { \ | |
952 public: \ | |
953 enum { ID = msg_class##__ID }; \ | |
954 msg_class(const type1_in& arg1, const type2_in& arg2); \ | |
955 ~msg_class(); \ | |
956 static void Log(const Message* msg, std::string* l); \ | |
957 }; | |
958 | |
959 #define IPC_SYNC_MESSAGE_CONTROL2_1(msg_class, type1_in, type2_in, type1_out) \ | |
960 class msg_class : \ | |
961 public IPC::MessageWithReply<Tuple2<type1_in, type2_in>, Tuple1<type1_out&
> > { \ | |
962 public: \ | |
963 enum { ID = msg_class##__ID }; \ | |
964 msg_class(const type1_in& arg1, const type2_in& arg2, type1_out* arg3); \ | |
965 ~msg_class(); \ | |
966 static void Log(const Message* msg, std::string* l); \ | |
967 }; | |
968 | |
969 #define IPC_SYNC_MESSAGE_CONTROL2_2(msg_class, type1_in, type2_in, type1_out, ty
pe2_out) \ | |
970 class msg_class : \ | |
971 public IPC::MessageWithReply<Tuple2<type1_in, type2_in>, \ | |
972 Tuple2<type1_out&, type2_out&> > { \ | |
973 public: \ | |
974 enum { ID = msg_class##__ID }; \ | |
975 msg_class(const type1_in& arg1, const type2_in& arg2, type1_out* arg3, type2_
out* arg4); \ | |
976 ~msg_class(); \ | |
977 static void Log(const Message* msg, std::string* l); \ | |
978 }; | |
979 | |
980 #define IPC_SYNC_MESSAGE_CONTROL2_3(msg_class, type1_in, type2_in, type1_out, ty
pe2_out, type3_out) \ | |
981 class msg_class : \ | |
982 public IPC::MessageWithReply<Tuple2<type1_in, type2_in>, \ | |
983 Tuple3<type1_out&, type2_out&, type3_out&> > { \ | |
984 public: \ | |
985 enum { ID = msg_class##__ID }; \ | |
986 msg_class(const type1_in& arg1, const type2_in& arg2, type1_out* arg3, type2_
out* arg4, type3_out* arg5); \ | |
987 ~msg_class(); \ | |
988 static void Log(const Message* msg, std::string* l); \ | |
989 }; | |
990 | |
991 #define IPC_SYNC_MESSAGE_CONTROL3_1(msg_class, type1_in, type2_in, type3_in, typ
e1_out) \ | |
992 class msg_class : \ | |
993 public IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ | |
994 Tuple1<type1_out&> > { \ | |
995 public: \ | |
996 enum { ID = msg_class##__ID }; \ | |
997 msg_class(const type1_in& arg1, const type2_in& arg2, const type3_in& arg3, t
ype1_out* arg4); \ | |
998 ~msg_class(); \ | |
999 static void Log(const Message* msg, std::string* l); \ | |
1000 }; | |
1001 | |
1002 #define IPC_SYNC_MESSAGE_CONTROL3_2(msg_class, type1_in, type2_in, type3_in, typ
e1_out, type2_out) \ | |
1003 class msg_class : \ | |
1004 public IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ | |
1005 Tuple2<type1_out&, type2_out&> > { \ | |
1006 public: \ | |
1007 enum { ID = msg_class##__ID }; \ | |
1008 msg_class(const type1_in& arg1, const type2_in& arg2, const type3_in& arg3, t
ype1_out* arg4, type2_out* arg5); \ | |
1009 ~msg_class(); \ | |
1010 static void Log(const Message* msg, std::string* l); \ | |
1011 }; | |
1012 | |
1013 #define IPC_SYNC_MESSAGE_CONTROL3_3(msg_class, type1_in, type2_in, type3_in, typ
e1_out, type2_out, type3_out) \ | |
1014 class msg_class : \ | |
1015 public IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ | |
1016 Tuple3<type1_out&, type2_out&, type3_out&> > { \ | |
1017 public: \ | |
1018 enum { ID = msg_class##__ID }; \ | |
1019 msg_class(const type1_in& arg1, const type2_in& arg2, const type3_in& arg3, t
ype1_out* arg4, type2_out* arg5, type3_out* arg6); \ | |
1020 ~msg_class(); \ | |
1021 static void Log(const Message* msg, std::string* l); \ | |
1022 }; | |
1023 | |
1024 #define IPC_SYNC_MESSAGE_CONTROL3_4(msg_class, type1_in, type2_in, type3_in, typ
e1_out, type2_out, type3_out, type4_out) \ | |
1025 class msg_class : \ | |
1026 public IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ | |
1027 Tuple4<type1_out&, type2_out&, type3_out&, type4_out&> > { \ | |
1028 public: \ | |
1029 enum { ID = msg_class##__ID }; \ | |
1030 msg_class(const type1_in& arg1, const type2_in& arg2, const type3_in& arg3, t
ype1_out* arg4, type2_out* arg5, type3_out* arg6, type4_out* arg7); \ | |
1031 ~msg_class(); \ | |
1032 static void Log(const Message* msg, std::string* l); \ | |
1033 }; | |
1034 | |
1035 #define IPC_SYNC_MESSAGE_CONTROL4_1(msg_class, type1_in, type2_in, type3_in, typ
e4_in, type1_out) \ | |
1036 class msg_class : \ | |
1037 public IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in
>, \ | |
1038 Tuple1<type1_out&> > { \ | |
1039 public: \ | |
1040 enum { ID = msg_class##__ID }; \ | |
1041 msg_class(const type1_in& arg1, const type2_in& arg2, const type3_in& arg3, c
onst type4_in& arg4, type1_out* arg6); \ | |
1042 ~msg_class(); \ | |
1043 static void Log(const Message* msg, std::string* l); \ | |
1044 }; | |
1045 | |
1046 #define IPC_SYNC_MESSAGE_CONTROL4_2(msg_class, type1_in, type2_in, type3_in, typ
e4_in, type1_out, type2_out) \ | |
1047 class msg_class : \ | |
1048 public IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in
>, \ | |
1049 Tuple2<type1_out&, type2_out&> > { \ | |
1050 public: \ | |
1051 enum { ID = msg_class##__ID }; \ | |
1052 msg_class(const type1_in& arg1, const type2_in& arg2, const type3_in& arg3, c
onst type4_in& arg4, type1_out* arg5, type2_out* arg6); \ | |
1053 ~msg_class(); \ | |
1054 static void Log(const Message* msg, std::string* l); \ | |
1055 }; | |
1056 | |
1057 #define IPC_SYNC_MESSAGE_ROUTED0_0(msg_class) \ | |
1058 class msg_class : public IPC::MessageWithReply<Tuple0, Tuple0 > { \ | |
1059 public: \ | |
1060 enum { ID = msg_class##__ID }; \ | |
1061 msg_class(int routing_id); \ | |
1062 ~msg_class(); \ | |
1063 static void Log(const Message* msg, std::string* l); \ | |
1064 }; | |
1065 | |
1066 #define IPC_SYNC_MESSAGE_ROUTED0_1(msg_class, type1_out) \ | |
1067 class msg_class : public IPC::MessageWithReply<Tuple0, Tuple1<type1_out&> > {
\ | |
1068 public: \ | |
1069 enum { ID = msg_class##__ID }; \ | |
1070 msg_class(int routing_id, type1_out* arg1); \ | |
1071 ~msg_class(); \ | |
1072 static void Log(const Message* msg, std::string* l); \ | |
1073 }; | |
1074 | |
1075 #define IPC_SYNC_MESSAGE_ROUTED0_2(msg_class, type1_out, type2_out) \ | |
1076 class msg_class : \ | |
1077 public IPC::MessageWithReply<Tuple0, Tuple2<type1_out&, type2_out&> > { \ | |
1078 public: \ | |
1079 enum { ID = msg_class##__ID }; \ | |
1080 msg_class(int routing_id, type1_out* arg1, type2_out* arg2); \ | |
1081 ~msg_class(); \ | |
1082 static void Log(const Message* msg, std::string* l); \ | |
1083 }; | |
1084 | |
1085 #define IPC_SYNC_MESSAGE_ROUTED0_3(msg_class, type1_out, type2_out, type3_out) \ | |
1086 class msg_class : \ | |
1087 public IPC::MessageWithReply<Tuple0, \ | |
1088 Tuple3<type1_out&, type2_out&, type3_out&> >{ \ | |
1089 public: \ | |
1090 enum { ID = msg_class##__ID }; \ | |
1091 msg_class(int routing_id, type1_out* arg1, type2_out* arg2, type3_out* arg3);
\ | |
1092 ~msg_class(); \ | |
1093 static void Log(const Message* msg, std::string* l); \ | |
1094 }; | |
1095 | |
1096 #define IPC_SYNC_MESSAGE_ROUTED1_0(msg_class, type1_in) \ | |
1097 class msg_class : \ | |
1098 public IPC::MessageWithReply<Tuple1<type1_in>, Tuple0 > { \ | |
1099 public: \ | |
1100 enum { ID = msg_class##__ID }; \ | |
1101 msg_class(int routing_id, const type1_in& arg1); \ | |
1102 ~msg_class(); \ | |
1103 static void Log(const Message* msg, std::string* l); \ | |
1104 }; | |
1105 | |
1106 #define IPC_SYNC_MESSAGE_ROUTED1_1(msg_class, type1_in, type1_out) \ | |
1107 class msg_class : \ | |
1108 public IPC::MessageWithReply<Tuple1<type1_in>, Tuple1<type1_out&> > { \ | |
1109 public: \ | |
1110 enum { ID = msg_class##__ID }; \ | |
1111 msg_class(int routing_id, const type1_in& arg1, type1_out* arg2); \ | |
1112 ~msg_class(); \ | |
1113 static void Log(const Message* msg, std::string* l); \ | |
1114 }; | |
1115 | |
1116 #define IPC_SYNC_MESSAGE_ROUTED1_2(msg_class, type1_in, type1_out, type2_out) \ | |
1117 class msg_class : \ | |
1118 public IPC::MessageWithReply<Tuple1<type1_in>, Tuple2<type1_out&, type2_ou
t&> > { \ | |
1119 public: \ | |
1120 enum { ID = msg_class##__ID }; \ | |
1121 msg_class(int routing_id, const type1_in& arg1, type1_out* arg2, type2_out* a
rg3); \ | |
1122 ~msg_class(); \ | |
1123 static void Log(const Message* msg, std::string* l); \ | |
1124 }; | |
1125 | |
1126 #define IPC_SYNC_MESSAGE_ROUTED1_3(msg_class, type1_in, type1_out, type2_out, ty
pe3_out) \ | |
1127 class msg_class : \ | |
1128 public IPC::MessageWithReply<Tuple1<type1_in>, \ | |
1129 Tuple3<type1_out&, type2_out&, type3_out&> >{ \ | |
1130 public: \ | |
1131 enum { ID = msg_class##__ID }; \ | |
1132 msg_class(int routing_id, const type1_in& arg1, type1_out* arg2, type2_out* a
rg3, type3_out* arg4); \ | |
1133 ~msg_class(); \ | |
1134 static void Log(const Message* msg, std::string* l); \ | |
1135 }; | |
1136 | |
1137 #define IPC_SYNC_MESSAGE_ROUTED1_4(msg_class, type1_in, type1_out, type2_out, ty
pe3_out, type4_out) \ | |
1138 class msg_class : \ | |
1139 public IPC::MessageWithReply<Tuple1<type1_in>, \ | |
1140 Tuple4<type1_out&, type2_out&, type3_out&, type4_out&> >{ \ | |
1141 public: \ | |
1142 enum { ID = msg_class##__ID }; \ | |
1143 msg_class(int routing_id, const type1_in& arg1, type1_out* arg2, type2_out* a
rg3, type3_out* arg4, type4_out* arg5); \ | |
1144 ~msg_class(); \ | |
1145 static void Log(const Message* msg, std::string* l); \ | |
1146 }; | |
1147 | |
1148 #define IPC_SYNC_MESSAGE_ROUTED2_0(msg_class, type1_in, type2_in) \ | |
1149 class msg_class : \ | |
1150 public IPC::MessageWithReply<Tuple2<type1_in, type2_in>, Tuple0 > { \ | |
1151 public: \ | |
1152 enum { ID = msg_class##__ID }; \ | |
1153 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2); \ | |
1154 ~msg_class(); \ | |
1155 static void Log(const Message* msg, std::string* l); \ | |
1156 }; | |
1157 | |
1158 #define IPC_SYNC_MESSAGE_ROUTED2_1(msg_class, type1_in, type2_in, type1_out) \ | |
1159 class msg_class : \ | |
1160 public IPC::MessageWithReply<Tuple2<type1_in, type2_in>, Tuple1<type1_out&
> > { \ | |
1161 public: \ | |
1162 enum { ID = msg_class##__ID }; \ | |
1163 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, type1_o
ut* arg3); \ | |
1164 ~msg_class(); \ | |
1165 static void Log(const Message* msg, std::string* l); \ | |
1166 }; | |
1167 | |
1168 #define IPC_SYNC_MESSAGE_ROUTED2_2(msg_class, type1_in, type2_in, type1_out, typ
e2_out) \ | |
1169 class msg_class : \ | |
1170 public IPC::MessageWithReply<Tuple2<type1_in, type2_in>, \ | |
1171 Tuple2<type1_out&, type2_out&> > { \ | |
1172 public: \ | |
1173 enum { ID = msg_class##__ID }; \ | |
1174 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, type1_o
ut* arg3, type2_out* arg4); \ | |
1175 ~msg_class(); \ | |
1176 static void Log(const Message* msg, std::string* l); \ | |
1177 }; | |
1178 | |
1179 #define IPC_SYNC_MESSAGE_ROUTED2_3(msg_class, type1_in, type2_in, type1_out, typ
e2_out, type3_out) \ | |
1180 class msg_class : \ | |
1181 public IPC::MessageWithReply<Tuple2<type1_in, type2_in>, \ | |
1182 Tuple3<type1_out&, type2_out&, type3_out&> > { \ | |
1183 public: \ | |
1184 enum { ID = msg_class##__ID }; \ | |
1185 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, type1_o
ut* arg3, type2_out* arg4, type3_out* arg5); \ | |
1186 ~msg_class(); \ | |
1187 static void Log(const Message* msg, std::string* l); \ | |
1188 }; | |
1189 | |
1190 #define IPC_SYNC_MESSAGE_ROUTED3_0(msg_class, type1_in, type2_in, type3_in) \ | |
1191 class msg_class : \ | |
1192 public IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, Tuple0
> { \ | |
1193 public: \ | |
1194 enum { ID = msg_class##__ID }; \ | |
1195 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const t
ype3_in& arg3); \ | |
1196 ~msg_class(); \ | |
1197 static void Log(const Message* msg, std::string* l); \ | |
1198 }; | |
1199 | |
1200 #define IPC_SYNC_MESSAGE_ROUTED3_1(msg_class, type1_in, type2_in, type3_in, type
1_out) \ | |
1201 class msg_class : \ | |
1202 public IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ | |
1203 Tuple1<type1_out&> > { \ | |
1204 public: \ | |
1205 enum { ID = msg_class##__ID }; \ | |
1206 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const t
ype3_in& arg3, type1_out* arg4); \ | |
1207 ~msg_class(); \ | |
1208 static void Log(const Message* msg, std::string* l); \ | |
1209 }; | |
1210 | |
1211 #define IPC_SYNC_MESSAGE_ROUTED3_2(msg_class, type1_in, type2_in, type3_in, type
1_out, type2_out) \ | |
1212 class msg_class : \ | |
1213 public IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ | |
1214 Tuple2<type1_out&, type2_out&> > { \ | |
1215 public: \ | |
1216 enum { ID = msg_class##__ID }; \ | |
1217 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const t
ype3_in& arg3, type1_out* arg4, type2_out* arg5); \ | |
1218 ~msg_class(); \ | |
1219 static void Log(const Message* msg, std::string* l); \ | |
1220 }; | |
1221 | |
1222 #define IPC_SYNC_MESSAGE_ROUTED3_3(msg_class, type1_in, type2_in, type3_in, type
1_out, type2_out, type3_out) \ | |
1223 class msg_class : \ | |
1224 public IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ | |
1225 Tuple3<type1_out&, type2_out&, type3_out&> > { \ | |
1226 public: \ | |
1227 enum { ID = msg_class##__ID }; \ | |
1228 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const t
ype3_in& arg3, type1_out* arg4, type2_out* arg5, type3_out* arg6); \ | |
1229 ~msg_class(); \ | |
1230 static void Log(const Message* msg, std::string* l); \ | |
1231 }; | |
1232 | |
1233 #define IPC_SYNC_MESSAGE_ROUTED3_4(msg_class, type1_in, type2_in, type3_in, type
1_out, type2_out, type3_out, type4_out) \ | |
1234 class msg_class : \ | |
1235 public IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ | |
1236 Tuple4<type1_out&, type2_out&, type3_out&, type4_out&> > { \ | |
1237 public: \ | |
1238 enum { ID = msg_class##__ID }; \ | |
1239 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const t
ype3_in& arg3, type1_out* arg4, type2_out* arg5, type3_out* arg6, type4_out* arg
7); \ | |
1240 ~msg_class(); \ | |
1241 static void Log(const Message* msg, std::string* l); \ | |
1242 }; | |
1243 | |
1244 #define IPC_SYNC_MESSAGE_ROUTED4_0(msg_class, type1_in, type2_in, type3_in, type
4_in) \ | |
1245 class msg_class : \ | |
1246 public IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in
>, \ | |
1247 Tuple0 > { \ | |
1248 public: \ | |
1249 enum { ID = msg_class##__ID }; \ | |
1250 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const t
ype3_in& arg3, const type4_in& arg4); \ | |
1251 ~msg_class(); \ | |
1252 static void Log(const Message* msg, std::string* l); \ | |
1253 }; | |
1254 | |
1255 #define IPC_SYNC_MESSAGE_ROUTED4_1(msg_class, type1_in, type2_in, type3_in, type
4_in, type1_out) \ | |
1256 class msg_class : \ | |
1257 public IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in
>, \ | |
1258 Tuple1<type1_out&> > { \ | |
1259 public: \ | |
1260 enum { ID = msg_class##__ID }; \ | |
1261 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const t
ype3_in& arg3, const type4_in& arg4, type1_out* arg6); \ | |
1262 ~msg_class(); \ | |
1263 static void Log(const Message* msg, std::string* l); \ | |
1264 }; | |
1265 | |
1266 #define IPC_SYNC_MESSAGE_ROUTED4_2(msg_class, type1_in, type2_in, type3_in, type
4_in, type1_out, type2_out) \ | |
1267 class msg_class : \ | |
1268 public IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in
>, \ | |
1269 Tuple2<type1_out&, type2_out&> > { \ | |
1270 public: \ | |
1271 enum { ID = msg_class##__ID }; \ | |
1272 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const t
ype3_in& arg3, const type4_in& arg4, type1_out* arg5, type2_out* arg6); \ | |
1273 ~msg_class(); \ | |
1274 static void Log(const Message* msg, std::string* l); \ | |
1275 }; | |
1276 | |
1277 #define IPC_SYNC_MESSAGE_ROUTED4_3(msg_class, type1_in, type2_in, type3_in, type
4_in, type1_out, type2_out, type3_out) \ | |
1278 class msg_class : \ | |
1279 public IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in
>, \ | |
1280 Tuple3<type1_out&, type2_out&, type3_out&> > { \ | |
1281 public: \ | |
1282 enum { ID = msg_class##__ID }; \ | |
1283 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const t
ype3_in& arg3, const type4_in& arg4, type1_out* arg5, type2_out* arg6, type3_out
* arg7); \ | |
1284 ~msg_class(); \ | |
1285 static void Log(const Message* msg, std::string* l); \ | |
1286 }; | |
1287 | |
1288 #define IPC_SYNC_MESSAGE_ROUTED5_0(msg_class, type1_in, type2_in, type3_in, type
4_in, type5_in) \ | |
1289 class msg_class : \ | |
1290 public IPC::MessageWithReply<Tuple5<type1_in, type2_in, type3_in, type4_in
, type5_in>, \ | |
1291 Tuple0 > { \ | |
1292 public: \ | |
1293 enum { ID = msg_class##__ID }; \ | |
1294 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const t
ype3_in& arg3, const type4_in& arg4, const type5_in& arg5); \ | |
1295 ~msg_class(); \ | |
1296 static void Log(const Message* msg, std::string* l); \ | |
1297 }; | |
1298 | |
1299 #define IPC_SYNC_MESSAGE_ROUTED5_1(msg_class, type1_in, type2_in, type3_in, type
4_in, type5_in, type1_out) \ | |
1300 class msg_class : \ | |
1301 public IPC::MessageWithReply<Tuple5<type1_in, type2_in, type3_in, type4_in
, type5_in>, \ | |
1302 Tuple1<type1_out&> > { \ | |
1303 public: \ | |
1304 enum { ID = msg_class##__ID }; \ | |
1305 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const t
ype3_in& arg3, const type4_in& arg4, const type5_in& arg5, type1_out* arg6); \ | |
1306 ~msg_class(); \ | |
1307 static void Log(const Message* msg, std::string* l); \ | |
1308 }; | |
1309 | |
1310 #define IPC_SYNC_MESSAGE_ROUTED5_2(msg_class, type1_in, type2_in, type3_in, type
4_in, type5_in, type1_out, type2_out) \ | |
1311 class msg_class : \ | |
1312 public IPC::MessageWithReply<Tuple5<type1_in, type2_in, type3_in, type4_in
, type5_in>, \ | |
1313 Tuple2<type1_out&, type2_out&> > { \ | |
1314 public: \ | |
1315 enum { ID = msg_class##__ID }; \ | |
1316 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const t
ype3_in& arg3, const type4_in& arg4, const type4_in& arg5, type1_out* arg6, type
2_out* arg7); \ | |
1317 ~msg_class(); \ | |
1318 static void Log(const Message* msg, std::string* l); \ | |
1319 }; | |
1320 | |
1321 #define IPC_SYNC_MESSAGE_ROUTED5_3(msg_class, type1_in, type2_in, type3_in, type
4_in, type5_in, type1_out, type2_out, type3_out) \ | |
1322 class msg_class : \ | |
1323 public IPC::MessageWithReply<Tuple5<type1_in, type2_in, type3_in, type4_in
, type5_in>, \ | |
1324 Tuple3<type1_out&, type2_out&, type3_out&> > { \ | |
1325 public: \ | |
1326 enum { ID = msg_class##__ID }; \ | |
1327 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const t
ype3_in& arg3, const type4_in& arg4, const type4_in& arg5, type1_out* arg6, type
2_out* arg7, type3_out* arg8); \ | |
1328 ~msg_class(); \ | |
1329 static void Log(const Message* msg, std::string* l); \ | |
1330 }; | |
1331 | |
1332 #endif // #if defined() | |
OLD | NEW |