Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(538)

Side by Side Diff: ipc/ipc_message_macros.h

Issue 10067023: Add support for default values of IPC_STRUCT_MEMBER. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: tsepez feedback Created 8 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/tools/ipclist/ipcfuzz.cc ('k') | ipc/ipc_message_null_macros.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 184 matching lines...) Expand 10 before | Expand all | Expand 10 after
195 // Macros for defining structs. May be subsequently redefined. 195 // Macros for defining structs. May be subsequently redefined.
196 #define IPC_STRUCT_BEGIN(struct_name) \ 196 #define IPC_STRUCT_BEGIN(struct_name) \
197 IPC_STRUCT_BEGIN_WITH_PARENT(struct_name, IPC::NoParams) 197 IPC_STRUCT_BEGIN_WITH_PARENT(struct_name, IPC::NoParams)
198 #define IPC_STRUCT_BEGIN_WITH_PARENT(struct_name, parent) \ 198 #define IPC_STRUCT_BEGIN_WITH_PARENT(struct_name, parent) \
199 struct struct_name; \ 199 struct struct_name; \
200 IPC_STRUCT_TRAITS_BEGIN(struct_name) \ 200 IPC_STRUCT_TRAITS_BEGIN(struct_name) \
201 IPC_STRUCT_TRAITS_END() \ 201 IPC_STRUCT_TRAITS_END() \
202 struct IPC_MESSAGE_EXPORT struct_name : parent { \ 202 struct IPC_MESSAGE_EXPORT struct_name : parent { \
203 struct_name(); \ 203 struct_name(); \
204 ~struct_name(); 204 ~struct_name();
205 #define IPC_STRUCT_MEMBER(type, name) type name; 205 // Optional variadic parameters specify the default value for this struct
206 // member. They are passed through to the constructor for |type|.
207 #define IPC_STRUCT_MEMBER(type, name, ...) type name;
206 #define IPC_STRUCT_END() }; 208 #define IPC_STRUCT_END() };
207 209
208 // Message macros collect specific numbers of arguments and funnel them into 210 // Message macros collect specific numbers of arguments and funnel them into
209 // the common message generation macro. These should never be redefined. 211 // the common message generation macro. These should never be redefined.
210 #define IPC_MESSAGE_CONTROL0(msg_class) \ 212 #define IPC_MESSAGE_CONTROL0(msg_class) \
211 IPC_MESSAGE_DECL(EMPTY, CONTROL, msg_class, 0, 0, (), ()) 213 IPC_MESSAGE_DECL(EMPTY, CONTROL, msg_class, 0, 0, (), ())
212 214
213 #define IPC_MESSAGE_CONTROL1(msg_class, type1) \ 215 #define IPC_MESSAGE_CONTROL1(msg_class, type1) \
214 IPC_MESSAGE_DECL(ASYNC, CONTROL, msg_class, 1, 0, (type1), ()) 216 IPC_MESSAGE_DECL(ASYNC, CONTROL, msg_class, 1, 0, (type1), ())
215 217
(...skipping 792 matching lines...) Expand 10 before | Expand all | Expand 10 after
1008 // This corresponds to an enum value from IPCMessageStart. 1010 // This corresponds to an enum value from IPCMessageStart.
1009 #define IPC_MESSAGE_CLASS(message) \ 1011 #define IPC_MESSAGE_CLASS(message) \
1010 IPC_MESSAGE_ID_CLASS(message.type()) 1012 IPC_MESSAGE_ID_CLASS(message.type())
1011 1013
1012 #endif // IPC_IPC_MESSAGE_MACROS_H_ 1014 #endif // IPC_IPC_MESSAGE_MACROS_H_
1013 1015
1014 // Clean up IPC_MESSAGE_START in this unguarded section so that the 1016 // Clean up IPC_MESSAGE_START in this unguarded section so that the
1015 // XXX_messages.h files need not do so themselves. This makes the 1017 // XXX_messages.h files need not do so themselves. This makes the
1016 // XXX_messages.h files easier to write. 1018 // XXX_messages.h files easier to write.
1017 #undef IPC_MESSAGE_START 1019 #undef IPC_MESSAGE_START
OLDNEW
« no previous file with comments | « chrome/tools/ipclist/ipcfuzz.cc ('k') | ipc/ipc_message_null_macros.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698