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