Index: ipc/ipc_message_macros.h |
=================================================================== |
--- ipc/ipc_message_macros.h (revision 73235) |
+++ ipc/ipc_message_macros.h (working copy) |
@@ -360,6 +360,25 @@ |
// but it needs gcc 4.3 and xcode doesn't use it yet. When that happens, switch |
// to it. |
+#define IPC_STRUCT_FIRST(type, name, init) \ |
+ struct IPC_STRUCT_NAME { IPC_STRUCT_NAME (); ~IPC_STRUCT_NAME (); \ |
+ IPC_STRUCT_MEMBER(type, name) |
+#define IPC_STRUCT_NEXT(type, name, init) \ |
+ IPC_STRUCT_MEMBER(type, name) |
+#define IPC_STRUCT_LAST(type, name, init) \ |
+ IPC_STRUCT_MEMBER(type, name) \ |
+ }; \ |
+ namespace IPC { \ |
+ template <> \ |
+ struct ParamTraits<IPC_STRUCT_NAME> { \ |
+ typedef IPC_STRUCT_NAME param_type; \ |
+ static void Write(Message* m, const param_type& p); \ |
+ static bool Read(const Message* m, void** iter, param_type* p); \ |
+ static void Log(const param_type& p, std::string* l); \ |
+ }; \ |
+ } |
+#define IPC_STRUCT_MEMBER(type, name) type name; |
+ |
#define IPC_MESSAGE_CONTROL0(msg_class) \ |
class msg_class : public IPC::Message { \ |
public: \ |