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

Side by Side Diff: ipc/ipc_message_macros.h

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