| 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 582 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 593 in_cnt, out_cnt, in_list, out_list) \ | 593 in_cnt, out_cnt, in_list, out_list) \ |
| 594 IPC_##sync##_##kind##_DECL(msg_class, in_cnt, out_cnt, in_list, out_list) \ | 594 IPC_##sync##_##kind##_DECL(msg_class, in_cnt, out_cnt, in_list, out_list) \ |
| 595 IPC_MESSAGE_EXTRA(sync, kind, msg_class, in_cnt, out_cnt, in_list, out_list) | 595 IPC_MESSAGE_EXTRA(sync, kind, msg_class, in_cnt, out_cnt, in_list, out_list) |
| 596 | 596 |
| 597 #define IPC_EMPTY_CONTROL_DECL(msg_class, in_cnt, out_cnt, in_list, out_list) \ | 597 #define IPC_EMPTY_CONTROL_DECL(msg_class, in_cnt, out_cnt, in_list, out_list) \ |
| 598 class msg_class : public IPC::Message { \ | 598 class msg_class : public IPC::Message { \ |
| 599 public: \ | 599 public: \ |
| 600 typedef IPC::Message Schema; \ | 600 typedef IPC::Message Schema; \ |
| 601 enum { ID = IPC_MESSAGE_ID() }; \ | 601 enum { ID = IPC_MESSAGE_ID() }; \ |
| 602 msg_class() : IPC::Message(MSG_ROUTING_CONTROL, ID, PRIORITY_NORMAL) {} \ | 602 msg_class() : IPC::Message(MSG_ROUTING_CONTROL, ID, PRIORITY_NORMAL) {} \ |
| 603 static void Log(std::string* name, const Message* msg, std::string* l); \ |
| 603 }; | 604 }; |
| 604 | 605 |
| 605 #define IPC_EMPTY_ROUTED_DECL(msg_class, in_cnt, out_cnt, in_list, out_list) \ | 606 #define IPC_EMPTY_ROUTED_DECL(msg_class, in_cnt, out_cnt, in_list, out_list) \ |
| 606 class msg_class : public IPC::Message { \ | 607 class msg_class : public IPC::Message { \ |
| 607 public: \ | 608 public: \ |
| 608 typedef IPC::Message Schema; \ | 609 typedef IPC::Message Schema; \ |
| 609 enum { ID = IPC_MESSAGE_ID() }; \ | 610 enum { ID = IPC_MESSAGE_ID() }; \ |
| 610 msg_class(int32 routing_id) \ | 611 msg_class(int32 routing_id) \ |
| 611 : IPC::Message(routing_id, ID, PRIORITY_NORMAL) {} \ | 612 : IPC::Message(routing_id, ID, PRIORITY_NORMAL) {} \ |
| 613 static void Log(std::string* name, const Message* msg, std::string* l); \ |
| 612 }; | 614 }; |
| 613 | 615 |
| 614 #define IPC_ASYNC_CONTROL_DECL(msg_class, in_cnt, out_cnt, in_list, out_list) \ | 616 #define IPC_ASYNC_CONTROL_DECL(msg_class, in_cnt, out_cnt, in_list, out_list) \ |
| 615 class IPC_MESSAGE_EXPORT msg_class : public IPC::Message { \ | 617 class IPC_MESSAGE_EXPORT msg_class : public IPC::Message { \ |
| 616 public: \ | 618 public: \ |
| 617 typedef IPC::MessageSchema<IPC_TUPLE_IN_##in_cnt in_list> Schema; \ | 619 typedef IPC::MessageSchema<IPC_TUPLE_IN_##in_cnt in_list> Schema; \ |
| 618 typedef Schema::Param Param; \ | 620 typedef Schema::Param Param; \ |
| 619 enum { ID = IPC_MESSAGE_ID() }; \ | 621 enum { ID = IPC_MESSAGE_ID() }; \ |
| 620 msg_class(IPC_TYPE_IN_##in_cnt in_list); \ | 622 msg_class(IPC_TYPE_IN_##in_cnt in_list); \ |
| 621 virtual ~msg_class(); \ | 623 virtual ~msg_class(); \ |
| (...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 746 } \ | 748 } \ |
| 747 msg_class::~msg_class() {} \ | 749 msg_class::~msg_class() {} \ |
| 748 bool msg_class::ReadSendParam(const Message* msg, Schema::SendParam* p) { \ | 750 bool msg_class::ReadSendParam(const Message* msg, Schema::SendParam* p) { \ |
| 749 return Schema::ReadSendParam(msg, p); \ | 751 return Schema::ReadSendParam(msg, p); \ |
| 750 } \ | 752 } \ |
| 751 bool msg_class::ReadReplyParam(const Message* msg, \ | 753 bool msg_class::ReadReplyParam(const Message* msg, \ |
| 752 TupleTypes<ReplyParam>::ValueTuple* p) { \ | 754 TupleTypes<ReplyParam>::ValueTuple* p) { \ |
| 753 return Schema::ReadReplyParam(msg, p); \ | 755 return Schema::ReadReplyParam(msg, p); \ |
| 754 } | 756 } |
| 755 | 757 |
| 756 #define IPC_EMPTY_MESSAGE_LOG(msg_class) | 758 #define IPC_EMPTY_MESSAGE_LOG(msg_class) \ |
| 759 void msg_class::Log(std::string* name, \ |
| 760 const Message* msg, \ |
| 761 std::string* l) { \ |
| 762 if (name) \ |
| 763 *name = #msg_class; \ |
| 764 } |
| 757 | 765 |
| 758 #define IPC_ASYNC_MESSAGE_LOG(msg_class) \ | 766 #define IPC_ASYNC_MESSAGE_LOG(msg_class) \ |
| 759 void msg_class::Log(std::string* name, \ | 767 void msg_class::Log(std::string* name, \ |
| 760 const Message* msg, \ | 768 const Message* msg, \ |
| 761 std::string* l) { \ | 769 std::string* l) { \ |
| 762 if (name) \ | 770 if (name) \ |
| 763 *name = #msg_class; \ | 771 *name = #msg_class; \ |
| 764 if (!msg || !l) \ | 772 if (!msg || !l) \ |
| 765 return; \ | 773 return; \ |
| 766 Schema::Param p; \ | 774 Schema::Param p; \ |
| (...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 985 // This corresponds to an enum value from IPCMessageStart. | 993 // This corresponds to an enum value from IPCMessageStart. |
| 986 #define IPC_MESSAGE_CLASS(message) \ | 994 #define IPC_MESSAGE_CLASS(message) \ |
| 987 IPC_MESSAGE_ID_CLASS(message.type()) | 995 IPC_MESSAGE_ID_CLASS(message.type()) |
| 988 | 996 |
| 989 #endif // IPC_IPC_MESSAGE_MACROS_H_ | 997 #endif // IPC_IPC_MESSAGE_MACROS_H_ |
| 990 | 998 |
| 991 // Clean up IPC_MESSAGE_START in this unguarded section so that the | 999 // Clean up IPC_MESSAGE_START in this unguarded section so that the |
| 992 // XXX_messages.h files need not do so themselves. This makes the | 1000 // XXX_messages.h files need not do so themselves. This makes the |
| 993 // XXX_messages.h files easier to write. | 1001 // XXX_messages.h files easier to write. |
| 994 #undef IPC_MESSAGE_START | 1002 #undef IPC_MESSAGE_START |
| OLD | NEW |