OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 // Defining IPC Messages | 5 // Defining IPC Messages |
6 // | 6 // |
7 // Your IPC messages will be defined by macros inside of an XXX_messages.h | 7 // Your IPC messages will be defined by macros inside of an XXX_messages.h |
8 // header file. Most of the time, the system can automatically generate all | 8 // header file. Most of the time, the system can automatically generate all |
9 // of messaging mechanism from these definitions, but sometimes some manual | 9 // of messaging mechanism from these definitions, but sometimes some manual |
10 // coding is required. In these cases, you will also have an XXX_messages.cc | 10 // coding is required. In these cases, you will also have an XXX_messages.cc |
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
184 #include "ipc/ipc_message_utils_impl.h" | 184 #include "ipc/ipc_message_utils_impl.h" |
185 #endif | 185 #endif |
186 | 186 |
187 // Override this to force message classes to be exported. | 187 // Override this to force message classes to be exported. |
188 #ifndef IPC_MESSAGE_EXPORT | 188 #ifndef IPC_MESSAGE_EXPORT |
189 #define IPC_MESSAGE_EXPORT | 189 #define IPC_MESSAGE_EXPORT |
190 #endif | 190 #endif |
191 | 191 |
192 // Macros for defining structs. May be subsequently redefined. | 192 // Macros for defining structs. May be subsequently redefined. |
193 #define IPC_STRUCT_BEGIN(struct_name) \ | 193 #define IPC_STRUCT_BEGIN(struct_name) \ |
| 194 IPC_STRUCT_BEGIN_WITH_PARENT(struct_name, IPC::NoParams) |
| 195 #define IPC_STRUCT_BEGIN_WITH_PARENT(struct_name, parent) \ |
194 struct struct_name; \ | 196 struct struct_name; \ |
195 IPC_STRUCT_TRAITS_BEGIN(struct_name) \ | 197 IPC_STRUCT_TRAITS_BEGIN(struct_name) \ |
196 IPC_STRUCT_TRAITS_END() \ | 198 IPC_STRUCT_TRAITS_END() \ |
197 struct IPC_MESSAGE_EXPORT struct_name : IPC::NoParams { \ | 199 struct IPC_MESSAGE_EXPORT struct_name : parent { \ |
198 struct_name(); \ | 200 struct_name(); \ |
199 ~struct_name(); | 201 ~struct_name(); |
200 #define IPC_STRUCT_MEMBER(type, name) type name; | 202 #define IPC_STRUCT_MEMBER(type, name) type name; |
201 #define IPC_STRUCT_END() }; | 203 #define IPC_STRUCT_END() }; |
202 | 204 |
203 // Message macros collect specific numbers of arguments and funnel them into | 205 // Message macros collect specific numbers of arguments and funnel them into |
204 // the common message generation macro. These should never be redefined. | 206 // the common message generation macro. These should never be redefined. |
205 #define IPC_MESSAGE_CONTROL0(msg_class) \ | 207 #define IPC_MESSAGE_CONTROL0(msg_class) \ |
206 IPC_MESSAGE_DECL(EMPTY, CONTROL, msg_class, 0, 0, (), ()) | 208 IPC_MESSAGE_DECL(EMPTY, CONTROL, msg_class, 0, 0, (), ()) |
207 | 209 |
(...skipping 795 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1003 // This corresponds to an enum value from IPCMessageStart. | 1005 // This corresponds to an enum value from IPCMessageStart. |
1004 #define IPC_MESSAGE_CLASS(message) \ | 1006 #define IPC_MESSAGE_CLASS(message) \ |
1005 IPC_MESSAGE_ID_CLASS(message.type()) | 1007 IPC_MESSAGE_ID_CLASS(message.type()) |
1006 | 1008 |
1007 #endif // IPC_IPC_MESSAGE_MACROS_H_ | 1009 #endif // IPC_IPC_MESSAGE_MACROS_H_ |
1008 | 1010 |
1009 // Clean up IPC_MESSAGE_START in this unguarded section so that the | 1011 // Clean up IPC_MESSAGE_START in this unguarded section so that the |
1010 // XXX_messages.h files need not do so themselves. This makes the | 1012 // XXX_messages.h files need not do so themselves. This makes the |
1011 // XXX_messages.h files easier to write. | 1013 // XXX_messages.h files easier to write. |
1012 #undef IPC_MESSAGE_START | 1014 #undef IPC_MESSAGE_START |
OLD | NEW |