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

Side by Side Diff: ipc/ipc_message_macros.h

Issue 3106018: Reapplies all the IPC system work (reverts the revert r56272). (Closed) Base URL: http://src.chromium.org/git/chromium.git
Patch Set: Created 10 years, 4 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
« no previous file with comments | « ipc/ipc_message_impl_macros.h ('k') | ipc/ipc_message_utils.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) 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 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 #ifdef IPC_MESSAGE_MACROS_LOG_ENABLED 72 #ifdef IPC_MESSAGE_MACROS_LOG_ENABLED
73 #define IPC_MESSAGE_MACROS_LOG 73 #define IPC_MESSAGE_MACROS_LOG
74 #include MESSAGES_INTERNAL_FILE 74 #include MESSAGES_INTERNAL_FILE
75 #endif 75 #endif
76 76
77 #undef MESSAGES_INTERNAL_FILE 77 #undef MESSAGES_INTERNAL_FILE
78 #undef IPC_MESSAGE_MACROS_INCLUDE_BLOCK 78 #undef IPC_MESSAGE_MACROS_INCLUDE_BLOCK
79 79
80 #endif 80 #endif
81 81
82 #if defined(IPC_MESSAGE_MACROS_ENUMS)
83 #undef IPC_MESSAGE_MACROS_ENUMS
84
82 85
83 // Undefine the macros from the previous pass (if any). 86 // Undefine the macros from the previous pass (if any).
84 #undef IPC_BEGIN_MESSAGES 87 #undef IPC_BEGIN_MESSAGES
85 #undef IPC_END_MESSAGES 88 #undef IPC_END_MESSAGES
86 #undef IPC_MESSAGE_CONTROL0 89 #undef IPC_MESSAGE_CONTROL0
87 #undef IPC_MESSAGE_CONTROL1 90 #undef IPC_MESSAGE_CONTROL1
88 #undef IPC_MESSAGE_CONTROL2 91 #undef IPC_MESSAGE_CONTROL2
89 #undef IPC_MESSAGE_CONTROL3 92 #undef IPC_MESSAGE_CONTROL3
90 #undef IPC_MESSAGE_CONTROL4 93 #undef IPC_MESSAGE_CONTROL4
91 #undef IPC_MESSAGE_CONTROL5 94 #undef IPC_MESSAGE_CONTROL5
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
131 #undef IPC_SYNC_MESSAGE_ROUTED3_3 134 #undef IPC_SYNC_MESSAGE_ROUTED3_3
132 #undef IPC_SYNC_MESSAGE_ROUTED4_0 135 #undef IPC_SYNC_MESSAGE_ROUTED4_0
133 #undef IPC_SYNC_MESSAGE_ROUTED4_1 136 #undef IPC_SYNC_MESSAGE_ROUTED4_1
134 #undef IPC_SYNC_MESSAGE_ROUTED4_2 137 #undef IPC_SYNC_MESSAGE_ROUTED4_2
135 #undef IPC_SYNC_MESSAGE_ROUTED4_3 138 #undef IPC_SYNC_MESSAGE_ROUTED4_3
136 #undef IPC_SYNC_MESSAGE_ROUTED5_0 139 #undef IPC_SYNC_MESSAGE_ROUTED5_0
137 #undef IPC_SYNC_MESSAGE_ROUTED5_1 140 #undef IPC_SYNC_MESSAGE_ROUTED5_1
138 #undef IPC_SYNC_MESSAGE_ROUTED5_2 141 #undef IPC_SYNC_MESSAGE_ROUTED5_2
139 #undef IPC_SYNC_MESSAGE_ROUTED5_3 142 #undef IPC_SYNC_MESSAGE_ROUTED5_3
140 143
141 #if defined(IPC_MESSAGE_MACROS_ENUMS)
142 #undef IPC_MESSAGE_MACROS_ENUMS
143
144 // We're using the lowest 16 bits of type for the message id, and the highest 144 // We're using the lowest 16 bits of type for the message id, and the highest
145 // 16 bits for the channel type. 145 // 16 bits for the channel type.
146 // 146 //
147 // Do label##PreStart so that automation messages keep the same id as before. 147 // Do label##PreStart so that automation messages keep the same id as before.
148 #define IPC_BEGIN_MESSAGES(label) \ 148 #define IPC_BEGIN_MESSAGES(label) \
149 enum label##MsgType { \ 149 enum label##MsgType { \
150 label##Start = label##MsgStart << 16, \ 150 label##Start = label##MsgStart << 16, \
151 label##PreStart = (label##MsgStart << 16) - 1, 151 label##PreStart = (label##MsgStart << 16) - 1,
152 152
153 #define IPC_END_MESSAGES(label) \ 153 #define IPC_END_MESSAGES(label) \
(...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after
392 } \ 392 } \
393 } 393 }
394 394
395 #define IPC_END_MESSAGE_MAP_EX() \ 395 #define IPC_END_MESSAGE_MAP_EX() \
396 } \ 396 } \
397 } 397 }
398 398
399 #elif defined(IPC_MESSAGE_MACROS_LOG) 399 #elif defined(IPC_MESSAGE_MACROS_LOG)
400 #undef IPC_MESSAGE_MACROS_LOG 400 #undef IPC_MESSAGE_MACROS_LOG
401 401
402
403 // Undefine the macros from the previous pass (if any).
404 #undef IPC_BEGIN_MESSAGES
405 #undef IPC_END_MESSAGES
406 #undef IPC_MESSAGE_CONTROL0
407 #undef IPC_MESSAGE_CONTROL1
408 #undef IPC_MESSAGE_CONTROL2
409 #undef IPC_MESSAGE_CONTROL3
410 #undef IPC_MESSAGE_CONTROL4
411 #undef IPC_MESSAGE_CONTROL5
412 #undef IPC_MESSAGE_ROUTED0
413 #undef IPC_MESSAGE_ROUTED1
414 #undef IPC_MESSAGE_ROUTED2
415 #undef IPC_MESSAGE_ROUTED3
416 #undef IPC_MESSAGE_ROUTED4
417 #undef IPC_MESSAGE_ROUTED5
418 #undef IPC_SYNC_MESSAGE_CONTROL0_0
419 #undef IPC_SYNC_MESSAGE_CONTROL0_1
420 #undef IPC_SYNC_MESSAGE_CONTROL0_2
421 #undef IPC_SYNC_MESSAGE_CONTROL0_3
422 #undef IPC_SYNC_MESSAGE_CONTROL1_0
423 #undef IPC_SYNC_MESSAGE_CONTROL1_1
424 #undef IPC_SYNC_MESSAGE_CONTROL1_2
425 #undef IPC_SYNC_MESSAGE_CONTROL1_3
426 #undef IPC_SYNC_MESSAGE_CONTROL2_0
427 #undef IPC_SYNC_MESSAGE_CONTROL2_1
428 #undef IPC_SYNC_MESSAGE_CONTROL2_2
429 #undef IPC_SYNC_MESSAGE_CONTROL2_3
430 #undef IPC_SYNC_MESSAGE_CONTROL3_1
431 #undef IPC_SYNC_MESSAGE_CONTROL3_2
432 #undef IPC_SYNC_MESSAGE_CONTROL3_3
433 #undef IPC_SYNC_MESSAGE_CONTROL4_1
434 #undef IPC_SYNC_MESSAGE_CONTROL4_2
435 #undef IPC_SYNC_MESSAGE_ROUTED0_0
436 #undef IPC_SYNC_MESSAGE_ROUTED0_1
437 #undef IPC_SYNC_MESSAGE_ROUTED0_2
438 #undef IPC_SYNC_MESSAGE_ROUTED0_3
439 #undef IPC_SYNC_MESSAGE_ROUTED1_0
440 #undef IPC_SYNC_MESSAGE_ROUTED1_1
441 #undef IPC_SYNC_MESSAGE_ROUTED1_2
442 #undef IPC_SYNC_MESSAGE_ROUTED1_3
443 #undef IPC_SYNC_MESSAGE_ROUTED1_4
444 #undef IPC_SYNC_MESSAGE_ROUTED2_0
445 #undef IPC_SYNC_MESSAGE_ROUTED2_1
446 #undef IPC_SYNC_MESSAGE_ROUTED2_2
447 #undef IPC_SYNC_MESSAGE_ROUTED2_3
448 #undef IPC_SYNC_MESSAGE_ROUTED3_0
449 #undef IPC_SYNC_MESSAGE_ROUTED3_1
450 #undef IPC_SYNC_MESSAGE_ROUTED3_2
451 #undef IPC_SYNC_MESSAGE_ROUTED3_3
452 #undef IPC_SYNC_MESSAGE_ROUTED4_0
453 #undef IPC_SYNC_MESSAGE_ROUTED4_1
454 #undef IPC_SYNC_MESSAGE_ROUTED4_2
455 #undef IPC_SYNC_MESSAGE_ROUTED4_3
456 #undef IPC_SYNC_MESSAGE_ROUTED5_0
457 #undef IPC_SYNC_MESSAGE_ROUTED5_1
458 #undef IPC_SYNC_MESSAGE_ROUTED5_2
459 #undef IPC_SYNC_MESSAGE_ROUTED5_3
460
402 #ifndef IPC_LOG_TABLE_CREATED 461 #ifndef IPC_LOG_TABLE_CREATED
403 #define IPC_LOG_TABLE_CREATED 462 #define IPC_LOG_TABLE_CREATED
404 typedef void (*LogFunction)(uint32 type, 463 typedef void (*LogFunction)(uint32 type,
405 std::wstring* name, 464 std::wstring* name,
406 const IPC::Message* msg, 465 const IPC::Message* msg,
407 std::wstring* params); 466 std::wstring* params);
408 467
409 LogFunction g_log_function_mapping[LastMsgIndex]; 468 LogFunction g_log_function_mapping[LastMsgIndex];
410 #endif 469 #endif
411 470
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after
594 653
595 #define IPC_SYNC_MESSAGE_ROUTED5_2(msg_class, type1_in, type2_in, type3_in, type 4_in, type5_in, type1_out, type2_out) \ 654 #define IPC_SYNC_MESSAGE_ROUTED5_2(msg_class, type1_in, type2_in, type3_in, type 4_in, type5_in, type1_out, type2_out) \
596 IPC_MESSAGE_LOG(msg_class) 655 IPC_MESSAGE_LOG(msg_class)
597 656
598 #define IPC_SYNC_MESSAGE_ROUTED5_3(msg_class, type1_in, type2_in, type3_in, type 4_in, type5_in, type1_out, type2_out, type3_out) \ 657 #define IPC_SYNC_MESSAGE_ROUTED5_3(msg_class, type1_in, type2_in, type3_in, type 4_in, type5_in, type1_out, type2_out, type3_out) \
599 IPC_MESSAGE_LOG(msg_class) 658 IPC_MESSAGE_LOG(msg_class)
600 659
601 #elif defined(IPC_MESSAGE_MACROS_CLASSES) 660 #elif defined(IPC_MESSAGE_MACROS_CLASSES)
602 #undef IPC_MESSAGE_MACROS_CLASSES 661 #undef IPC_MESSAGE_MACROS_CLASSES
603 662
663
664 // Undefine the macros from the previous pass (if any).
665 #undef IPC_BEGIN_MESSAGES
666 #undef IPC_END_MESSAGES
667 #undef IPC_MESSAGE_CONTROL0
668 #undef IPC_MESSAGE_CONTROL1
669 #undef IPC_MESSAGE_CONTROL2
670 #undef IPC_MESSAGE_CONTROL3
671 #undef IPC_MESSAGE_CONTROL4
672 #undef IPC_MESSAGE_CONTROL5
673 #undef IPC_MESSAGE_ROUTED0
674 #undef IPC_MESSAGE_ROUTED1
675 #undef IPC_MESSAGE_ROUTED2
676 #undef IPC_MESSAGE_ROUTED3
677 #undef IPC_MESSAGE_ROUTED4
678 #undef IPC_MESSAGE_ROUTED5
679 #undef IPC_SYNC_MESSAGE_CONTROL0_0
680 #undef IPC_SYNC_MESSAGE_CONTROL0_1
681 #undef IPC_SYNC_MESSAGE_CONTROL0_2
682 #undef IPC_SYNC_MESSAGE_CONTROL0_3
683 #undef IPC_SYNC_MESSAGE_CONTROL1_0
684 #undef IPC_SYNC_MESSAGE_CONTROL1_1
685 #undef IPC_SYNC_MESSAGE_CONTROL1_2
686 #undef IPC_SYNC_MESSAGE_CONTROL1_3
687 #undef IPC_SYNC_MESSAGE_CONTROL2_0
688 #undef IPC_SYNC_MESSAGE_CONTROL2_1
689 #undef IPC_SYNC_MESSAGE_CONTROL2_2
690 #undef IPC_SYNC_MESSAGE_CONTROL2_3
691 #undef IPC_SYNC_MESSAGE_CONTROL3_1
692 #undef IPC_SYNC_MESSAGE_CONTROL3_2
693 #undef IPC_SYNC_MESSAGE_CONTROL3_3
694 #undef IPC_SYNC_MESSAGE_CONTROL4_1
695 #undef IPC_SYNC_MESSAGE_CONTROL4_2
696 #undef IPC_SYNC_MESSAGE_ROUTED0_0
697 #undef IPC_SYNC_MESSAGE_ROUTED0_1
698 #undef IPC_SYNC_MESSAGE_ROUTED0_2
699 #undef IPC_SYNC_MESSAGE_ROUTED0_3
700 #undef IPC_SYNC_MESSAGE_ROUTED1_0
701 #undef IPC_SYNC_MESSAGE_ROUTED1_1
702 #undef IPC_SYNC_MESSAGE_ROUTED1_2
703 #undef IPC_SYNC_MESSAGE_ROUTED1_3
704 #undef IPC_SYNC_MESSAGE_ROUTED1_4
705 #undef IPC_SYNC_MESSAGE_ROUTED2_0
706 #undef IPC_SYNC_MESSAGE_ROUTED2_1
707 #undef IPC_SYNC_MESSAGE_ROUTED2_2
708 #undef IPC_SYNC_MESSAGE_ROUTED2_3
709 #undef IPC_SYNC_MESSAGE_ROUTED3_0
710 #undef IPC_SYNC_MESSAGE_ROUTED3_1
711 #undef IPC_SYNC_MESSAGE_ROUTED3_2
712 #undef IPC_SYNC_MESSAGE_ROUTED3_3
713 #undef IPC_SYNC_MESSAGE_ROUTED4_0
714 #undef IPC_SYNC_MESSAGE_ROUTED4_1
715 #undef IPC_SYNC_MESSAGE_ROUTED4_2
716 #undef IPC_SYNC_MESSAGE_ROUTED4_3
717 #undef IPC_SYNC_MESSAGE_ROUTED5_0
718 #undef IPC_SYNC_MESSAGE_ROUTED5_1
719 #undef IPC_SYNC_MESSAGE_ROUTED5_2
720 #undef IPC_SYNC_MESSAGE_ROUTED5_3
721
604 #define IPC_BEGIN_MESSAGES(label) 722 #define IPC_BEGIN_MESSAGES(label)
605 #define IPC_END_MESSAGES(label) 723 #define IPC_END_MESSAGES(label)
606 724
607 #define IPC_MESSAGE_CONTROL0(msg_class) \ 725 #define IPC_MESSAGE_CONTROL0(msg_class) \
608 class msg_class : public IPC::Message { \ 726 class msg_class : public IPC::Message { \
609 public: \ 727 public: \
610 enum { ID = msg_class##__ID }; \ 728 enum { ID = msg_class##__ID }; \
611 msg_class() \ 729 msg_class() \
612 : IPC::Message(MSG_ROUTING_CONTROL, \ 730 : IPC::Message(MSG_ROUTING_CONTROL, \
613 ID, \ 731 ID, \
614 PRIORITY_NORMAL) {} \ 732 PRIORITY_NORMAL) {} \
615 }; 733 };
616 734
617 #define IPC_MESSAGE_CONTROL1(msg_class, type1) \ 735 #define IPC_MESSAGE_CONTROL1(msg_class, type1) \
618 class msg_class : public IPC::MessageWithTuple< Tuple1<type1> > { \ 736 class msg_class : public IPC::MessageWithTuple< Tuple1<type1> > { \
619 public: \ 737 public: \
620 enum { ID = msg_class##__ID }; \ 738 enum { ID = msg_class##__ID }; \
621 msg_class(const type1& arg1) \ 739 msg_class(const type1& arg1); \
622 : IPC::MessageWithTuple< Tuple1<type1> >(MSG_ROUTING_CONTROL, \ 740 ~msg_class(); \
623 ID, \ 741 static void Log(const Message* msg, std::wstring* l); \
624 MakeRefTuple(arg1)) {} \
625 }; 742 };
626 743
627 #define IPC_MESSAGE_CONTROL2(msg_class, type1, type2) \ 744 #define IPC_MESSAGE_CONTROL2(msg_class, type1, type2) \
628 class msg_class : public IPC::MessageWithTuple< Tuple2<type1, type2> > { \ 745 class msg_class : public IPC::MessageWithTuple< Tuple2<type1, type2> > { \
629 public: \ 746 public: \
630 enum { ID = msg_class##__ID }; \ 747 enum { ID = msg_class##__ID }; \
631 msg_class(const type1& arg1, const type2& arg2) \ 748 msg_class(const type1& arg1, const type2& arg2); \
632 : IPC::MessageWithTuple< Tuple2<type1, type2> >( \ 749 ~msg_class(); \
633 MSG_ROUTING_CONTROL, \ 750 static void Log(const Message* msg, std::wstring* l); \
634 ID, \
635 MakeRefTuple(arg1, arg2)) {} \
636 }; 751 };
637 752
638 #define IPC_MESSAGE_CONTROL3(msg_class, type1, type2, type3) \ 753 #define IPC_MESSAGE_CONTROL3(msg_class, type1, type2, type3) \
639 class msg_class : \ 754 class msg_class : \
640 public IPC::MessageWithTuple< Tuple3<type1, type2, type3> > { \ 755 public IPC::MessageWithTuple< Tuple3<type1, type2, type3> > { \
641 public: \ 756 public: \
642 enum { ID = msg_class##__ID }; \ 757 enum { ID = msg_class##__ID }; \
643 msg_class(const type1& arg1, const type2& arg2, const type3& arg3) \ 758 msg_class(const type1& arg1, const type2& arg2, const type3& arg3); \
644 : IPC::MessageWithTuple< Tuple3<type1, type2, type3> >( \ 759 ~msg_class(); \
645 MSG_ROUTING_CONTROL, \ 760 static void Log(const Message* msg, std::wstring* l); \
646 ID, \
647 MakeRefTuple(arg1, arg2, arg3)) {} \
648 }; 761 };
649 762
650 #define IPC_MESSAGE_CONTROL4(msg_class, type1, type2, type3, type4) \ 763 #define IPC_MESSAGE_CONTROL4(msg_class, type1, type2, type3, type4) \
651 class msg_class : \ 764 class msg_class : \
652 public IPC::MessageWithTuple< Tuple4<type1, type2, type3, type4> > { \ 765 public IPC::MessageWithTuple< Tuple4<type1, type2, type3, type4> > { \
653 public: \ 766 public: \
654 enum { ID = msg_class##__ID }; \ 767 enum { ID = msg_class##__ID }; \
655 msg_class(const type1& arg1, const type2& arg2, const type3& arg3, \ 768 msg_class(const type1& arg1, const type2& arg2, const type3& arg3, \
656 const type4& arg4) \ 769 const type4& arg4); \
657 : IPC::MessageWithTuple< Tuple4<type1, type2, type3, type4> >( \ 770 ~msg_class(); \
658 MSG_ROUTING_CONTROL, \ 771 static void Log(const Message* msg, std::wstring* l); \
659 ID, \
660 MakeRefTuple(arg1, arg2, arg3, arg4)) {} \
661 }; 772 };
662 773
663 #define IPC_MESSAGE_CONTROL5(msg_class, type1, type2, type3, type4, type5) \ 774 #define IPC_MESSAGE_CONTROL5(msg_class, type1, type2, type3, type4, type5) \
664 class msg_class : \ 775 class msg_class : \
665 public IPC::MessageWithTuple< Tuple5<type1, type2, type3, type4, type5> > { \ 776 public IPC::MessageWithTuple< Tuple5<type1, type2, type3, type4, type5> > { \
666 public: \ 777 public: \
667 enum { ID = msg_class##__ID }; \ 778 enum { ID = msg_class##__ID }; \
668 msg_class(const type1& arg1, const type2& arg2, \ 779 msg_class(const type1& arg1, const type2& arg2, \
669 const type3& arg3, const type4& arg4, const type5& arg5) \ 780 const type3& arg3, const type4& arg4, const type5& arg5); \
670 : IPC::MessageWithTuple< Tuple5<type1, type2, type3, type4, type5> >( \ 781 ~msg_class(); \
671 MSG_ROUTING_CONTROL, \ 782 static void Log(const Message* msg, std::wstring* l); \
672 ID, \
673 MakeRefTuple(arg1, arg2, arg3, arg4, arg5)) {} \
674 }; 783 };
675 784
676 #define IPC_MESSAGE_ROUTED0(msg_class) \ 785 #define IPC_MESSAGE_ROUTED0(msg_class) \
677 class msg_class : public IPC::Message { \ 786 class msg_class : public IPC::Message { \
678 public: \ 787 public: \
679 enum { ID = msg_class##__ID }; \ 788 enum { ID = msg_class##__ID }; \
680 msg_class(int32 routing_id) \ 789 msg_class(int32 routing_id) \
681 : IPC::Message(routing_id, ID, PRIORITY_NORMAL) {} \ 790 : IPC::Message(routing_id, ID, PRIORITY_NORMAL) {} \
682 }; 791 };
683 792
684 #define IPC_MESSAGE_ROUTED1(msg_class, type1) \ 793 #define IPC_MESSAGE_ROUTED1(msg_class, type1) \
685 class msg_class : public IPC::MessageWithTuple< Tuple1<type1> > { \ 794 class msg_class : public IPC::MessageWithTuple< Tuple1<type1> > { \
686 public: \ 795 public: \
687 enum { ID = msg_class##__ID }; \ 796 enum { ID = msg_class##__ID }; \
688 msg_class(int32 routing_id, const type1& arg1) \ 797 msg_class(int32 routing_id, const type1& arg1); \
689 : IPC::MessageWithTuple< Tuple1<type1> >(routing_id, ID, \ 798 ~msg_class(); \
690 MakeRefTuple(arg1)) {} \ 799 static void Log(const Message* msg, std::wstring* l); \
691 }; 800 };
692 801
693 #define IPC_MESSAGE_ROUTED2(msg_class, type1, type2) \ 802 #define IPC_MESSAGE_ROUTED2(msg_class, type1, type2) \
694 class msg_class : public IPC::MessageWithTuple< Tuple2<type1, type2> > { \ 803 class msg_class \
695 public: \ 804 : public IPC::MessageWithTuple< Tuple2<type1, type2> > { \
696 enum { ID = msg_class##__ID }; \ 805 public: \
697 msg_class(int32 routing_id, const type1& arg1, const type2& arg2) \ 806 enum { ID = msg_class##__ID }; \
698 : IPC::MessageWithTuple< Tuple2<type1, type2> >( \ 807 msg_class(int32 routing_id, const type1& arg1, const type2& arg2); \
699 routing_id, ID, MakeRefTuple(arg1, arg2)) {} \ 808 ~msg_class(); \
809 static void Log(const Message* msg, std::wstring* l); \
700 }; 810 };
701 811
702 #define IPC_MESSAGE_ROUTED3(msg_class, type1, type2, type3) \ 812 #define IPC_MESSAGE_ROUTED3(msg_class, type1, type2, type3) \
703 class msg_class : \ 813 class msg_class \
704 public IPC::MessageWithTuple< Tuple3<type1, type2, type3> > { \ 814 : public IPC::MessageWithTuple< Tuple3<type1, type2, type3> > { \
705 public: \ 815 public: \
706 enum { ID = msg_class##__ID }; \ 816 enum { ID = msg_class##__ID }; \
707 msg_class(int32 routing_id, const type1& arg1, const type2& arg2, \ 817 msg_class(int32 routing_id, const type1& arg1, const type2& arg2, \
708 const type3& arg3) \ 818 const type3& arg3); \
709 : IPC::MessageWithTuple< Tuple3<type1, type2, type3> >( \ 819 ~msg_class(); \
710 routing_id, ID, MakeRefTuple(arg1, arg2, arg3)) {} \ 820 static void Log(const Message* msg, std::wstring* l); \
711 }; 821 };
712 822
713 #define IPC_MESSAGE_ROUTED4(msg_class, type1, type2, type3, type4) \ 823 #define IPC_MESSAGE_ROUTED4(msg_class, type1, type2, type3, type4) \
714 class msg_class : \ 824 class msg_class \
715 public IPC::MessageWithTuple< Tuple4<type1, type2, type3, type4> > { \ 825 : public IPC::MessageWithTuple< Tuple4<type1, type2, type3, type4> > { \
716 public: \ 826 public: \
717 enum { ID = msg_class##__ID }; \ 827 enum { ID = msg_class##__ID }; \
718 msg_class(int32 routing_id, const type1& arg1, const type2& arg2, \ 828 msg_class(int32 routing_id, const type1& arg1, const type2& arg2, \
719 const type3& arg3, const type4& arg4) \ 829 const type3& arg3, const type4& arg4); \
720 : IPC::MessageWithTuple< Tuple4<type1, type2, type3, type4> >( \ 830 ~msg_class(); \
721 routing_id, ID, MakeRefTuple(arg1, arg2, arg3, arg4)) {} \ 831 static void Log(const Message* msg, std::wstring* l); \
722 }; 832 };
723 833
724 #define IPC_MESSAGE_ROUTED5(msg_class, type1, type2, type3, type4, type5) \ 834 #define IPC_MESSAGE_ROUTED5(msg_class, type1, type2, type3, type4, type5) \
725 class msg_class : \ 835 class msg_class \
726 public IPC::MessageWithTuple< Tuple5<type1, type2, type3, type4, type5> > { \ 836 : public IPC::MessageWithTuple< Tuple5<type1, type2, type3, type4, \
727 public: \ 837 type5> > { \
728 enum { ID = msg_class##__ID }; \ 838 public: \
729 msg_class(int32 routing_id, const type1& arg1, const type2& arg2, \ 839 enum { ID = msg_class##__ID }; \
730 const type3& arg3, const type4& arg4, const type5& arg5) \ 840 msg_class(int32 routing_id, const type1& arg1, const type2& arg2, \
731 : IPC::MessageWithTuple< Tuple5<type1, type2, type3, type4, type5> >( \ 841 const type3& arg3, const type4& arg4, const type5& arg5); \
732 routing_id, ID, MakeRefTuple(arg1, arg2, arg3, arg4, arg5)) {} \ 842 ~msg_class(); \
843 static void Log(const Message* msg, std::wstring* l); \
733 }; 844 };
734 845
735 #define IPC_SYNC_MESSAGE_CONTROL0_0(msg_class) \ 846 #define IPC_SYNC_MESSAGE_CONTROL0_0(msg_class) \
736 class msg_class : public IPC::MessageWithReply<Tuple0, Tuple0 > { \ 847 class msg_class : public IPC::MessageWithReply<Tuple0, Tuple0 > { \
737 public: \ 848 public: \
738 enum { ID = msg_class##__ID }; \ 849 enum { ID = msg_class##__ID }; \
739 msg_class() \ 850 msg_class(); \
740 : IPC::MessageWithReply<Tuple0, Tuple0 >( \ 851 ~msg_class(); \
741 MSG_ROUTING_CONTROL, ID, \ 852 static void Log(const Message* msg, std::wstring* l); \
742 MakeTuple(), MakeTuple()) {} \
743 }; 853 };
744 854
745 #define IPC_SYNC_MESSAGE_CONTROL0_1(msg_class, type1_out) \ 855 #define IPC_SYNC_MESSAGE_CONTROL0_1(msg_class, type1_out) \
746 class msg_class : public IPC::MessageWithReply<Tuple0, Tuple1<type1_out&> > { \ 856 class msg_class : public IPC::MessageWithReply<Tuple0, Tuple1<type1_out&> > { \
747 public: \ 857 public: \
748 enum { ID = msg_class##__ID }; \ 858 enum { ID = msg_class##__ID }; \
749 msg_class(type1_out* arg1) \ 859 msg_class(type1_out* arg1); \
750 : IPC::MessageWithReply<Tuple0, Tuple1<type1_out&> >( \ 860 ~msg_class(); \
751 MSG_ROUTING_CONTROL, \ 861 static void Log(const Message* msg, std::wstring* l); \
752 ID, \
753 MakeTuple(), MakeRefTuple(*arg1)) {} \
754 }; 862 };
755 863
756 #define IPC_SYNC_MESSAGE_CONTROL0_2(msg_class, type1_out, type2_out) \ 864 #define IPC_SYNC_MESSAGE_CONTROL0_2(msg_class, type1_out, type2_out) \
757 class msg_class : \ 865 class msg_class : \
758 public IPC::MessageWithReply<Tuple0, Tuple2<type1_out&, type2_out&> > { \ 866 public IPC::MessageWithReply<Tuple0, Tuple2<type1_out&, type2_out&> > { \
759 public: \ 867 public: \
760 enum { ID = msg_class##__ID }; \ 868 enum { ID = msg_class##__ID }; \
761 msg_class(type1_out* arg1, type2_out* arg2) \ 869 msg_class(type1_out* arg1, type2_out* arg2); \
762 : IPC::MessageWithReply<Tuple0, Tuple2<type1_out&, type2_out&> >( \ 870 ~msg_class(); \
763 MSG_ROUTING_CONTROL, \ 871 static void Log(const Message* msg, std::wstring* l); \
764 ID, \
765 MakeTuple(), MakeRefTuple(*arg1, *arg2)) {} \
766 }; 872 };
767 873
768 #define IPC_SYNC_MESSAGE_CONTROL0_3(msg_class, type1_out, type2_out, type3_out) \ 874 #define IPC_SYNC_MESSAGE_CONTROL0_3(msg_class, type1_out, type2_out, type3_out) \
769 class msg_class : \ 875 class msg_class : \
770 public IPC::MessageWithReply<Tuple0, \ 876 public IPC::MessageWithReply<Tuple0, \
771 Tuple3<type1_out&, type2_out&, type3_out&> >{ \ 877 Tuple3<type1_out&, type2_out&, type3_out&> >{ \
772 public: \ 878 public: \
773 enum { ID = msg_class##__ID }; \ 879 enum { ID = msg_class##__ID }; \
774 msg_class(type1_out* arg1, type2_out* arg2, type3_out* arg3) \ 880 msg_class(type1_out* arg1, type2_out* arg2, type3_out* arg3); \
775 : IPC::MessageWithReply<Tuple0, \ 881 ~msg_class(); \
776 Tuple3<type1_out&, type2_out&, type3_out&> >(MSG_ROUTING_CONTROL, \ 882 static void Log(const Message* msg, std::wstring* l); \
777 ID, \
778 MakeTuple(), MakeRefTuple(*arg1, *arg2, *arg3)) {} \
779 }; 883 };
780 884
781 #define IPC_SYNC_MESSAGE_CONTROL1_0(msg_class, type1_in) \ 885 #define IPC_SYNC_MESSAGE_CONTROL1_0(msg_class, type1_in) \
782 class msg_class : \ 886 class msg_class : \
783 public IPC::MessageWithReply<Tuple1<type1_in>, Tuple0 > { \ 887 public IPC::MessageWithReply<Tuple1<type1_in>, Tuple0 > { \
784 public: \ 888 public: \
785 enum { ID = msg_class##__ID }; \ 889 enum { ID = msg_class##__ID }; \
786 msg_class(const type1_in& arg1) \ 890 msg_class(const type1_in& arg1); \
787 : IPC::MessageWithReply<Tuple1<type1_in>, Tuple0 >( \ 891 ~msg_class(); \
788 MSG_ROUTING_CONTROL, ID, \ 892 static void Log(const Message* msg, std::wstring* l); \
789 MakeRefTuple(arg1), MakeTuple()) {} \
790 }; 893 };
791 894
792 #define IPC_SYNC_MESSAGE_CONTROL1_1(msg_class, type1_in, type1_out) \ 895 #define IPC_SYNC_MESSAGE_CONTROL1_1(msg_class, type1_in, type1_out) \
793 class msg_class : \ 896 class msg_class : \
794 public IPC::MessageWithReply<Tuple1<type1_in>, Tuple1<type1_out&> > { \ 897 public IPC::MessageWithReply<Tuple1<type1_in>, Tuple1<type1_out&> > { \
795 public: \ 898 public: \
796 enum { ID = msg_class##__ID }; \ 899 enum { ID = msg_class##__ID }; \
797 msg_class(const type1_in& arg1, type1_out* arg2) \ 900 msg_class(const type1_in& arg1, type1_out* arg2); \
798 : IPC::MessageWithReply<Tuple1<type1_in>, Tuple1<type1_out&> >( \ 901 ~msg_class(); \
799 MSG_ROUTING_CONTROL, ID, \ 902 static void Log(const Message* msg, std::wstring* l); \
800 MakeRefTuple(arg1), MakeRefTuple(*arg2)) {} \
801 }; 903 };
802 904
803 #define IPC_SYNC_MESSAGE_CONTROL1_2(msg_class, type1_in, type1_out, type2_out) \ 905 #define IPC_SYNC_MESSAGE_CONTROL1_2(msg_class, type1_in, type1_out, type2_out) \
804 class msg_class : \ 906 class msg_class : \
805 public IPC::MessageWithReply<Tuple1<type1_in>, Tuple2<type1_out&, type2_ou t&> > { \ 907 public IPC::MessageWithReply<Tuple1<type1_in>, Tuple2<type1_out&, type2_ou t&> > { \
806 public: \ 908 public: \
807 enum { ID = msg_class##__ID }; \ 909 enum { ID = msg_class##__ID }; \
808 msg_class(const type1_in& arg1, type1_out* arg2, type2_out* arg3) \ 910 msg_class(const type1_in& arg1, type1_out* arg2, type2_out* arg3); \
809 : IPC::MessageWithReply<Tuple1<type1_in>, Tuple2<type1_out&, type2_out&> >( \ 911 ~msg_class(); \
810 MSG_ROUTING_CONTROL, ID, \ 912 static void Log(const Message* msg, std::wstring* l); \
811 MakeRefTuple(arg1), MakeRefTuple(*arg2, *arg3)) {} \
812 }; 913 };
813 914
814 #define IPC_SYNC_MESSAGE_CONTROL1_3(msg_class, type1_in, type1_out, type2_out, t ype3_out) \ 915 #define IPC_SYNC_MESSAGE_CONTROL1_3(msg_class, type1_in, type1_out, type2_out, t ype3_out) \
815 class msg_class : \ 916 class msg_class : \
816 public IPC::MessageWithReply<Tuple1<type1_in>, \ 917 public IPC::MessageWithReply<Tuple1<type1_in>, \
817 Tuple3<type1_out&, type2_out&, type3_out&> >{ \ 918 Tuple3<type1_out&, type2_out&, type3_out&> >{ \
818 public: \ 919 public: \
819 enum { ID = msg_class##__ID }; \ 920 enum { ID = msg_class##__ID }; \
820 msg_class(const type1_in& arg1, type1_out* arg2, type2_out* arg3, type3_out* arg4) \ 921 msg_class(const type1_in& arg1, type1_out* arg2, type2_out* arg3, type3_out* arg4); \
821 : IPC::MessageWithReply<Tuple1<type1_in>, \ 922 ~msg_class(); \
822 Tuple3<type1_out&, type2_out&, type3_out&> >(MSG_ROUTING_CONTROL, \ 923 static void Log(const Message* msg, std::wstring* l); \
823 ID, \
824 MakeRefTuple(arg1), MakeRefTuple(*arg2, *arg3, *arg4)) {} \
825 }; 924 };
826 925
827 #define IPC_SYNC_MESSAGE_CONTROL2_0(msg_class, type1_in, type2_in) \ 926 #define IPC_SYNC_MESSAGE_CONTROL2_0(msg_class, type1_in, type2_in) \
828 class msg_class : \ 927 class msg_class : \
829 public IPC::MessageWithReply<Tuple2<type1_in, type2_in>, Tuple0 > { \ 928 public IPC::MessageWithReply<Tuple2<type1_in, type2_in>, Tuple0 > { \
830 public: \ 929 public: \
831 enum { ID = msg_class##__ID }; \ 930 enum { ID = msg_class##__ID }; \
832 msg_class(const type1_in& arg1, const type2_in& arg2) \ 931 msg_class(const type1_in& arg1, const type2_in& arg2); \
833 : IPC::MessageWithReply<Tuple2<type1_in, type2_in>, Tuple0 >( \ 932 ~msg_class(); \
834 MSG_ROUTING_CONTROL, ID, \ 933 static void Log(const Message* msg, std::wstring* l); \
835 MakeRefTuple(arg1, arg2), MakeTuple()) {} \
836 }; 934 };
837 935
838 #define IPC_SYNC_MESSAGE_CONTROL2_1(msg_class, type1_in, type2_in, type1_out) \ 936 #define IPC_SYNC_MESSAGE_CONTROL2_1(msg_class, type1_in, type2_in, type1_out) \
839 class msg_class : \ 937 class msg_class : \
840 public IPC::MessageWithReply<Tuple2<type1_in, type2_in>, Tuple1<type1_out& > > { \ 938 public IPC::MessageWithReply<Tuple2<type1_in, type2_in>, Tuple1<type1_out& > > { \
841 public: \ 939 public: \
842 enum { ID = msg_class##__ID }; \ 940 enum { ID = msg_class##__ID }; \
843 msg_class(const type1_in& arg1, const type2_in& arg2, type1_out* arg3) \ 941 msg_class(const type1_in& arg1, const type2_in& arg2, type1_out* arg3); \
844 : IPC::MessageWithReply<Tuple2<type1_in, type2_in>, Tuple1<type1_out&> > ( \ 942 ~msg_class(); \
845 MSG_ROUTING_CONTROL, ID, \ 943 static void Log(const Message* msg, std::wstring* l); \
846 MakeRefTuple(arg1, arg2), MakeRefTuple(*arg3)) {} \
847 }; 944 };
848 945
849 #define IPC_SYNC_MESSAGE_CONTROL2_2(msg_class, type1_in, type2_in, type1_out, ty pe2_out) \ 946 #define IPC_SYNC_MESSAGE_CONTROL2_2(msg_class, type1_in, type2_in, type1_out, ty pe2_out) \
850 class msg_class : \ 947 class msg_class : \
851 public IPC::MessageWithReply<Tuple2<type1_in, type2_in>, \ 948 public IPC::MessageWithReply<Tuple2<type1_in, type2_in>, \
852 Tuple2<type1_out&, type2_out&> > { \ 949 Tuple2<type1_out&, type2_out&> > { \
853 public: \ 950 public: \
854 enum { ID = msg_class##__ID }; \ 951 enum { ID = msg_class##__ID }; \
855 msg_class(const type1_in& arg1, const type2_in& arg2, type1_out* arg3, type2 _out* arg4) \ 952 msg_class(const type1_in& arg1, const type2_in& arg2, type1_out* arg3, type2_ out* arg4); \
856 : IPC::MessageWithReply<Tuple2<type1_in, type2_in>, \ 953 ~msg_class(); \
857 Tuple2<type1_out&, type2_out&> >(MSG_ROUTING_CONTROL, ID, \ 954 static void Log(const Message* msg, std::wstring* l); \
858 MakeRefTuple(arg1, arg2), MakeRefTuple(*arg3, *arg4)) {} \
859 }; 955 };
860 956
861 #define IPC_SYNC_MESSAGE_CONTROL2_3(msg_class, type1_in, type2_in, type1_out, ty pe2_out, type3_out) \ 957 #define IPC_SYNC_MESSAGE_CONTROL2_3(msg_class, type1_in, type2_in, type1_out, ty pe2_out, type3_out) \
862 class msg_class : \ 958 class msg_class : \
863 public IPC::MessageWithReply<Tuple2<type1_in, type2_in>, \ 959 public IPC::MessageWithReply<Tuple2<type1_in, type2_in>, \
864 Tuple3<type1_out&, type2_out&, type3_out&> > { \ 960 Tuple3<type1_out&, type2_out&, type3_out&> > { \
865 public: \ 961 public: \
866 enum { ID = msg_class##__ID }; \ 962 enum { ID = msg_class##__ID }; \
867 msg_class(const type1_in& arg1, const type2_in& arg2, type1_out* arg3, type2 _out* arg4, type3_out* arg5) \ 963 msg_class(const type1_in& arg1, const type2_in& arg2, type1_out* arg3, type2_ out* arg4, type3_out* arg5); \
868 : IPC::MessageWithReply<Tuple2<type1_in, type2_in>, \ 964 ~msg_class(); \
869 Tuple3<type1_out&, type2_out&, type3_out&> >(MSG_ROUTING_CONTROL, \ 965 static void Log(const Message* msg, std::wstring* l); \
870 ID, \
871 MakeRefTuple(arg1, arg2), MakeRefTuple(*arg3, *arg4, *arg5)) {} \
872 }; 966 };
873 967
874 #define IPC_SYNC_MESSAGE_CONTROL3_1(msg_class, type1_in, type2_in, type3_in, typ e1_out) \ 968 #define IPC_SYNC_MESSAGE_CONTROL3_1(msg_class, type1_in, type2_in, type3_in, typ e1_out) \
875 class msg_class : \ 969 class msg_class : \
876 public IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ 970 public IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \
877 Tuple1<type1_out&> > { \ 971 Tuple1<type1_out&> > { \
878 public: \ 972 public: \
879 enum { ID = msg_class##__ID }; \ 973 enum { ID = msg_class##__ID }; \
880 msg_class(const type1_in& arg1, const type2_in& arg2, const type3_in& arg3, type1_out* arg4) \ 974 msg_class(const type1_in& arg1, const type2_in& arg2, const type3_in& arg3, t ype1_out* arg4); \
881 : IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ 975 ~msg_class(); \
882 Tuple1<type1_out&> >(MSG_ROUTING_CONTROL, ID, \ 976 static void Log(const Message* msg, std::wstring* l); \
883 MakeRefTuple(arg1, arg2, arg3), MakeRefTuple(*arg4)) {} \
884 }; 977 };
885 978
886 #define IPC_SYNC_MESSAGE_CONTROL3_2(msg_class, type1_in, type2_in, type3_in, typ e1_out, type2_out) \ 979 #define IPC_SYNC_MESSAGE_CONTROL3_2(msg_class, type1_in, type2_in, type3_in, typ e1_out, type2_out) \
887 class msg_class : \ 980 class msg_class : \
888 public IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ 981 public IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \
889 Tuple2<type1_out&, type2_out&> > { \ 982 Tuple2<type1_out&, type2_out&> > { \
890 public: \ 983 public: \
891 enum { ID = msg_class##__ID }; \ 984 enum { ID = msg_class##__ID }; \
892 msg_class(const type1_in& arg1, const type2_in& arg2, const type3_in& arg3, type1_out* arg4, type2_out* arg5) \ 985 msg_class(const type1_in& arg1, const type2_in& arg2, const type3_in& arg3, t ype1_out* arg4, type2_out* arg5); \
893 : IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ 986 ~msg_class(); \
894 Tuple2<type1_out&, type2_out&> >(MSG_ROUTING_CONTROL, ID, \ 987 static void Log(const Message* msg, std::wstring* l); \
895 MakeRefTuple(arg1, arg2, arg3), MakeRefTuple(*arg4, *arg5)) {} \
896 }; 988 };
897 989
898 #define IPC_SYNC_MESSAGE_CONTROL3_3(msg_class, type1_in, type2_in, type3_in, typ e1_out, type2_out, type3_out) \ 990 #define IPC_SYNC_MESSAGE_CONTROL3_3(msg_class, type1_in, type2_in, type3_in, typ e1_out, type2_out, type3_out) \
899 class msg_class : \ 991 class msg_class : \
900 public IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ 992 public IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \
901 Tuple3<type1_out&, type2_out&, type3_out&> > { \ 993 Tuple3<type1_out&, type2_out&, type3_out&> > { \
902 public: \ 994 public: \
903 enum { ID = msg_class##__ID }; \ 995 enum { ID = msg_class##__ID }; \
904 msg_class(const type1_in& arg1, const type2_in& arg2, const type3_in& arg3, type1_out* arg4, type2_out* arg5, type3_out* arg6) \ 996 msg_class(const type1_in& arg1, const type2_in& arg2, const type3_in& arg3, t ype1_out* arg4, type2_out* arg5, type3_out* arg6); \
905 : IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ 997 ~msg_class(); \
906 Tuple3<type1_out&, type2_out&, type3_out&> >(MSG_ROUTING_CONTROL, \ 998 static void Log(const Message* msg, std::wstring* l); \
907 ID, \
908 MakeRefTuple(arg1, arg2, arg3), MakeRefTuple(*arg4, *arg5, *arg6)) { } \
909 }; 999 };
910 1000
911 #define IPC_SYNC_MESSAGE_CONTROL4_1(msg_class, type1_in, type2_in, type3_in, typ e4_in, type1_out) \ 1001 #define IPC_SYNC_MESSAGE_CONTROL4_1(msg_class, type1_in, type2_in, type3_in, typ e4_in, type1_out) \
912 class msg_class : \ 1002 class msg_class : \
913 public IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in >, \ 1003 public IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in >, \
914 Tuple1<type1_out&> > { \ 1004 Tuple1<type1_out&> > { \
915 public: \ 1005 public: \
916 enum { ID = msg_class##__ID }; \ 1006 enum { ID = msg_class##__ID }; \
917 msg_class(const type1_in& arg1, const type2_in& arg2, const type3_in& arg3, const type4_in& arg4, type1_out* arg6) \ 1007 msg_class(const type1_in& arg1, const type2_in& arg2, const type3_in& arg3, c onst type4_in& arg4, type1_out* arg6); \
918 : IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in>, \ 1008 ~msg_class(); \
919 Tuple1<type1_out&> >(MSG_ROUTING_CONTROL, ID, \ 1009 static void Log(const Message* msg, std::wstring* l); \
920 MakeRefTuple(arg1, arg2, arg3, arg4), MakeRefTuple(*arg6)) {} \
921 }; 1010 };
922 1011
923 #define IPC_SYNC_MESSAGE_CONTROL4_2(msg_class, type1_in, type2_in, type3_in, typ e4_in, type1_out, type2_out) \ 1012 #define IPC_SYNC_MESSAGE_CONTROL4_2(msg_class, type1_in, type2_in, type3_in, typ e4_in, type1_out, type2_out) \
924 class msg_class : \ 1013 class msg_class : \
925 public IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in >, \ 1014 public IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in >, \
926 Tuple2<type1_out&, type2_out&> > { \ 1015 Tuple2<type1_out&, type2_out&> > { \
927 public: \ 1016 public: \
928 enum { ID = msg_class##__ID }; \ 1017 enum { ID = msg_class##__ID }; \
929 msg_class(const type1_in& arg1, const type2_in& arg2, const type3_in& arg3, const type4_in& arg4, type1_out* arg5, type2_out* arg6) \ 1018 msg_class(const type1_in& arg1, const type2_in& arg2, const type3_in& arg3, c onst type4_in& arg4, type1_out* arg5, type2_out* arg6); \
930 : IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in>, \ 1019 ~msg_class(); \
931 Tuple2<type1_out&, type2_out&> >(MSG_ROUTING_CONTROL, ID, \ 1020 static void Log(const Message* msg, std::wstring* l); \
932 MakeRefTuple(arg1, arg2, arg3, arg4), MakeRefTuple(*arg5, *arg6)) {} \ 1021 };
1022
1023 #define IPC_SYNC_MESSAGE_ROUTED0_0(msg_class) \
1024 class msg_class : public IPC::MessageWithReply<Tuple0, Tuple0 > { \
1025 public: \
1026 enum { ID = msg_class##__ID }; \
1027 msg_class(int routing_id); \
1028 ~msg_class(); \
1029 static void Log(const Message* msg, std::wstring* l); \
933 }; 1030 };
934 1031
935 #define IPC_SYNC_MESSAGE_ROUTED0_1(msg_class, type1_out) \ 1032 #define IPC_SYNC_MESSAGE_ROUTED0_1(msg_class, type1_out) \
936 class msg_class : public IPC::MessageWithReply<Tuple0, Tuple1<type1_out&> > { \ 1033 class msg_class : public IPC::MessageWithReply<Tuple0, Tuple1<type1_out&> > { \
937 public: \ 1034 public: \
938 enum { ID = msg_class##__ID }; \ 1035 enum { ID = msg_class##__ID }; \
939 msg_class(int routing_id, type1_out* arg1) \ 1036 msg_class(int routing_id, type1_out* arg1); \
940 : IPC::MessageWithReply<Tuple0, Tuple1<type1_out&> >( \ 1037 ~msg_class(); \
941 routing_id, ID, \ 1038 static void Log(const Message* msg, std::wstring* l); \
942 MakeTuple(), MakeRefTuple(*arg1)) {} \
943 };
944
945 #define IPC_SYNC_MESSAGE_ROUTED0_0(msg_class) \
946 class msg_class : public IPC::MessageWithReply<Tuple0, Tuple0 > { \
947 public: \
948 enum { ID = msg_class##__ID }; \
949 msg_class(int routing_id) \
950 : IPC::MessageWithReply<Tuple0, Tuple0 >( \
951 routing_id, ID, \
952 MakeTuple(), MakeTuple()) {} \
953 }; 1039 };
954 1040
955 #define IPC_SYNC_MESSAGE_ROUTED0_2(msg_class, type1_out, type2_out) \ 1041 #define IPC_SYNC_MESSAGE_ROUTED0_2(msg_class, type1_out, type2_out) \
956 class msg_class : \ 1042 class msg_class : \
957 public IPC::MessageWithReply<Tuple0, Tuple2<type1_out&, type2_out&> > { \ 1043 public IPC::MessageWithReply<Tuple0, Tuple2<type1_out&, type2_out&> > { \
958 public: \ 1044 public: \
959 enum { ID = msg_class##__ID }; \ 1045 enum { ID = msg_class##__ID }; \
960 msg_class(int routing_id, type1_out* arg1, type2_out* arg2) \ 1046 msg_class(int routing_id, type1_out* arg1, type2_out* arg2); \
961 : IPC::MessageWithReply<Tuple0, Tuple2<type1_out&, type2_out&> >( \ 1047 ~msg_class(); \
962 routing_id, ID, \ 1048 static void Log(const Message* msg, std::wstring* l); \
963 MakeTuple(), MakeRefTuple(*arg1, *arg2)) {} \
964 }; 1049 };
965 1050
966 #define IPC_SYNC_MESSAGE_ROUTED0_3(msg_class, type1_out, type2_out, type3_out) \ 1051 #define IPC_SYNC_MESSAGE_ROUTED0_3(msg_class, type1_out, type2_out, type3_out) \
967 class msg_class : \ 1052 class msg_class : \
968 public IPC::MessageWithReply<Tuple0, \ 1053 public IPC::MessageWithReply<Tuple0, \
969 Tuple3<type1_out&, type2_out&, type3_out&> >{ \ 1054 Tuple3<type1_out&, type2_out&, type3_out&> >{ \
970 public: \ 1055 public: \
971 enum { ID = msg_class##__ID }; \ 1056 enum { ID = msg_class##__ID }; \
972 msg_class(int routing_id, type1_out* arg1, type2_out* arg2, type3_out* arg3) \ 1057 msg_class(int routing_id, type1_out* arg1, type2_out* arg2, type3_out* arg3); \
973 : IPC::MessageWithReply<Tuple0, \ 1058 ~msg_class(); \
974 Tuple3<type1_out&, type2_out&, type3_out&> >(routing_id, ID, \ 1059 static void Log(const Message* msg, std::wstring* l); \
975 MakeTuple(), MakeRefTuple(*arg1, *arg2, *arg3)) {} \
976 }; 1060 };
977 1061
978 #define IPC_SYNC_MESSAGE_ROUTED1_0(msg_class, type1_in) \ 1062 #define IPC_SYNC_MESSAGE_ROUTED1_0(msg_class, type1_in) \
979 class msg_class : \ 1063 class msg_class : \
980 public IPC::MessageWithReply<Tuple1<type1_in>, Tuple0 > { \ 1064 public IPC::MessageWithReply<Tuple1<type1_in>, Tuple0 > { \
981 public: \ 1065 public: \
982 enum { ID = msg_class##__ID }; \ 1066 enum { ID = msg_class##__ID }; \
983 msg_class(int routing_id, const type1_in& arg1) \ 1067 msg_class(int routing_id, const type1_in& arg1); \
984 : IPC::MessageWithReply<Tuple1<type1_in>, Tuple0 >( \ 1068 ~msg_class(); \
985 routing_id, ID, \ 1069 static void Log(const Message* msg, std::wstring* l); \
986 MakeRefTuple(arg1), MakeTuple()) {} \
987 }; 1070 };
988 1071
989 #define IPC_SYNC_MESSAGE_ROUTED1_1(msg_class, type1_in, type1_out) \ 1072 #define IPC_SYNC_MESSAGE_ROUTED1_1(msg_class, type1_in, type1_out) \
990 class msg_class : \ 1073 class msg_class : \
991 public IPC::MessageWithReply<Tuple1<type1_in>, Tuple1<type1_out&> > { \ 1074 public IPC::MessageWithReply<Tuple1<type1_in>, Tuple1<type1_out&> > { \
992 public: \ 1075 public: \
993 enum { ID = msg_class##__ID }; \ 1076 enum { ID = msg_class##__ID }; \
994 msg_class(int routing_id, const type1_in& arg1, type1_out* arg2) \ 1077 msg_class(int routing_id, const type1_in& arg1, type1_out* arg2); \
995 : IPC::MessageWithReply<Tuple1<type1_in>, Tuple1<type1_out&> >( \ 1078 ~msg_class(); \
996 routing_id, ID, \ 1079 static void Log(const Message* msg, std::wstring* l); \
997 MakeRefTuple(arg1), MakeRefTuple(*arg2)) {} \
998 }; 1080 };
999 1081
1000 #define IPC_SYNC_MESSAGE_ROUTED1_2(msg_class, type1_in, type1_out, type2_out) \ 1082 #define IPC_SYNC_MESSAGE_ROUTED1_2(msg_class, type1_in, type1_out, type2_out) \
1001 class msg_class : \ 1083 class msg_class : \
1002 public IPC::MessageWithReply<Tuple1<type1_in>, Tuple2<type1_out&, type2_ou t&> > { \ 1084 public IPC::MessageWithReply<Tuple1<type1_in>, Tuple2<type1_out&, type2_ou t&> > { \
1003 public: \ 1085 public: \
1004 enum { ID = msg_class##__ID }; \ 1086 enum { ID = msg_class##__ID }; \
1005 msg_class(int routing_id, const type1_in& arg1, type1_out* arg2, type2_out* arg3) \ 1087 msg_class(int routing_id, const type1_in& arg1, type1_out* arg2, type2_out* a rg3); \
1006 : IPC::MessageWithReply<Tuple1<type1_in>, Tuple2<type1_out&, type2_out&> >( \ 1088 ~msg_class(); \
1007 routing_id, ID, \ 1089 static void Log(const Message* msg, std::wstring* l); \
1008 MakeRefTuple(arg1), MakeRefTuple(*arg2, *arg3)) {} \
1009 }; 1090 };
1010 1091
1011 #define IPC_SYNC_MESSAGE_ROUTED1_3(msg_class, type1_in, type1_out, type2_out, ty pe3_out) \ 1092 #define IPC_SYNC_MESSAGE_ROUTED1_3(msg_class, type1_in, type1_out, type2_out, ty pe3_out) \
1012 class msg_class : \ 1093 class msg_class : \
1013 public IPC::MessageWithReply<Tuple1<type1_in>, \ 1094 public IPC::MessageWithReply<Tuple1<type1_in>, \
1014 Tuple3<type1_out&, type2_out&, type3_out&> >{ \ 1095 Tuple3<type1_out&, type2_out&, type3_out&> >{ \
1015 public: \ 1096 public: \
1016 enum { ID = msg_class##__ID }; \ 1097 enum { ID = msg_class##__ID }; \
1017 msg_class(int routing_id, const type1_in& arg1, type1_out* arg2, type2_out* arg3, type3_out* arg4) \ 1098 msg_class(int routing_id, const type1_in& arg1, type1_out* arg2, type2_out* a rg3, type3_out* arg4); \
1018 : IPC::MessageWithReply<Tuple1<type1_in>, \ 1099 ~msg_class(); \
1019 Tuple3<type1_out&, type2_out&, type3_out&> >(routing_id, ID, \ 1100 static void Log(const Message* msg, std::wstring* l); \
1020 MakeRefTuple(arg1), MakeRefTuple(*arg2, *arg3, *arg4)) {} \
1021 }; 1101 };
1022 1102
1023 #define IPC_SYNC_MESSAGE_ROUTED1_4(msg_class, type1_in, type1_out, type2_out, ty pe3_out, type4_out) \ 1103 #define IPC_SYNC_MESSAGE_ROUTED1_4(msg_class, type1_in, type1_out, type2_out, ty pe3_out, type4_out) \
1024 class msg_class : \ 1104 class msg_class : \
1025 public IPC::MessageWithReply<Tuple1<type1_in>, \ 1105 public IPC::MessageWithReply<Tuple1<type1_in>, \
1026 Tuple4<type1_out&, type2_out&, type3_out&, type4_out&> >{ \ 1106 Tuple4<type1_out&, type2_out&, type3_out&, type4_out&> >{ \
1027 public: \ 1107 public: \
1028 enum { ID = msg_class##__ID }; \ 1108 enum { ID = msg_class##__ID }; \
1029 msg_class(int routing_id, const type1_in& arg1, type1_out* arg2, type2_out* arg3, type3_out* arg4, type4_out* arg5) \ 1109 msg_class(int routing_id, const type1_in& arg1, type1_out* arg2, type2_out* a rg3, type3_out* arg4, type4_out* arg5); \
1030 : IPC::MessageWithReply<Tuple1<type1_in>, \ 1110 ~msg_class(); \
1031 Tuple4<type1_out&, type2_out&, type3_out&, type4_out&> >(routing_id, ID, \ 1111 static void Log(const Message* msg, std::wstring* l); \
1032 MakeRefTuple(arg1), MakeRefTuple(*arg2, *arg3, *arg4, *arg5)) {} \
1033 }; 1112 };
1034 1113
1035 #define IPC_SYNC_MESSAGE_ROUTED2_0(msg_class, type1_in, type2_in) \ 1114 #define IPC_SYNC_MESSAGE_ROUTED2_0(msg_class, type1_in, type2_in) \
1036 class msg_class : \ 1115 class msg_class : \
1037 public IPC::MessageWithReply<Tuple2<type1_in, type2_in>, Tuple0 > { \ 1116 public IPC::MessageWithReply<Tuple2<type1_in, type2_in>, Tuple0 > { \
1038 public: \ 1117 public: \
1039 enum { ID = msg_class##__ID }; \ 1118 enum { ID = msg_class##__ID }; \
1040 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2) \ 1119 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2); \
1041 : IPC::MessageWithReply<Tuple2<type1_in, type2_in>, Tuple0 >( \ 1120 ~msg_class(); \
1042 routing_id, ID, \ 1121 static void Log(const Message* msg, std::wstring* l); \
1043 MakeRefTuple(arg1, arg2), MakeTuple()) {} \
1044 }; 1122 };
1045 1123
1046 #define IPC_SYNC_MESSAGE_ROUTED2_1(msg_class, type1_in, type2_in, type1_out) \ 1124 #define IPC_SYNC_MESSAGE_ROUTED2_1(msg_class, type1_in, type2_in, type1_out) \
1047 class msg_class : \ 1125 class msg_class : \
1048 public IPC::MessageWithReply<Tuple2<type1_in, type2_in>, Tuple1<type1_out& > > { \ 1126 public IPC::MessageWithReply<Tuple2<type1_in, type2_in>, Tuple1<type1_out& > > { \
1049 public: \ 1127 public: \
1050 enum { ID = msg_class##__ID }; \ 1128 enum { ID = msg_class##__ID }; \
1051 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, type1_ out* arg3) \ 1129 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, type1_o ut* arg3); \
1052 : IPC::MessageWithReply<Tuple2<type1_in, type2_in>, Tuple1<type1_out&> > ( \ 1130 ~msg_class(); \
1053 routing_id, ID, \ 1131 static void Log(const Message* msg, std::wstring* l); \
1054 MakeRefTuple(arg1, arg2), MakeRefTuple(*arg3)) {} \
1055 }; 1132 };
1056 1133
1057 #define IPC_SYNC_MESSAGE_ROUTED2_2(msg_class, type1_in, type2_in, type1_out, typ e2_out) \ 1134 #define IPC_SYNC_MESSAGE_ROUTED2_2(msg_class, type1_in, type2_in, type1_out, typ e2_out) \
1058 class msg_class : \ 1135 class msg_class : \
1059 public IPC::MessageWithReply<Tuple2<type1_in, type2_in>, \ 1136 public IPC::MessageWithReply<Tuple2<type1_in, type2_in>, \
1060 Tuple2<type1_out&, type2_out&> > { \ 1137 Tuple2<type1_out&, type2_out&> > { \
1061 public: \ 1138 public: \
1062 enum { ID = msg_class##__ID }; \ 1139 enum { ID = msg_class##__ID }; \
1063 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, type1_ out* arg3, type2_out* arg4) \ 1140 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, type1_o ut* arg3, type2_out* arg4); \
1064 : IPC::MessageWithReply<Tuple2<type1_in, type2_in>, \ 1141 ~msg_class(); \
1065 Tuple2<type1_out&, type2_out&> >(routing_id, ID, \ 1142 static void Log(const Message* msg, std::wstring* l); \
1066 MakeRefTuple(arg1, arg2), MakeRefTuple(*arg3, *arg4)) {} \
1067 }; 1143 };
1068 1144
1069 #define IPC_SYNC_MESSAGE_ROUTED2_3(msg_class, type1_in, type2_in, type1_out, typ e2_out, type3_out) \ 1145 #define IPC_SYNC_MESSAGE_ROUTED2_3(msg_class, type1_in, type2_in, type1_out, typ e2_out, type3_out) \
1070 class msg_class : \ 1146 class msg_class : \
1071 public IPC::MessageWithReply<Tuple2<type1_in, type2_in>, \ 1147 public IPC::MessageWithReply<Tuple2<type1_in, type2_in>, \
1072 Tuple3<type1_out&, type2_out&, type3_out&> > { \ 1148 Tuple3<type1_out&, type2_out&, type3_out&> > { \
1073 public: \ 1149 public: \
1074 enum { ID = msg_class##__ID }; \ 1150 enum { ID = msg_class##__ID }; \
1075 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, type1_ out* arg3, type2_out* arg4, type3_out* arg5) \ 1151 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, type1_o ut* arg3, type2_out* arg4, type3_out* arg5); \
1076 : IPC::MessageWithReply<Tuple2<type1_in, type2_in>, \ 1152 ~msg_class(); \
1077 Tuple3<type1_out&, type2_out&, type3_out&> >(routing_id, ID, \ 1153 static void Log(const Message* msg, std::wstring* l); \
1078 MakeRefTuple(arg1, arg2), MakeRefTuple(*arg3, *arg4, *arg5)) {} \
1079 }; 1154 };
1080 1155
1081 #define IPC_SYNC_MESSAGE_ROUTED3_0(msg_class, type1_in, type2_in, type3_in) \ 1156 #define IPC_SYNC_MESSAGE_ROUTED3_0(msg_class, type1_in, type2_in, type3_in) \
1082 class msg_class : \ 1157 class msg_class : \
1083 public IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, Tuple0 > { \ 1158 public IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, Tuple0 > { \
1084 public: \ 1159 public: \
1085 enum { ID = msg_class##__ID }; \ 1160 enum { ID = msg_class##__ID }; \
1086 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const type3_in& arg3) \ 1161 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const t ype3_in& arg3); \
1087 : IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, Tuple0>( \ 1162 ~msg_class(); \
1088 routing_id, ID, \ 1163 static void Log(const Message* msg, std::wstring* l); \
1089 MakeRefTuple(arg1, arg2, arg3), MakeTuple()) {} \ 1164 };
1090 };
1091 1165
1092 #define IPC_SYNC_MESSAGE_ROUTED3_1(msg_class, type1_in, type2_in, type3_in, type 1_out) \ 1166 #define IPC_SYNC_MESSAGE_ROUTED3_1(msg_class, type1_in, type2_in, type3_in, type 1_out) \
1093 class msg_class : \ 1167 class msg_class : \
1094 public IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ 1168 public IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \
1095 Tuple1<type1_out&> > { \ 1169 Tuple1<type1_out&> > { \
1096 public: \ 1170 public: \
1097 enum { ID = msg_class##__ID }; \ 1171 enum { ID = msg_class##__ID }; \
1098 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const type3_in& arg3, type1_out* arg4) \ 1172 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const t ype3_in& arg3, type1_out* arg4); \
1099 : IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ 1173 ~msg_class(); \
1100 Tuple1<type1_out&> >(routing_id, ID, \ 1174 static void Log(const Message* msg, std::wstring* l); \
1101 MakeRefTuple(arg1, arg2, arg3), MakeRefTuple(*arg4)) {} \
1102 }; 1175 };
1103 1176
1104 #define IPC_SYNC_MESSAGE_ROUTED3_2(msg_class, type1_in, type2_in, type3_in, type 1_out, type2_out) \ 1177 #define IPC_SYNC_MESSAGE_ROUTED3_2(msg_class, type1_in, type2_in, type3_in, type 1_out, type2_out) \
1105 class msg_class : \ 1178 class msg_class : \
1106 public IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ 1179 public IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \
1107 Tuple2<type1_out&, type2_out&> > { \ 1180 Tuple2<type1_out&, type2_out&> > { \
1108 public: \ 1181 public: \
1109 enum { ID = msg_class##__ID }; \ 1182 enum { ID = msg_class##__ID }; \
1110 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const type3_in& arg3, type1_out* arg4, type2_out* arg5) \ 1183 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const t ype3_in& arg3, type1_out* arg4, type2_out* arg5); \
1111 : IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ 1184 ~msg_class(); \
1112 Tuple2<type1_out&, type2_out&> >(routing_id, ID, \ 1185 static void Log(const Message* msg, std::wstring* l); \
1113 MakeRefTuple(arg1, arg2, arg3), MakeRefTuple(*arg4, *arg5)) {} \
1114 }; 1186 };
1115 1187
1116 #define IPC_SYNC_MESSAGE_ROUTED3_3(msg_class, type1_in, type2_in, type3_in, type 1_out, type2_out, type3_out) \ 1188 #define IPC_SYNC_MESSAGE_ROUTED3_3(msg_class, type1_in, type2_in, type3_in, type 1_out, type2_out, type3_out) \
1117 class msg_class : \ 1189 class msg_class : \
1118 public IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ 1190 public IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \
1119 Tuple3<type1_out&, type2_out&, type3_out&> > { \ 1191 Tuple3<type1_out&, type2_out&, type3_out&> > { \
1120 public: \ 1192 public: \
1121 enum { ID = msg_class##__ID }; \ 1193 enum { ID = msg_class##__ID }; \
1122 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const type3_in& arg3, type1_out* arg4, type2_out* arg5, type3_out* arg6) \ 1194 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const t ype3_in& arg3, type1_out* arg4, type2_out* arg5, type3_out* arg6); \
1123 : IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ 1195 ~msg_class(); \
1124 Tuple3<type1_out&, type2_out&, type3_out&> >(routing_id, ID, \ 1196 static void Log(const Message* msg, std::wstring* l); \
1125 MakeRefTuple(arg1, arg2, arg3), MakeRefTuple(*arg4, *arg5, *arg6)) { } \
1126 }; 1197 };
1127 1198
1128 #define IPC_SYNC_MESSAGE_ROUTED4_0(msg_class, type1_in, type2_in, type3_in, type 4_in) \ 1199 #define IPC_SYNC_MESSAGE_ROUTED4_0(msg_class, type1_in, type2_in, type3_in, type 4_in) \
1129 class msg_class : \ 1200 class msg_class : \
1130 public IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in >, \ 1201 public IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in >, \
1131 Tuple0 > { \ 1202 Tuple0 > { \
1132 public: \ 1203 public: \
1133 enum { ID = msg_class##__ID }; \ 1204 enum { ID = msg_class##__ID }; \
1134 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const type3_in& arg3, const type4_in& arg4) \ 1205 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const t ype3_in& arg3, const type4_in& arg4); \
1135 : IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in>, \ 1206 ~msg_class(); \
1136 Tuple0 >(routing_id, ID, \ 1207 static void Log(const Message* msg, std::wstring* l); \
1137 MakeRefTuple(arg1, arg2, arg3, arg4), MakeTuple()) {} \
1138 }; 1208 };
1139 1209
1140 #define IPC_SYNC_MESSAGE_ROUTED4_1(msg_class, type1_in, type2_in, type3_in, type 4_in, type1_out) \ 1210 #define IPC_SYNC_MESSAGE_ROUTED4_1(msg_class, type1_in, type2_in, type3_in, type 4_in, type1_out) \
1141 class msg_class : \ 1211 class msg_class : \
1142 public IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in >, \ 1212 public IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in >, \
1143 Tuple1<type1_out&> > { \ 1213 Tuple1<type1_out&> > { \
1144 public: \ 1214 public: \
1145 enum { ID = msg_class##__ID }; \ 1215 enum { ID = msg_class##__ID }; \
1146 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const type3_in& arg3, const type4_in& arg4, type1_out* arg6) \ 1216 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const t ype3_in& arg3, const type4_in& arg4, type1_out* arg6); \
1147 : IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in>, \ 1217 ~msg_class(); \
1148 Tuple1<type1_out&> >(routing_id, ID, \ 1218 static void Log(const Message* msg, std::wstring* l); \
1149 MakeRefTuple(arg1, arg2, arg3, arg4), MakeRefTuple(*arg6)) {} \
1150 }; 1219 };
1151 1220
1152 #define IPC_SYNC_MESSAGE_ROUTED4_2(msg_class, type1_in, type2_in, type3_in, type 4_in, type1_out, type2_out) \ 1221 #define IPC_SYNC_MESSAGE_ROUTED4_2(msg_class, type1_in, type2_in, type3_in, type 4_in, type1_out, type2_out) \
1153 class msg_class : \ 1222 class msg_class : \
1154 public IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in >, \ 1223 public IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in >, \
1155 Tuple2<type1_out&, type2_out&> > { \ 1224 Tuple2<type1_out&, type2_out&> > { \
1156 public: \ 1225 public: \
1157 enum { ID = msg_class##__ID }; \ 1226 enum { ID = msg_class##__ID }; \
1158 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const type3_in& arg3, const type4_in& arg4, type1_out* arg5, type2_out* arg6) \ 1227 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const t ype3_in& arg3, const type4_in& arg4, type1_out* arg5, type2_out* arg6); \
1159 : IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in>, \ 1228 ~msg_class(); \
1160 Tuple2<type1_out&, type2_out&> >(routing_id, ID, \ 1229 static void Log(const Message* msg, std::wstring* l); \
1161 MakeRefTuple(arg1, arg2, arg3, arg4), MakeRefTuple(*arg5, *arg6)) {} \
1162 }; 1230 };
1163 1231
1164 #define IPC_SYNC_MESSAGE_ROUTED4_3(msg_class, type1_in, type2_in, type3_in, type 4_in, type1_out, type2_out, type3_out) \ 1232 #define IPC_SYNC_MESSAGE_ROUTED4_3(msg_class, type1_in, type2_in, type3_in, type 4_in, type1_out, type2_out, type3_out) \
1165 class msg_class : \ 1233 class msg_class : \
1166 public IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in >, \ 1234 public IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in >, \
1167 Tuple3<type1_out&, type2_out&, type3_out&> > { \ 1235 Tuple3<type1_out&, type2_out&, type3_out&> > { \
1168 public: \ 1236 public: \
1169 enum { ID = msg_class##__ID }; \ 1237 enum { ID = msg_class##__ID }; \
1170 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const type3_in& arg3, const type4_in& arg4, type1_out* arg5, type2_out* arg6, type3_ou t* arg7) \ 1238 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const t ype3_in& arg3, const type4_in& arg4, type1_out* arg5, type2_out* arg6, type3_out * arg7); \
1171 : IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in>, \ 1239 ~msg_class(); \
1172 Tuple3<type1_out&, type2_out&, type3_out&> >(routing_id, ID, \ 1240 static void Log(const Message* msg, std::wstring* l); \
1173 MakeRefTuple(arg1, arg2, arg3, arg4), MakeRefTuple(*arg5, *arg6, *arg7 )) {} \
1174 }; 1241 };
1175 1242
1176 #define IPC_SYNC_MESSAGE_ROUTED5_0(msg_class, type1_in, type2_in, type3_in, type 4_in, type5_in) \ 1243 #define IPC_SYNC_MESSAGE_ROUTED5_0(msg_class, type1_in, type2_in, type3_in, type 4_in, type5_in) \
1177 class msg_class : \ 1244 class msg_class : \
1178 public IPC::MessageWithReply<Tuple5<type1_in, type2_in, type3_in, type4_in , type5_in>, \ 1245 public IPC::MessageWithReply<Tuple5<type1_in, type2_in, type3_in, type4_in , type5_in>, \
1179 Tuple0 > { \ 1246 Tuple0 > { \
1180 public: \ 1247 public: \
1181 enum { ID = msg_class##__ID }; \ 1248 enum { ID = msg_class##__ID }; \
1182 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const type3_in& arg3, const type4_in& arg4, const type5_in& arg5) \ 1249 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const t ype3_in& arg3, const type4_in& arg4, const type5_in& arg5); \
1183 : IPC::MessageWithReply<Tuple5<type1_in, type2_in, type3_in, type4_in, t ype5_in>, \ 1250 ~msg_class(); \
1184 Tuple0 >(routing_id, ID, \ 1251 static void Log(const Message* msg, std::wstring* l); \
1185 MakeRefTuple(arg1, arg2, arg3, arg4, arg5), MakeTuple()) {} \
1186 }; 1252 };
1187 1253
1188 #define IPC_SYNC_MESSAGE_ROUTED5_1(msg_class, type1_in, type2_in, type3_in, type 4_in, type5_in, type1_out) \ 1254 #define IPC_SYNC_MESSAGE_ROUTED5_1(msg_class, type1_in, type2_in, type3_in, type 4_in, type5_in, type1_out) \
1189 class msg_class : \ 1255 class msg_class : \
1190 public IPC::MessageWithReply<Tuple5<type1_in, type2_in, type3_in, type4_in , type5_in>, \ 1256 public IPC::MessageWithReply<Tuple5<type1_in, type2_in, type3_in, type4_in , type5_in>, \
1191 Tuple1<type1_out&> > { \ 1257 Tuple1<type1_out&> > { \
1192 public: \ 1258 public: \
1193 enum { ID = msg_class##__ID }; \ 1259 enum { ID = msg_class##__ID }; \
1194 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const type3_in& arg3, const type4_in& arg4, const type5_in& arg5, type1_out* arg6) \ 1260 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const t ype3_in& arg3, const type4_in& arg4, const type5_in& arg5, type1_out* arg6); \
1195 : IPC::MessageWithReply<Tuple5<type1_in, type2_in, type3_in, type4_in, t ype5_in>, \ 1261 ~msg_class(); \
1196 Tuple1<type1_out&> >(routing_id, ID, \ 1262 static void Log(const Message* msg, std::wstring* l); \
1197 MakeRefTuple(arg1, arg2, arg3, arg4, arg5), MakeRefTuple(*arg6)) {} \
1198 }; 1263 };
1199 1264
1200 #define IPC_SYNC_MESSAGE_ROUTED5_2(msg_class, type1_in, type2_in, type3_in, type 4_in, type5_in, type1_out, type2_out) \ 1265 #define IPC_SYNC_MESSAGE_ROUTED5_2(msg_class, type1_in, type2_in, type3_in, type 4_in, type5_in, type1_out, type2_out) \
1201 class msg_class : \ 1266 class msg_class : \
1202 public IPC::MessageWithReply<Tuple5<type1_in, type2_in, type3_in, type4_in , type5_in>, \ 1267 public IPC::MessageWithReply<Tuple5<type1_in, type2_in, type3_in, type4_in , type5_in>, \
1203 Tuple2<type1_out&, type2_out&> > { \ 1268 Tuple2<type1_out&, type2_out&> > { \
1204 public: \ 1269 public: \
1205 enum { ID = msg_class##__ID }; \ 1270 enum { ID = msg_class##__ID }; \
1206 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const type3_in& arg3, const type4_in& arg4, const type4_in& arg5, type1_out* arg6, typ e2_out* arg7) \ 1271 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const t ype3_in& arg3, const type4_in& arg4, const type4_in& arg5, type1_out* arg6, type 2_out* arg7); \
1207 : IPC::MessageWithReply<Tuple5<type1_in, type2_in, type3_in, type4_in, t ype5_in>, \ 1272 ~msg_class(); \
1208 Tuple2<type1_out&, type2_out&> >(routing_id, ID, \ 1273 static void Log(const Message* msg, std::wstring* l); \
1209 MakeRefTuple(arg1, arg2, arg3, arg4, arg5), MakeRefTuple(*arg6, *arg 7)) {} \
1210 }; 1274 };
1211 1275
1212 #define IPC_SYNC_MESSAGE_ROUTED5_3(msg_class, type1_in, type2_in, type3_in, type 4_in, type5_in, type1_out, type2_out, type3_out) \ 1276 #define IPC_SYNC_MESSAGE_ROUTED5_3(msg_class, type1_in, type2_in, type3_in, type 4_in, type5_in, type1_out, type2_out, type3_out) \
1213 class msg_class : \ 1277 class msg_class : \
1214 public IPC::MessageWithReply<Tuple5<type1_in, type2_in, type3_in, type4_in , type5_in>, \ 1278 public IPC::MessageWithReply<Tuple5<type1_in, type2_in, type3_in, type4_in , type5_in>, \
1215 Tuple3<type1_out&, type2_out&, type3_out&> > { \ 1279 Tuple3<type1_out&, type2_out&, type3_out&> > { \
1216 public: \ 1280 public: \
1217 enum { ID = msg_class##__ID }; \ 1281 enum { ID = msg_class##__ID }; \
1218 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const type3_in& arg3, const type4_in& arg4, const type4_in& arg5, type1_out* arg6, typ e2_out* arg7, type3_out* arg8) \ 1282 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const t ype3_in& arg3, const type4_in& arg4, const type4_in& arg5, type1_out* arg6, type 2_out* arg7, type3_out* arg8); \
1219 : IPC::MessageWithReply<Tuple5<type1_in, type2_in, type3_in, type4_in, typ e5_in>, \ 1283 ~msg_class(); \
1220 Tuple3<type1_out&, type2_out&, type3_out&> >(routing_id, ID, \ 1284 static void Log(const Message* msg, std::wstring* l); \
1221 MakeRefTuple(arg1, arg2, arg3, arg4, arg5), MakeRefTuple(*arg6, *arg7, *arg8)) {} \
1222 }; 1285 };
1223 1286
1224 #endif // #if defined() 1287 #endif // #if defined()
OLDNEW
« no previous file with comments | « ipc/ipc_message_impl_macros.h ('k') | ipc/ipc_message_utils.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698