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

Side by Side Diff: chrome/common/ipc_message_macros.h

Issue 21039: Revert my change to get the tree green. Not sure why the tests became flaky.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 11 years, 10 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/common/ipc_logging.cc ('k') | chrome/common/ipc_message_unittest.cc » ('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) 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 the first pass, IPC_MESSAGE_MACROS_ENUMS should be defined, which will
9 // create enums for each of the messages defined with the IPC_MESSAGE_* macros. 9 // create enums for each of the messages defined with the IPC_MESSAGE_* macros.
10 // 10 //
(...skipping 23 matching lines...) Expand all
34 // 34 //
35 // The handler function will look like: 35 // The handler function will look like:
36 // void OnSyncMessageName(const type1& in1, IPC::Message* reply_msg); 36 // void OnSyncMessageName(const type1& in1, IPC::Message* reply_msg);
37 // 37 //
38 // Receiver stashes the IPC::Message* pointer, and when it's ready, it does: 38 // Receiver stashes the IPC::Message* pointer, and when it's ready, it does:
39 // ViewHostMsg_SyncMessageName::WriteReplyParams(reply_msg, out1, out2); 39 // ViewHostMsg_SyncMessageName::WriteReplyParams(reply_msg, out1, out2);
40 // Send(reply_msg); 40 // Send(reply_msg);
41 41
42 #include "chrome/common/ipc_message_utils.h" 42 #include "chrome/common/ipc_message_utils.h"
43 43
44
45 #ifndef MESSAGES_INTERNAL_FILE
46 #error This file should only be included by X_messages.h, which needs to define MESSAGES_INTERNAL_FILE first.
47 #endif
48
49 #ifndef IPC_MESSAGE_MACROS_INCLUDE_BLOCK
50 #define IPC_MESSAGE_MACROS_INCLUDE_BLOCK
51
52 // Multi-pass include of X_messages_internal.h. Preprocessor magic allows
53 // us to use 1 header to define the enums and classes for our render messages.
54 #define IPC_MESSAGE_MACROS_ENUMS
55 #include MESSAGES_INTERNAL_FILE
56
57 #define IPC_MESSAGE_MACROS_CLASSES
58 #include MESSAGES_INTERNAL_FILE
59
60 #ifdef IPC_MESSAGE_MACROS_LOG_ENABLED
61 #define IPC_MESSAGE_MACROS_LOG
62 #include MESSAGES_INTERNAL_FILE
63 #endif
64
65 #undef MESSAGES_INTERNAL_FILE
66 #undef IPC_MESSAGE_MACROS_INCLUDE_BLOCK
67
68 #endif
69
70
71 // Undefine the macros from the previous pass (if any). 44 // Undefine the macros from the previous pass (if any).
72 #undef IPC_BEGIN_MESSAGES 45 #undef IPC_BEGIN_MESSAGES
73 #undef IPC_END_MESSAGES 46 #undef IPC_END_MESSAGES
74 #undef IPC_MESSAGE_CONTROL0 47 #undef IPC_MESSAGE_CONTROL0
75 #undef IPC_MESSAGE_CONTROL1 48 #undef IPC_MESSAGE_CONTROL1
76 #undef IPC_MESSAGE_CONTROL2 49 #undef IPC_MESSAGE_CONTROL2
77 #undef IPC_MESSAGE_CONTROL3 50 #undef IPC_MESSAGE_CONTROL3
78 #undef IPC_MESSAGE_CONTROL4 51 #undef IPC_MESSAGE_CONTROL4
79 #undef IPC_MESSAGE_CONTROL5 52 #undef IPC_MESSAGE_CONTROL5
80 #undef IPC_MESSAGE_ROUTED0 53 #undef IPC_MESSAGE_ROUTED0
81 #undef IPC_MESSAGE_ROUTED1 54 #undef IPC_MESSAGE_ROUTED1
82 #undef IPC_MESSAGE_ROUTED2 55 #undef IPC_MESSAGE_ROUTED2
83 #undef IPC_MESSAGE_ROUTED3 56 #undef IPC_MESSAGE_ROUTED3
84 #undef IPC_MESSAGE_ROUTED4 57 #undef IPC_MESSAGE_ROUTED4
85 #undef IPC_MESSAGE_ROUTED5 58 #undef IPC_MESSAGE_ROUTED5
86 #undef IPC_MESSAGE_ROUTED6 59 #undef IPC_MESSAGE_ROUTED6
60 #undef IPC_MESSAGE_EMPTY
87 #undef IPC_SYNC_MESSAGE_CONTROL0_0 61 #undef IPC_SYNC_MESSAGE_CONTROL0_0
88 #undef IPC_SYNC_MESSAGE_CONTROL0_1 62 #undef IPC_SYNC_MESSAGE_CONTROL0_1
89 #undef IPC_SYNC_MESSAGE_CONTROL0_2 63 #undef IPC_SYNC_MESSAGE_CONTROL0_2
90 #undef IPC_SYNC_MESSAGE_CONTROL0_3 64 #undef IPC_SYNC_MESSAGE_CONTROL0_3
91 #undef IPC_SYNC_MESSAGE_CONTROL1_0 65 #undef IPC_SYNC_MESSAGE_CONTROL1_0
92 #undef IPC_SYNC_MESSAGE_CONTROL1_1 66 #undef IPC_SYNC_MESSAGE_CONTROL1_1
93 #undef IPC_SYNC_MESSAGE_CONTROL1_2 67 #undef IPC_SYNC_MESSAGE_CONTROL1_2
94 #undef IPC_SYNC_MESSAGE_CONTROL1_3 68 #undef IPC_SYNC_MESSAGE_CONTROL1_3
95 #undef IPC_SYNC_MESSAGE_CONTROL2_0 69 #undef IPC_SYNC_MESSAGE_CONTROL2_0
96 #undef IPC_SYNC_MESSAGE_CONTROL2_1 70 #undef IPC_SYNC_MESSAGE_CONTROL2_1
(...skipping 16 matching lines...) Expand all
113 #undef IPC_SYNC_MESSAGE_ROUTED2_1 87 #undef IPC_SYNC_MESSAGE_ROUTED2_1
114 #undef IPC_SYNC_MESSAGE_ROUTED2_2 88 #undef IPC_SYNC_MESSAGE_ROUTED2_2
115 #undef IPC_SYNC_MESSAGE_ROUTED2_3 89 #undef IPC_SYNC_MESSAGE_ROUTED2_3
116 #undef IPC_SYNC_MESSAGE_ROUTED3_0 90 #undef IPC_SYNC_MESSAGE_ROUTED3_0
117 #undef IPC_SYNC_MESSAGE_ROUTED3_1 91 #undef IPC_SYNC_MESSAGE_ROUTED3_1
118 #undef IPC_SYNC_MESSAGE_ROUTED3_2 92 #undef IPC_SYNC_MESSAGE_ROUTED3_2
119 #undef IPC_SYNC_MESSAGE_ROUTED3_3 93 #undef IPC_SYNC_MESSAGE_ROUTED3_3
120 #undef IPC_SYNC_MESSAGE_ROUTED4_0 94 #undef IPC_SYNC_MESSAGE_ROUTED4_0
121 #undef IPC_SYNC_MESSAGE_ROUTED4_1 95 #undef IPC_SYNC_MESSAGE_ROUTED4_1
122 96
123
124 #if defined(IPC_MESSAGE_MACROS_ENUMS) 97 #if defined(IPC_MESSAGE_MACROS_ENUMS)
125 #undef IPC_MESSAGE_MACROS_ENUMS 98 #undef IPC_MESSAGE_MACROS_ENUMS
126 99
127 // TODO(jabdelmalek): we're using the lowest 12 bits of type for the message 100 // TODO(jabdelmalek): we're using the lowest 12 bits of type for the message
128 // id, and the highest 4 bits for the channel type. This constrains us to 101 // id, and the highest 4 bits for the channel type. This constrains us to
129 // 16 channel types (currently using 8) and 4K messages per type. Should 102 // 16 channel types (currently using 8) and 4K messages per type. Should
130 // really make type be 32 bits, but then we break automation with older Chrome 103 // really make type be 32 bits, but then we break automation with older Chrome
131 // builds.. 104 // builds..
132 105 #define IPC_BEGIN_MESSAGES(label, start) \
133 #define IPC_BEGIN_MESSAGES(label) \
134 enum label##MsgType { \ 106 enum label##MsgType { \
135 label##Start = label##MsgStart << 12, \ 107 label##Start = start << 12, \
136 label##PreStart = (label##MsgStart << 12) - 1, // Do this so that automation messages keep the same id as before 108 label##PreStart = (start << 12) - 1, // Do this so that automation messages k eep the same id as before
137 109
138 #define IPC_END_MESSAGES(label) \ 110 #define IPC_END_MESSAGES(label) \
139 label##End \ 111 label##End \
140 }; 112 };
141 113
142 #define IPC_MESSAGE_CONTROL0(msg_class) \ 114 #define IPC_MESSAGE_CONTROL0(msg_class) \
143 msg_class##__ID, 115 msg_class##__ID,
144 116
145 #define IPC_MESSAGE_CONTROL1(msg_class, type1) \ 117 #define IPC_MESSAGE_CONTROL1(msg_class, type1) \
146 msg_class##__ID, 118 msg_class##__ID,
(...skipping 24 matching lines...) Expand all
171 143
172 #define IPC_MESSAGE_ROUTED4(msg_class, type1, type2, type3, type4) \ 144 #define IPC_MESSAGE_ROUTED4(msg_class, type1, type2, type3, type4) \
173 msg_class##__ID, 145 msg_class##__ID,
174 146
175 #define IPC_MESSAGE_ROUTED5(msg_class, type1, type2, type3, type4, type5) \ 147 #define IPC_MESSAGE_ROUTED5(msg_class, type1, type2, type3, type4, type5) \
176 msg_class##__ID, 148 msg_class##__ID,
177 149
178 #define IPC_MESSAGE_ROUTED6(msg_class, type1, type2, type3, type4, type5, type6) \ 150 #define IPC_MESSAGE_ROUTED6(msg_class, type1, type2, type3, type4, type5, type6) \
179 msg_class##__ID, 151 msg_class##__ID,
180 152
153 #define IPC_MESSAGE_EMPTY(msg_class) \
154 msg_class##__ID,
155
181 #define IPC_SYNC_MESSAGE_CONTROL0_0(msg_class) \ 156 #define IPC_SYNC_MESSAGE_CONTROL0_0(msg_class) \
182 msg_class##__ID, 157 msg_class##__ID,
183 158
184 #define IPC_SYNC_MESSAGE_CONTROL0_1(msg_class, type1_out) \ 159 #define IPC_SYNC_MESSAGE_CONTROL0_1(msg_class, type1_out) \
185 msg_class##__ID, 160 msg_class##__ID,
186 161
187 #define IPC_SYNC_MESSAGE_CONTROL0_2(msg_class, type1_out, type2_out) \ 162 #define IPC_SYNC_MESSAGE_CONTROL0_2(msg_class, type1_out, type2_out) \
188 msg_class##__ID, 163 msg_class##__ID,
189 164
190 #define IPC_SYNC_MESSAGE_CONTROL0_3(msg_class, type1_out, type2_out, type3_out) \ 165 #define IPC_SYNC_MESSAGE_CONTROL0_3(msg_class, type1_out, type2_out, type3_out) \
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
359 } \ 334 } \
360 } 335 }
361 336
362 #define IPC_END_MESSAGE_MAP_EX() \ 337 #define IPC_END_MESSAGE_MAP_EX() \
363 } \ 338 } \
364 } 339 }
365 340
366 #elif defined(IPC_MESSAGE_MACROS_LOG) 341 #elif defined(IPC_MESSAGE_MACROS_LOG)
367 #undef IPC_MESSAGE_MACROS_LOG 342 #undef IPC_MESSAGE_MACROS_LOG
368 343
369 #define IPC_BEGIN_MESSAGES(label) \ 344 #define IPC_BEGIN_MESSAGES(label, start) \
370 void label##MsgLog(uint16 type, std::wstring* name, const IPC::Message* msg, s td::wstring* params) { \ 345 void label##MsgLog(uint16 type, std::wstring* name, const IPC::Message* msg, s td::wstring* params) { \
371 switch (type) { 346 switch (type) {
372 347
373 #define IPC_END_MESSAGES(label) \ 348 #define IPC_END_MESSAGES(label) \
374 default: \ 349 default: \
375 if (name) \ 350 if (name) \
376 *name = L"[UNKNOWN " L ## #label L" MSG"; \ 351 *name = L"[UNKNOWN " L ## #label L" MSG"; \
377 } \ 352 } \
378 } 353 }
379 354
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
417 392
418 #define IPC_MESSAGE_ROUTED4(msg_class, type1, type2, type3, type4) \ 393 #define IPC_MESSAGE_ROUTED4(msg_class, type1, type2, type3, type4) \
419 IPC_MESSAGE_LOG(msg_class) 394 IPC_MESSAGE_LOG(msg_class)
420 395
421 #define IPC_MESSAGE_ROUTED5(msg_class, type1, type2, type3, type4, type5) \ 396 #define IPC_MESSAGE_ROUTED5(msg_class, type1, type2, type3, type4, type5) \
422 IPC_MESSAGE_LOG(msg_class) 397 IPC_MESSAGE_LOG(msg_class)
423 398
424 #define IPC_MESSAGE_ROUTED6(msg_class, type1, type2, type3, type4, type5, type6) \ 399 #define IPC_MESSAGE_ROUTED6(msg_class, type1, type2, type3, type4, type5, type6) \
425 IPC_MESSAGE_LOG(msg_class) 400 IPC_MESSAGE_LOG(msg_class)
426 401
402 #define IPC_MESSAGE_EMPTY(msg_class) \
403 IPC_MESSAGE_LOG(msg_class)
404
427 #define IPC_SYNC_MESSAGE_CONTROL0_0(msg_class) \ 405 #define IPC_SYNC_MESSAGE_CONTROL0_0(msg_class) \
428 IPC_MESSAGE_LOG(msg_class) 406 IPC_MESSAGE_LOG(msg_class)
429 407
430 #define IPC_SYNC_MESSAGE_CONTROL0_1(msg_class, type1_out) \ 408 #define IPC_SYNC_MESSAGE_CONTROL0_1(msg_class, type1_out) \
431 IPC_MESSAGE_LOG(msg_class) 409 IPC_MESSAGE_LOG(msg_class)
432 410
433 #define IPC_SYNC_MESSAGE_CONTROL0_2(msg_class, type1_out, type2_out) \ 411 #define IPC_SYNC_MESSAGE_CONTROL0_2(msg_class, type1_out, type2_out) \
434 IPC_MESSAGE_LOG(msg_class) 412 IPC_MESSAGE_LOG(msg_class)
435 413
436 #define IPC_SYNC_MESSAGE_CONTROL0_3(msg_class, type1_out, type2_out, type3_out) \ 414 #define IPC_SYNC_MESSAGE_CONTROL0_3(msg_class, type1_out, type2_out, type3_out) \
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
525 503
526 #define IPC_SYNC_MESSAGE_ROUTED4_0(msg_class, type1_in, type2_in, type3_in, type 4_in) \ 504 #define IPC_SYNC_MESSAGE_ROUTED4_0(msg_class, type1_in, type2_in, type3_in, type 4_in) \
527 IPC_MESSAGE_LOG(msg_class) 505 IPC_MESSAGE_LOG(msg_class)
528 506
529 #define IPC_SYNC_MESSAGE_ROUTED4_1(msg_class, type1_in, type2_in, type3_in, type 4_in, type1_out) \ 507 #define IPC_SYNC_MESSAGE_ROUTED4_1(msg_class, type1_in, type2_in, type3_in, type 4_in, type1_out) \
530 IPC_MESSAGE_LOG(msg_class) 508 IPC_MESSAGE_LOG(msg_class)
531 509
532 #elif defined(IPC_MESSAGE_MACROS_CLASSES) 510 #elif defined(IPC_MESSAGE_MACROS_CLASSES)
533 #undef IPC_MESSAGE_MACROS_CLASSES 511 #undef IPC_MESSAGE_MACROS_CLASSES
534 512
535 #define IPC_BEGIN_MESSAGES(label) 513 #define IPC_BEGIN_MESSAGES(label, start)
536 #define IPC_END_MESSAGES(label) 514 #define IPC_END_MESSAGES(label)
537 515
538 #define IPC_MESSAGE_CONTROL0(msg_class) \ 516 #define IPC_MESSAGE_CONTROL0(msg_class) \
539 class msg_class : public IPC::Message { \ 517 class msg_class : public IPC::Message { \
540 public: \ 518 public: \
541 enum { ID = msg_class##__ID }; \ 519 enum { ID = msg_class##__ID }; \
542 msg_class() \ 520 msg_class() \
543 : IPC::Message(MSG_ROUTING_CONTROL, \ 521 : IPC::Message(MSG_ROUTING_CONTROL, \
544 ID, \ 522 ID, \
545 PRIORITY_NORMAL) {} \ 523 PRIORITY_NORMAL) {} \
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
670 public: \ 648 public: \
671 enum { ID = msg_class##__ID }; \ 649 enum { ID = msg_class##__ID }; \
672 msg_class(int32 routing_id, const type1& arg1, const type2& arg2, \ 650 msg_class(int32 routing_id, const type1& arg1, const type2& arg2, \
673 const type3& arg3, const type4& arg4, const type5& arg5, \ 651 const type3& arg3, const type4& arg4, const type5& arg5, \
674 const type6& arg6) \ 652 const type6& arg6) \
675 : IPC::MessageWithTuple< Tuple6<type1, type2, type3, type4, type5, \ 653 : IPC::MessageWithTuple< Tuple6<type1, type2, type3, type4, type5, \
676 type6> >( \ 654 type6> >( \
677 routing_id, ID, MakeTuple(arg1, arg2, arg3, arg4, arg5, arg6)) {} \ 655 routing_id, ID, MakeTuple(arg1, arg2, arg3, arg4, arg5, arg6)) {} \
678 }; 656 };
679 657
658 // Dummy class for now, just to give us the ID field.
659 #define IPC_MESSAGE_EMPTY(msg_class) \
660 class msg_class { \
661 public: \
662 enum { ID = msg_class##__ID }; \
663 static void Log(const IPC::Message* msg, std::wstring* l) {} \
664 };
665
680 #define IPC_SYNC_MESSAGE_CONTROL0_0(msg_class) \ 666 #define IPC_SYNC_MESSAGE_CONTROL0_0(msg_class) \
681 class msg_class : public IPC::MessageWithReply<Tuple0, Tuple0 > { \ 667 class msg_class : public IPC::MessageWithReply<Tuple0, Tuple0 > { \
682 public: \ 668 public: \
683 enum { ID = msg_class##__ID }; \ 669 enum { ID = msg_class##__ID }; \
684 msg_class() \ 670 msg_class() \
685 : IPC::MessageWithReply<Tuple0, Tuple0 >( \ 671 : IPC::MessageWithReply<Tuple0, Tuple0 >( \
686 MSG_ROUTING_CONTROL, ID, \ 672 MSG_ROUTING_CONTROL, ID, \
687 MakeTuple(), MakeTuple()) {} \ 673 MakeTuple(), MakeTuple()) {} \
688 }; 674 };
689 675
(...skipping 387 matching lines...) Expand 10 before | Expand all | Expand 10 after
1077 public: \ 1063 public: \
1078 enum { ID = msg_class##__ID }; \ 1064 enum { ID = msg_class##__ID }; \
1079 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const type3_in& arg3, const type4_in& arg4, type1_out* arg6) \ 1065 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const type3_in& arg3, const type4_in& arg4, type1_out* arg6) \
1080 : IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in>, \ 1066 : IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in>, \
1081 Tuple1<type1_out&> >(routing_id, ID, \ 1067 Tuple1<type1_out&> >(routing_id, ID, \
1082 MakeTuple(arg1, arg2, arg3, arg4), MakeRefTuple(*arg6)) {} \ 1068 MakeTuple(arg1, arg2, arg3, arg4), MakeRefTuple(*arg6)) {} \
1083 }; 1069 };
1084 1070
1085 #endif // #if defined() 1071 #endif // #if defined()
1086 1072
OLDNEW
« no previous file with comments | « chrome/common/ipc_logging.cc ('k') | chrome/common/ipc_message_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698