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

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

Issue 112042: Prevent an extra copy of data types that get passed into IPC messages when... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/common/ipc_fuzzing_tests.cc ('k') | chrome/common/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 571 matching lines...) Expand 10 before | Expand all | Expand 10 after
582 class msg_class : public IPC::Message { \ 582 class msg_class : public IPC::Message { \
583 public: \ 583 public: \
584 enum { ID = msg_class##__ID }; \ 584 enum { ID = msg_class##__ID }; \
585 msg_class() \ 585 msg_class() \
586 : IPC::Message(MSG_ROUTING_CONTROL, \ 586 : IPC::Message(MSG_ROUTING_CONTROL, \
587 ID, \ 587 ID, \
588 PRIORITY_NORMAL) {} \ 588 PRIORITY_NORMAL) {} \
589 }; 589 };
590 590
591 #define IPC_MESSAGE_CONTROL1(msg_class, type1) \ 591 #define IPC_MESSAGE_CONTROL1(msg_class, type1) \
592 class msg_class : public IPC::MessageWithTuple<type1> { \ 592 class msg_class : public IPC::MessageWithTuple< Tuple1<type1> > { \
593 public: \ 593 public: \
594 enum { ID = msg_class##__ID }; \ 594 enum { ID = msg_class##__ID }; \
595 msg_class(const type1& arg1) \ 595 msg_class(const type1& arg1) \
596 : IPC::MessageWithTuple<type1>(MSG_ROUTING_CONTROL, \ 596 : IPC::MessageWithTuple< Tuple1<type1> >(MSG_ROUTING_CONTROL, \
597 ID, \ 597 ID, \
598 arg1) {} \ 598 MakeRefTuple(arg1)) {} \
599 }; 599 };
600 600
601 #define IPC_MESSAGE_CONTROL2(msg_class, type1, type2) \ 601 #define IPC_MESSAGE_CONTROL2(msg_class, type1, type2) \
602 class msg_class : public IPC::MessageWithTuple< Tuple2<type1, type2> > { \ 602 class msg_class : public IPC::MessageWithTuple< Tuple2<type1, type2> > { \
603 public: \ 603 public: \
604 enum { ID = msg_class##__ID }; \ 604 enum { ID = msg_class##__ID }; \
605 msg_class(const type1& arg1, const type2& arg2) \ 605 msg_class(const type1& arg1, const type2& arg2) \
606 : IPC::MessageWithTuple< Tuple2<type1, type2> >( \ 606 : IPC::MessageWithTuple< Tuple2<type1, type2> >( \
607 MSG_ROUTING_CONTROL, \ 607 MSG_ROUTING_CONTROL, \
608 ID, \ 608 ID, \
609 MakeTuple(arg1, arg2)) {} \ 609 MakeRefTuple(arg1, arg2)) {} \
610 }; 610 };
611 611
612 #define IPC_MESSAGE_CONTROL3(msg_class, type1, type2, type3) \ 612 #define IPC_MESSAGE_CONTROL3(msg_class, type1, type2, type3) \
613 class msg_class : \ 613 class msg_class : \
614 public IPC::MessageWithTuple< Tuple3<type1, type2, type3> > { \ 614 public IPC::MessageWithTuple< Tuple3<type1, type2, type3> > { \
615 public: \ 615 public: \
616 enum { ID = msg_class##__ID }; \ 616 enum { ID = msg_class##__ID }; \
617 msg_class(const type1& arg1, const type2& arg2, const type3& arg3) \ 617 msg_class(const type1& arg1, const type2& arg2, const type3& arg3) \
618 : IPC::MessageWithTuple< Tuple3<type1, type2, type3> >( \ 618 : IPC::MessageWithTuple< Tuple3<type1, type2, type3> >( \
619 MSG_ROUTING_CONTROL, \ 619 MSG_ROUTING_CONTROL, \
620 ID, \ 620 ID, \
621 MakeTuple(arg1, arg2, arg3)) {} \ 621 MakeRefTuple(arg1, arg2, arg3)) {} \
622 }; 622 };
623 623
624 #define IPC_MESSAGE_CONTROL4(msg_class, type1, type2, type3, type4) \ 624 #define IPC_MESSAGE_CONTROL4(msg_class, type1, type2, type3, type4) \
625 class msg_class : \ 625 class msg_class : \
626 public IPC::MessageWithTuple< Tuple4<type1, type2, type3, type4> > { \ 626 public IPC::MessageWithTuple< Tuple4<type1, type2, type3, type4> > { \
627 public: \ 627 public: \
628 enum { ID = msg_class##__ID }; \ 628 enum { ID = msg_class##__ID }; \
629 msg_class(const type1& arg1, const type2& arg2, const type3& arg3, \ 629 msg_class(const type1& arg1, const type2& arg2, const type3& arg3, \
630 const type4& arg4) \ 630 const type4& arg4) \
631 : IPC::MessageWithTuple< Tuple4<type1, type2, type3, type4> >( \ 631 : IPC::MessageWithTuple< Tuple4<type1, type2, type3, type4> >( \
632 MSG_ROUTING_CONTROL, \ 632 MSG_ROUTING_CONTROL, \
633 ID, \ 633 ID, \
634 MakeTuple(arg1, arg2, arg3, arg4)) {} \ 634 MakeRefTuple(arg1, arg2, arg3, arg4)) {} \
635 }; 635 };
636 636
637 #define IPC_MESSAGE_CONTROL5(msg_class, type1, type2, type3, type4, type5) \ 637 #define IPC_MESSAGE_CONTROL5(msg_class, type1, type2, type3, type4, type5) \
638 class msg_class : \ 638 class msg_class : \
639 public IPC::MessageWithTuple< Tuple5<type1, type2, type3, type4, type5> > { \ 639 public IPC::MessageWithTuple< Tuple5<type1, type2, type3, type4, type5> > { \
640 public: \ 640 public: \
641 enum { ID = msg_class##__ID }; \ 641 enum { ID = msg_class##__ID }; \
642 msg_class(const type1& arg1, const type2& arg2, \ 642 msg_class(const type1& arg1, const type2& arg2, \
643 const type3& arg3, const type4& arg4, const type5& arg5) \ 643 const type3& arg3, const type4& arg4, const type5& arg5) \
644 : IPC::MessageWithTuple< Tuple5<type1, type2, type3, type4, type5> >( \ 644 : IPC::MessageWithTuple< Tuple5<type1, type2, type3, type4, type5> >( \
645 MSG_ROUTING_CONTROL, \ 645 MSG_ROUTING_CONTROL, \
646 ID, \ 646 ID, \
647 MakeTuple(arg1, arg2, arg3, arg4, arg5)) {} \ 647 MakeRefTuple(arg1, arg2, arg3, arg4, arg5)) {} \
648 }; 648 };
649 649
650 #define IPC_MESSAGE_ROUTED0(msg_class) \ 650 #define IPC_MESSAGE_ROUTED0(msg_class) \
651 class msg_class : public IPC::Message { \ 651 class msg_class : public IPC::Message { \
652 public: \ 652 public: \
653 enum { ID = msg_class##__ID }; \ 653 enum { ID = msg_class##__ID }; \
654 msg_class(int32 routing_id) \ 654 msg_class(int32 routing_id) \
655 : IPC::Message(routing_id, ID, PRIORITY_NORMAL) {} \ 655 : IPC::Message(routing_id, ID, PRIORITY_NORMAL) {} \
656 }; 656 };
657 657
658 #define IPC_MESSAGE_ROUTED1(msg_class, type1) \ 658 #define IPC_MESSAGE_ROUTED1(msg_class, type1) \
659 class msg_class : public IPC::MessageWithTuple<type1> { \ 659 class msg_class : public IPC::MessageWithTuple< Tuple1<type1> > { \
660 public: \ 660 public: \
661 enum { ID = msg_class##__ID }; \ 661 enum { ID = msg_class##__ID }; \
662 msg_class(int32 routing_id, const type1& arg1) \ 662 msg_class(int32 routing_id, const type1& arg1) \
663 : IPC::MessageWithTuple<type1>(routing_id, ID, arg1) {} \ 663 : IPC::MessageWithTuple< Tuple1<type1> >(routing_id, ID, \
664 MakeRefTuple(arg1)) {} \
664 }; 665 };
665 666
666 #define IPC_MESSAGE_ROUTED2(msg_class, type1, type2) \ 667 #define IPC_MESSAGE_ROUTED2(msg_class, type1, type2) \
667 class msg_class : public IPC::MessageWithTuple< Tuple2<type1, type2> > { \ 668 class msg_class : public IPC::MessageWithTuple< Tuple2<type1, type2> > { \
668 public: \ 669 public: \
669 enum { ID = msg_class##__ID }; \ 670 enum { ID = msg_class##__ID }; \
670 msg_class(int32 routing_id, const type1& arg1, const type2& arg2) \ 671 msg_class(int32 routing_id, const type1& arg1, const type2& arg2) \
671 : IPC::MessageWithTuple< Tuple2<type1, type2> >( \ 672 : IPC::MessageWithTuple< Tuple2<type1, type2> >( \
672 routing_id, ID, MakeTuple(arg1, arg2)) {} \ 673 routing_id, ID, MakeRefTuple(arg1, arg2)) {} \
673 }; 674 };
674 675
675 #define IPC_MESSAGE_ROUTED3(msg_class, type1, type2, type3) \ 676 #define IPC_MESSAGE_ROUTED3(msg_class, type1, type2, type3) \
676 class msg_class : \ 677 class msg_class : \
677 public IPC::MessageWithTuple< Tuple3<type1, type2, type3> > { \ 678 public IPC::MessageWithTuple< Tuple3<type1, type2, type3> > { \
678 public: \ 679 public: \
679 enum { ID = msg_class##__ID }; \ 680 enum { ID = msg_class##__ID }; \
680 msg_class(int32 routing_id, const type1& arg1, const type2& arg2, \ 681 msg_class(int32 routing_id, const type1& arg1, const type2& arg2, \
681 const type3& arg3) \ 682 const type3& arg3) \
682 : IPC::MessageWithTuple< Tuple3<type1, type2, type3> >( \ 683 : IPC::MessageWithTuple< Tuple3<type1, type2, type3> >( \
683 routing_id, ID, MakeTuple(arg1, arg2, arg3)) {} \ 684 routing_id, ID, MakeRefTuple(arg1, arg2, arg3)) {} \
684 }; 685 };
685 686
686 #define IPC_MESSAGE_ROUTED4(msg_class, type1, type2, type3, type4) \ 687 #define IPC_MESSAGE_ROUTED4(msg_class, type1, type2, type3, type4) \
687 class msg_class : \ 688 class msg_class : \
688 public IPC::MessageWithTuple< Tuple4<type1, type2, type3, type4> > { \ 689 public IPC::MessageWithTuple< Tuple4<type1, type2, type3, type4> > { \
689 public: \ 690 public: \
690 enum { ID = msg_class##__ID }; \ 691 enum { ID = msg_class##__ID }; \
691 msg_class(int32 routing_id, const type1& arg1, const type2& arg2, \ 692 msg_class(int32 routing_id, const type1& arg1, const type2& arg2, \
692 const type3& arg3, const type4& arg4) \ 693 const type3& arg3, const type4& arg4) \
693 : IPC::MessageWithTuple< Tuple4<type1, type2, type3, type4> >( \ 694 : IPC::MessageWithTuple< Tuple4<type1, type2, type3, type4> >( \
694 routing_id, ID, MakeTuple(arg1, arg2, arg3, arg4)) {} \ 695 routing_id, ID, MakeRefTuple(arg1, arg2, arg3, arg4)) {} \
695 }; 696 };
696 697
697 #define IPC_MESSAGE_ROUTED5(msg_class, type1, type2, type3, type4, type5) \ 698 #define IPC_MESSAGE_ROUTED5(msg_class, type1, type2, type3, type4, type5) \
698 class msg_class : \ 699 class msg_class : \
699 public IPC::MessageWithTuple< Tuple5<type1, type2, type3, type4, type5> > { \ 700 public IPC::MessageWithTuple< Tuple5<type1, type2, type3, type4, type5> > { \
700 public: \ 701 public: \
701 enum { ID = msg_class##__ID }; \ 702 enum { ID = msg_class##__ID }; \
702 msg_class(int32 routing_id, const type1& arg1, const type2& arg2, \ 703 msg_class(int32 routing_id, const type1& arg1, const type2& arg2, \
703 const type3& arg3, const type4& arg4, const type5& arg5) \ 704 const type3& arg3, const type4& arg4, const type5& arg5) \
704 : IPC::MessageWithTuple< Tuple5<type1, type2, type3, type4, type5> >( \ 705 : IPC::MessageWithTuple< Tuple5<type1, type2, type3, type4, type5> >( \
705 routing_id, ID, MakeTuple(arg1, arg2, arg3, arg4, arg5)) {} \ 706 routing_id, ID, MakeRefTuple(arg1, arg2, arg3, arg4, arg5)) {} \
706 }; 707 };
707 708
708 #define IPC_MESSAGE_ROUTED6(msg_class, type1, type2, type3, type4, type5, \ 709 #define IPC_MESSAGE_ROUTED6(msg_class, type1, type2, type3, type4, type5, \
709 type6) \ 710 type6) \
710 class msg_class : \ 711 class msg_class : \
711 public IPC::MessageWithTuple< Tuple6<type1, type2, type3, type4, type5, \ 712 public IPC::MessageWithTuple< Tuple6<type1, type2, type3, type4, type5, \
712 type6> > { \ 713 type6> > { \
713 public: \ 714 public: \
714 enum { ID = msg_class##__ID }; \ 715 enum { ID = msg_class##__ID }; \
715 msg_class(int32 routing_id, const type1& arg1, const type2& arg2, \ 716 msg_class(int32 routing_id, const type1& arg1, const type2& arg2, \
716 const type3& arg3, const type4& arg4, const type5& arg5, \ 717 const type3& arg3, const type4& arg4, const type5& arg5, \
717 const type6& arg6) \ 718 const type6& arg6) \
718 : IPC::MessageWithTuple< Tuple6<type1, type2, type3, type4, type5, \ 719 : IPC::MessageWithTuple< Tuple6<type1, type2, type3, type4, type5, \
719 type6> >( \ 720 type6> >( \
720 routing_id, ID, MakeTuple(arg1, arg2, arg3, arg4, arg5, arg6)) {} \ 721 routing_id, ID, MakeRefTuple(arg1, arg2, arg3, arg4, arg5, arg6)) {} \
721 }; 722 };
722 723
723 #define IPC_SYNC_MESSAGE_CONTROL0_0(msg_class) \ 724 #define IPC_SYNC_MESSAGE_CONTROL0_0(msg_class) \
724 class msg_class : public IPC::MessageWithReply<Tuple0, Tuple0 > { \ 725 class msg_class : public IPC::MessageWithReply<Tuple0, Tuple0 > { \
725 public: \ 726 public: \
726 enum { ID = msg_class##__ID }; \ 727 enum { ID = msg_class##__ID }; \
727 msg_class() \ 728 msg_class() \
728 : IPC::MessageWithReply<Tuple0, Tuple0 >( \ 729 : IPC::MessageWithReply<Tuple0, Tuple0 >( \
729 MSG_ROUTING_CONTROL, ID, \ 730 MSG_ROUTING_CONTROL, ID, \
730 MakeTuple(), MakeTuple()) {} \ 731 MakeTuple(), MakeTuple()) {} \
(...skipping 30 matching lines...) Expand all
761 enum { ID = msg_class##__ID }; \ 762 enum { ID = msg_class##__ID }; \
762 msg_class(type1_out* arg1, type2_out* arg2, type3_out* arg3) \ 763 msg_class(type1_out* arg1, type2_out* arg2, type3_out* arg3) \
763 : IPC::MessageWithReply<Tuple0, \ 764 : IPC::MessageWithReply<Tuple0, \
764 Tuple3<type1_out&, type2_out&, type3_out&> >(MSG_ROUTING_CONTROL, \ 765 Tuple3<type1_out&, type2_out&, type3_out&> >(MSG_ROUTING_CONTROL, \
765 ID, \ 766 ID, \
766 MakeTuple(), MakeRefTuple(*arg1, *arg2, *arg3)) {} \ 767 MakeTuple(), MakeRefTuple(*arg1, *arg2, *arg3)) {} \
767 }; 768 };
768 769
769 #define IPC_SYNC_MESSAGE_CONTROL1_0(msg_class, type1_in) \ 770 #define IPC_SYNC_MESSAGE_CONTROL1_0(msg_class, type1_in) \
770 class msg_class : \ 771 class msg_class : \
771 public IPC::MessageWithReply<type1_in, Tuple0 > { \ 772 public IPC::MessageWithReply<Tuple1<type1_in>, Tuple0 > { \
772 public: \ 773 public: \
773 enum { ID = msg_class##__ID }; \ 774 enum { ID = msg_class##__ID }; \
774 msg_class(const type1_in& arg1) \ 775 msg_class(const type1_in& arg1) \
775 : IPC::MessageWithReply<type1_in, Tuple0 >( \ 776 : IPC::MessageWithReply<Tuple1<type1_in>, Tuple0 >( \
776 MSG_ROUTING_CONTROL, ID, \ 777 MSG_ROUTING_CONTROL, ID, \
777 arg1, MakeTuple()) {} \ 778 MakeRefTuple(arg1), MakeTuple()) {} \
778 }; 779 };
779 780
780 #define IPC_SYNC_MESSAGE_CONTROL1_1(msg_class, type1_in, type1_out) \ 781 #define IPC_SYNC_MESSAGE_CONTROL1_1(msg_class, type1_in, type1_out) \
781 class msg_class : \ 782 class msg_class : \
782 public IPC::MessageWithReply<type1_in, Tuple1<type1_out&> > { \ 783 public IPC::MessageWithReply<Tuple1<type1_in>, Tuple1<type1_out&> > { \
783 public: \ 784 public: \
784 enum { ID = msg_class##__ID }; \ 785 enum { ID = msg_class##__ID }; \
785 msg_class(const type1_in& arg1, type1_out* arg2) \ 786 msg_class(const type1_in& arg1, type1_out* arg2) \
786 : IPC::MessageWithReply<type1_in, Tuple1<type1_out&> >( \ 787 : IPC::MessageWithReply<Tuple1<type1_in>, Tuple1<type1_out&> >( \
787 MSG_ROUTING_CONTROL, ID, \ 788 MSG_ROUTING_CONTROL, ID, \
788 arg1, MakeRefTuple(*arg2)) {} \ 789 MakeRefTuple(arg1), MakeRefTuple(*arg2)) {} \
789 }; 790 };
790 791
791 #define IPC_SYNC_MESSAGE_CONTROL1_2(msg_class, type1_in, type1_out, type2_out) \ 792 #define IPC_SYNC_MESSAGE_CONTROL1_2(msg_class, type1_in, type1_out, type2_out) \
792 class msg_class : \ 793 class msg_class : \
793 public IPC::MessageWithReply<type1_in, Tuple2<type1_out&, type2_out&> > { \ 794 public IPC::MessageWithReply<Tuple1<type1_in>, Tuple2<type1_out&, type2_ou t&> > { \
794 public: \ 795 public: \
795 enum { ID = msg_class##__ID }; \ 796 enum { ID = msg_class##__ID }; \
796 msg_class(const type1_in& arg1, type1_out* arg2, type2_out* arg3) \ 797 msg_class(const type1_in& arg1, type1_out* arg2, type2_out* arg3) \
797 : IPC::MessageWithReply<type1_in, Tuple2<type1_out&, type2_out&> >( \ 798 : IPC::MessageWithReply<Tuple1<type1_in>, Tuple2<type1_out&, type2_out&> >( \
798 MSG_ROUTING_CONTROL, ID, \ 799 MSG_ROUTING_CONTROL, ID, \
799 arg1, MakeRefTuple(*arg2, *arg3)) {} \ 800 MakeRefTuple(arg1), MakeRefTuple(*arg2, *arg3)) {} \
800 }; 801 };
801 802
802 #define IPC_SYNC_MESSAGE_CONTROL1_3(msg_class, type1_in, type1_out, type2_out, t ype3_out) \ 803 #define IPC_SYNC_MESSAGE_CONTROL1_3(msg_class, type1_in, type1_out, type2_out, t ype3_out) \
803 class msg_class : \ 804 class msg_class : \
804 public IPC::MessageWithReply<type1_in, \ 805 public IPC::MessageWithReply<Tuple1<type1_in>, \
805 Tuple3<type1_out&, type2_out&, type3_out&> >{ \ 806 Tuple3<type1_out&, type2_out&, type3_out&> >{ \
806 public: \ 807 public: \
807 enum { ID = msg_class##__ID }; \ 808 enum { ID = msg_class##__ID }; \
808 msg_class(const type1_in& arg1, type1_out* arg2, type2_out* arg3, type3_out* arg4) \ 809 msg_class(const type1_in& arg1, type1_out* arg2, type2_out* arg3, type3_out* arg4) \
809 : IPC::MessageWithReply<type1_in, \ 810 : IPC::MessageWithReply<Tuple1<type1_in>, \
810 Tuple3<type1_out&, type2_out&, type3_out&> >(MSG_ROUTING_CONTROL, \ 811 Tuple3<type1_out&, type2_out&, type3_out&> >(MSG_ROUTING_CONTROL, \
811 ID, \ 812 ID, \
812 arg1, MakeRefTuple(*arg2, *arg3, *arg4)) {} \ 813 MakeRefTuple(arg1), MakeRefTuple(*arg2, *arg3, *arg4)) {} \
813 }; 814 };
814 815
815 #define IPC_SYNC_MESSAGE_CONTROL2_0(msg_class, type1_in, type2_in) \ 816 #define IPC_SYNC_MESSAGE_CONTROL2_0(msg_class, type1_in, type2_in) \
816 class msg_class : \ 817 class msg_class : \
817 public IPC::MessageWithReply<Tuple2<type1_in, type2_in>, Tuple0 > { \ 818 public IPC::MessageWithReply<Tuple2<type1_in, type2_in>, Tuple0 > { \
818 public: \ 819 public: \
819 enum { ID = msg_class##__ID }; \ 820 enum { ID = msg_class##__ID }; \
820 msg_class(const type1_in& arg1, const type2_in& arg2) \ 821 msg_class(const type1_in& arg1, const type2_in& arg2) \
821 : IPC::MessageWithReply<Tuple2<type1_in, type2_in>, Tuple0 >( \ 822 : IPC::MessageWithReply<Tuple2<type1_in, type2_in>, Tuple0 >( \
822 MSG_ROUTING_CONTROL, ID, \ 823 MSG_ROUTING_CONTROL, ID, \
823 MakeTuple(arg1, arg2), MakeTuple()) {} \ 824 MakeRefTuple(arg1, arg2), MakeTuple()) {} \
824 }; 825 };
825 826
826 #define IPC_SYNC_MESSAGE_CONTROL2_1(msg_class, type1_in, type2_in, type1_out) \ 827 #define IPC_SYNC_MESSAGE_CONTROL2_1(msg_class, type1_in, type2_in, type1_out) \
827 class msg_class : \ 828 class msg_class : \
828 public IPC::MessageWithReply<Tuple2<type1_in, type2_in>, Tuple1<type1_out& > > { \ 829 public IPC::MessageWithReply<Tuple2<type1_in, type2_in>, Tuple1<type1_out& > > { \
829 public: \ 830 public: \
830 enum { ID = msg_class##__ID }; \ 831 enum { ID = msg_class##__ID }; \
831 msg_class(const type1_in& arg1, const type2_in& arg2, type1_out* arg3) \ 832 msg_class(const type1_in& arg1, const type2_in& arg2, type1_out* arg3) \
832 : IPC::MessageWithReply<Tuple2<type1_in, type2_in>, Tuple1<type1_out&> > ( \ 833 : IPC::MessageWithReply<Tuple2<type1_in, type2_in>, Tuple1<type1_out&> > ( \
833 MSG_ROUTING_CONTROL, ID, \ 834 MSG_ROUTING_CONTROL, ID, \
834 MakeTuple(arg1, arg2), MakeRefTuple(*arg3)) {} \ 835 MakeRefTuple(arg1, arg2), MakeRefTuple(*arg3)) {} \
835 }; 836 };
836 837
837 #define IPC_SYNC_MESSAGE_CONTROL2_2(msg_class, type1_in, type2_in, type1_out, ty pe2_out) \ 838 #define IPC_SYNC_MESSAGE_CONTROL2_2(msg_class, type1_in, type2_in, type1_out, ty pe2_out) \
838 class msg_class : \ 839 class msg_class : \
839 public IPC::MessageWithReply<Tuple2<type1_in, type2_in>, \ 840 public IPC::MessageWithReply<Tuple2<type1_in, type2_in>, \
840 Tuple2<type1_out&, type2_out&> > { \ 841 Tuple2<type1_out&, type2_out&> > { \
841 public: \ 842 public: \
842 enum { ID = msg_class##__ID }; \ 843 enum { ID = msg_class##__ID }; \
843 msg_class(const type1_in& arg1, const type2_in& arg2, type1_out* arg3, type2 _out* arg4) \ 844 msg_class(const type1_in& arg1, const type2_in& arg2, type1_out* arg3, type2 _out* arg4) \
844 : IPC::MessageWithReply<Tuple2<type1_in, type2_in>, \ 845 : IPC::MessageWithReply<Tuple2<type1_in, type2_in>, \
845 Tuple2<type1_out&, type2_out&> >(MSG_ROUTING_CONTROL, ID, \ 846 Tuple2<type1_out&, type2_out&> >(MSG_ROUTING_CONTROL, ID, \
846 MakeTuple(arg1, arg2), MakeRefTuple(*arg3, *arg4)) {} \ 847 MakeRefTuple(arg1, arg2), MakeRefTuple(*arg3, *arg4)) {} \
847 }; 848 };
848 849
849 #define IPC_SYNC_MESSAGE_CONTROL2_3(msg_class, type1_in, type2_in, type1_out, ty pe2_out, type3_out) \ 850 #define IPC_SYNC_MESSAGE_CONTROL2_3(msg_class, type1_in, type2_in, type1_out, ty pe2_out, type3_out) \
850 class msg_class : \ 851 class msg_class : \
851 public IPC::MessageWithReply<Tuple2<type1_in, type2_in>, \ 852 public IPC::MessageWithReply<Tuple2<type1_in, type2_in>, \
852 Tuple3<type1_out&, type2_out&, type3_out&> > { \ 853 Tuple3<type1_out&, type2_out&, type3_out&> > { \
853 public: \ 854 public: \
854 enum { ID = msg_class##__ID }; \ 855 enum { ID = msg_class##__ID }; \
855 msg_class(const type1_in& arg1, const type2_in& arg2, type1_out* arg3, type2 _out* arg4, type3_out* arg5) \ 856 msg_class(const type1_in& arg1, const type2_in& arg2, type1_out* arg3, type2 _out* arg4, type3_out* arg5) \
856 : IPC::MessageWithReply<Tuple2<type1_in, type2_in>, \ 857 : IPC::MessageWithReply<Tuple2<type1_in, type2_in>, \
857 Tuple3<type1_out&, type2_out&, type3_out&> >(MSG_ROUTING_CONTROL, \ 858 Tuple3<type1_out&, type2_out&, type3_out&> >(MSG_ROUTING_CONTROL, \
858 ID, \ 859 ID, \
859 MakeTuple(arg1, arg2), MakeRefTuple(*arg3, *arg4, *arg5)) {} \ 860 MakeRefTuple(arg1, arg2), MakeRefTuple(*arg3, *arg4, *arg5)) {} \
860 }; 861 };
861 862
862 #define IPC_SYNC_MESSAGE_CONTROL3_1(msg_class, type1_in, type2_in, type3_in, typ e1_out) \ 863 #define IPC_SYNC_MESSAGE_CONTROL3_1(msg_class, type1_in, type2_in, type3_in, typ e1_out) \
863 class msg_class : \ 864 class msg_class : \
864 public IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ 865 public IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \
865 Tuple1<type1_out&> > { \ 866 Tuple1<type1_out&> > { \
866 public: \ 867 public: \
867 enum { ID = msg_class##__ID }; \ 868 enum { ID = msg_class##__ID }; \
868 msg_class(const type1_in& arg1, const type2_in& arg2, const type3_in& arg3, type1_out* arg4) \ 869 msg_class(const type1_in& arg1, const type2_in& arg2, const type3_in& arg3, type1_out* arg4) \
869 : IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ 870 : IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \
870 Tuple1<type1_out&> >(MSG_ROUTING_CONTROL, ID, \ 871 Tuple1<type1_out&> >(MSG_ROUTING_CONTROL, ID, \
871 MakeTuple(arg1, arg2, arg3), MakeRefTuple(*arg4)) {} \ 872 MakeRefTuple(arg1, arg2, arg3), MakeRefTuple(*arg4)) {} \
872 }; 873 };
873 874
874 #define IPC_SYNC_MESSAGE_CONTROL3_2(msg_class, type1_in, type2_in, type3_in, typ e1_out, type2_out) \ 875 #define IPC_SYNC_MESSAGE_CONTROL3_2(msg_class, type1_in, type2_in, type3_in, typ e1_out, type2_out) \
875 class msg_class : \ 876 class msg_class : \
876 public IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ 877 public IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \
877 Tuple2<type1_out&, type2_out&> > { \ 878 Tuple2<type1_out&, type2_out&> > { \
878 public: \ 879 public: \
879 enum { ID = msg_class##__ID }; \ 880 enum { ID = msg_class##__ID }; \
880 msg_class(const type1_in& arg1, const type2_in& arg2, const type3_in& arg3, type1_out* arg4, type2_out* arg5) \ 881 msg_class(const type1_in& arg1, const type2_in& arg2, const type3_in& arg3, type1_out* arg4, type2_out* arg5) \
881 : IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ 882 : IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \
882 Tuple2<type1_out&, type2_out&> >(MSG_ROUTING_CONTROL, ID, \ 883 Tuple2<type1_out&, type2_out&> >(MSG_ROUTING_CONTROL, ID, \
883 MakeTuple(arg1, arg2, arg3), MakeRefTuple(*arg4, *arg5)) {} \ 884 MakeRefTuple(arg1, arg2, arg3), MakeRefTuple(*arg4, *arg5)) {} \
884 }; 885 };
885 886
886 #define IPC_SYNC_MESSAGE_CONTROL3_3(msg_class, type1_in, type2_in, type3_in, typ e1_out, type2_out, type3_out) \ 887 #define IPC_SYNC_MESSAGE_CONTROL3_3(msg_class, type1_in, type2_in, type3_in, typ e1_out, type2_out, type3_out) \
887 class msg_class : \ 888 class msg_class : \
888 public IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ 889 public IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \
889 Tuple3<type1_out&, type2_out&, type3_out&> > { \ 890 Tuple3<type1_out&, type2_out&, type3_out&> > { \
890 public: \ 891 public: \
891 enum { ID = msg_class##__ID }; \ 892 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, type3_out* arg6) \ 893 msg_class(const type1_in& arg1, const type2_in& arg2, const type3_in& arg3, type1_out* arg4, type2_out* arg5, type3_out* arg6) \
893 : IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ 894 : IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \
894 Tuple3<type1_out&, type2_out&, type3_out&> >(MSG_ROUTING_CONTROL, \ 895 Tuple3<type1_out&, type2_out&, type3_out&> >(MSG_ROUTING_CONTROL, \
895 ID, \ 896 ID, \
896 MakeTuple(arg1, arg2, arg3), MakeRefTuple(*arg4, *arg5, *arg6)) {} \ 897 MakeRefTuple(arg1, arg2, arg3), MakeRefTuple(*arg4, *arg5, *arg6)) { } \
897 }; 898 };
898 899
899 #define IPC_SYNC_MESSAGE_CONTROL4_1(msg_class, type1_in, type2_in, type3_in, typ e4_in, type1_out) \ 900 #define IPC_SYNC_MESSAGE_CONTROL4_1(msg_class, type1_in, type2_in, type3_in, typ e4_in, type1_out) \
900 class msg_class : \ 901 class msg_class : \
901 public IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in >, \ 902 public IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in >, \
902 Tuple1<type1_out&> > { \ 903 Tuple1<type1_out&> > { \
903 public: \ 904 public: \
904 enum { ID = msg_class##__ID }; \ 905 enum { ID = msg_class##__ID }; \
905 msg_class(const type1_in& arg1, const type2_in& arg2, const type3_in& arg3, const type4_in& arg4, type1_out* arg6) \ 906 msg_class(const type1_in& arg1, const type2_in& arg2, const type3_in& arg3, const type4_in& arg4, type1_out* arg6) \
906 : IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in>, \ 907 : IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in>, \
907 Tuple1<type1_out&> >(MSG_ROUTING_CONTROL, ID, \ 908 Tuple1<type1_out&> >(MSG_ROUTING_CONTROL, ID, \
908 MakeTuple(arg1, arg2, arg3, arg4), MakeRefTuple(*arg6)) {} \ 909 MakeRefTuple(arg1, arg2, arg3, arg4), MakeRefTuple(*arg6)) {} \
909 }; 910 };
910 911
911 #define IPC_SYNC_MESSAGE_CONTROL4_2(msg_class, type1_in, type2_in, type3_in, typ e4_in, type1_out, type2_out) \ 912 #define IPC_SYNC_MESSAGE_CONTROL4_2(msg_class, type1_in, type2_in, type3_in, typ e4_in, type1_out, type2_out) \
912 class msg_class : \ 913 class msg_class : \
913 public IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in >, \ 914 public IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in >, \
914 Tuple2<type1_out&, type2_out&> > { \ 915 Tuple2<type1_out&, type2_out&> > { \
915 public: \ 916 public: \
916 enum { ID = msg_class##__ID }; \ 917 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* arg5, type2_out* arg6) \ 918 msg_class(const type1_in& arg1, const type2_in& arg2, const type3_in& arg3, const type4_in& arg4, type1_out* arg5, type2_out* arg6) \
918 : IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in>, \ 919 : IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in>, \
919 Tuple2<type1_out&, type2_out&> >(MSG_ROUTING_CONTROL, ID, \ 920 Tuple2<type1_out&, type2_out&> >(MSG_ROUTING_CONTROL, ID, \
920 MakeTuple(arg1, arg2, arg3, arg4), MakeRefTuple(*arg5, *arg6)) {} \ 921 MakeRefTuple(arg1, arg2, arg3, arg4), MakeRefTuple(*arg5, *arg6)) {} \
921 }; 922 };
922 923
923 #define IPC_SYNC_MESSAGE_ROUTED0_1(msg_class, type1_out) \ 924 #define IPC_SYNC_MESSAGE_ROUTED0_1(msg_class, type1_out) \
924 class msg_class : public IPC::MessageWithReply<Tuple0, Tuple1<type1_out&> > { \ 925 class msg_class : public IPC::MessageWithReply<Tuple0, Tuple1<type1_out&> > { \
925 public: \ 926 public: \
926 enum { ID = msg_class##__ID }; \ 927 enum { ID = msg_class##__ID }; \
927 msg_class(int routing_id, type1_out* arg1) \ 928 msg_class(int routing_id, type1_out* arg1) \
928 : IPC::MessageWithReply<Tuple0, Tuple1<type1_out&> >( \ 929 : IPC::MessageWithReply<Tuple0, Tuple1<type1_out&> >( \
929 routing_id, ID, \ 930 routing_id, ID, \
930 MakeTuple(), MakeRefTuple(*arg1)) {} \ 931 MakeTuple(), MakeRefTuple(*arg1)) {} \
(...skipping 27 matching lines...) Expand all
958 public: \ 959 public: \
959 enum { ID = msg_class##__ID }; \ 960 enum { ID = msg_class##__ID }; \
960 msg_class(int routing_id, type1_out* arg1, type2_out* arg2, type3_out* arg3) \ 961 msg_class(int routing_id, type1_out* arg1, type2_out* arg2, type3_out* arg3) \
961 : IPC::MessageWithReply<Tuple0, \ 962 : IPC::MessageWithReply<Tuple0, \
962 Tuple3<type1_out&, type2_out&, type3_out&> >(routing_id, ID, \ 963 Tuple3<type1_out&, type2_out&, type3_out&> >(routing_id, ID, \
963 MakeTuple(), MakeRefTuple(*arg1, *arg2, *arg3)) {} \ 964 MakeTuple(), MakeRefTuple(*arg1, *arg2, *arg3)) {} \
964 }; 965 };
965 966
966 #define IPC_SYNC_MESSAGE_ROUTED1_0(msg_class, type1_in) \ 967 #define IPC_SYNC_MESSAGE_ROUTED1_0(msg_class, type1_in) \
967 class msg_class : \ 968 class msg_class : \
968 public IPC::MessageWithReply<type1_in, Tuple0 > { \ 969 public IPC::MessageWithReply<Tuple1<type1_in>, Tuple0 > { \
969 public: \ 970 public: \
970 enum { ID = msg_class##__ID }; \ 971 enum { ID = msg_class##__ID }; \
971 msg_class(int routing_id, const type1_in& arg1) \ 972 msg_class(int routing_id, const type1_in& arg1) \
972 : IPC::MessageWithReply<type1_in, Tuple0 >( \ 973 : IPC::MessageWithReply<Tuple1<type1_in>, Tuple0 >( \
973 routing_id, ID, \ 974 routing_id, ID, \
974 arg1, MakeTuple()) {} \ 975 MakeRefTuple(arg1), MakeTuple()) {} \
975 }; 976 };
976 977
977 #define IPC_SYNC_MESSAGE_ROUTED1_1(msg_class, type1_in, type1_out) \ 978 #define IPC_SYNC_MESSAGE_ROUTED1_1(msg_class, type1_in, type1_out) \
978 class msg_class : \ 979 class msg_class : \
979 public IPC::MessageWithReply<type1_in, Tuple1<type1_out&> > { \ 980 public IPC::MessageWithReply<Tuple1<type1_in>, Tuple1<type1_out&> > { \
980 public: \ 981 public: \
981 enum { ID = msg_class##__ID }; \ 982 enum { ID = msg_class##__ID }; \
982 msg_class(int routing_id, const type1_in& arg1, type1_out* arg2) \ 983 msg_class(int routing_id, const type1_in& arg1, type1_out* arg2) \
983 : IPC::MessageWithReply<type1_in, Tuple1<type1_out&> >( \ 984 : IPC::MessageWithReply<Tuple1<type1_in>, Tuple1<type1_out&> >( \
984 routing_id, ID, \ 985 routing_id, ID, \
985 arg1, MakeRefTuple(*arg2)) {} \ 986 MakeRefTuple(arg1), MakeRefTuple(*arg2)) {} \
986 }; 987 };
987 988
988 #define IPC_SYNC_MESSAGE_ROUTED1_2(msg_class, type1_in, type1_out, type2_out) \ 989 #define IPC_SYNC_MESSAGE_ROUTED1_2(msg_class, type1_in, type1_out, type2_out) \
989 class msg_class : \ 990 class msg_class : \
990 public IPC::MessageWithReply<type1_in, Tuple2<type1_out&, type2_out&> > { \ 991 public IPC::MessageWithReply<Tuple1<type1_in>, Tuple2<type1_out&, type2_ou t&> > { \
991 public: \ 992 public: \
992 enum { ID = msg_class##__ID }; \ 993 enum { ID = msg_class##__ID }; \
993 msg_class(int routing_id, const type1_in& arg1, type1_out* arg2, type2_out* arg3) \ 994 msg_class(int routing_id, const type1_in& arg1, type1_out* arg2, type2_out* arg3) \
994 : IPC::MessageWithReply<type1_in, Tuple2<type1_out&, type2_out&> >( \ 995 : IPC::MessageWithReply<Tuple1<type1_in>, Tuple2<type1_out&, type2_out&> >( \
995 routing_id, ID, \ 996 routing_id, ID, \
996 arg1, MakeRefTuple(*arg2, *arg3)) {} \ 997 MakeRefTuple(arg1), MakeRefTuple(*arg2, *arg3)) {} \
997 }; 998 };
998 999
999 #define IPC_SYNC_MESSAGE_ROUTED1_3(msg_class, type1_in, type1_out, type2_out, ty pe3_out) \ 1000 #define IPC_SYNC_MESSAGE_ROUTED1_3(msg_class, type1_in, type1_out, type2_out, ty pe3_out) \
1000 class msg_class : \ 1001 class msg_class : \
1001 public IPC::MessageWithReply<type1_in, \ 1002 public IPC::MessageWithReply<Tuple1<type1_in>, \
1002 Tuple3<type1_out&, type2_out&, type3_out&> >{ \ 1003 Tuple3<type1_out&, type2_out&, type3_out&> >{ \
1003 public: \ 1004 public: \
1004 enum { ID = msg_class##__ID }; \ 1005 enum { ID = msg_class##__ID }; \
1005 msg_class(int routing_id, const type1_in& arg1, type1_out* arg2, type2_out* arg3, type3_out* arg4) \ 1006 msg_class(int routing_id, const type1_in& arg1, type1_out* arg2, type2_out* arg3, type3_out* arg4) \
1006 : IPC::MessageWithReply<type1_in, \ 1007 : IPC::MessageWithReply<Tuple1<type1_in>, \
1007 Tuple3<type1_out&, type2_out&, type3_out&> >(routing_id, ID, \ 1008 Tuple3<type1_out&, type2_out&, type3_out&> >(routing_id, ID, \
1008 arg1, MakeRefTuple(*arg2, *arg3, *arg4)) {} \ 1009 MakeRefTuple(arg1), MakeRefTuple(*arg2, *arg3, *arg4)) {} \
1009 }; 1010 };
1010 1011
1011 #define IPC_SYNC_MESSAGE_ROUTED1_4(msg_class, type1_in, type1_out, type2_out, ty pe3_out, type4_out) \ 1012 #define IPC_SYNC_MESSAGE_ROUTED1_4(msg_class, type1_in, type1_out, type2_out, ty pe3_out, type4_out) \
1012 class msg_class : \ 1013 class msg_class : \
1013 public IPC::MessageWithReply<type1_in, \ 1014 public IPC::MessageWithReply<Tuple1<type1_in>, \
1014 Tuple4<type1_out&, type2_out&, type3_out&, type4_out&> >{ \ 1015 Tuple4<type1_out&, type2_out&, type3_out&, type4_out&> >{ \
1015 public: \ 1016 public: \
1016 enum { ID = msg_class##__ID }; \ 1017 enum { ID = msg_class##__ID }; \
1017 msg_class(int routing_id, const type1_in& arg1, type1_out* arg2, type2_out* arg3, type3_out* arg4, type4_out* arg5) \ 1018 msg_class(int routing_id, const type1_in& arg1, type1_out* arg2, type2_out* arg3, type3_out* arg4, type4_out* arg5) \
1018 : IPC::MessageWithReply<type1_in, \ 1019 : IPC::MessageWithReply<Tuple1<type1_in>, \
1019 Tuple4<type1_out&, type2_out&, type3_out&, type4_out&> >(routing_id, ID, \ 1020 Tuple4<type1_out&, type2_out&, type3_out&, type4_out&> >(routing_id, ID, \
1020 arg1, MakeRefTuple(*arg2, *arg3, *arg4, *arg5)) {} \ 1021 MakeRefTuple(arg1), MakeRefTuple(*arg2, *arg3, *arg4, *arg5)) {} \
1021 }; 1022 };
1022 1023
1023 #define IPC_SYNC_MESSAGE_ROUTED2_0(msg_class, type1_in, type2_in) \ 1024 #define IPC_SYNC_MESSAGE_ROUTED2_0(msg_class, type1_in, type2_in) \
1024 class msg_class : \ 1025 class msg_class : \
1025 public IPC::MessageWithReply<Tuple2<type1_in, type2_in>, Tuple0 > { \ 1026 public IPC::MessageWithReply<Tuple2<type1_in, type2_in>, Tuple0 > { \
1026 public: \ 1027 public: \
1027 enum { ID = msg_class##__ID }; \ 1028 enum { ID = msg_class##__ID }; \
1028 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2) \ 1029 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2) \
1029 : IPC::MessageWithReply<Tuple2<type1_in, type2_in>, Tuple0 >( \ 1030 : IPC::MessageWithReply<Tuple2<type1_in, type2_in>, Tuple0 >( \
1030 routing_id, ID, \ 1031 routing_id, ID, \
1031 MakeTuple(arg1, arg2), MakeTuple()) {} \ 1032 MakeRefTuple(arg1, arg2), MakeTuple()) {} \
1032 }; 1033 };
1033 1034
1034 #define IPC_SYNC_MESSAGE_ROUTED2_1(msg_class, type1_in, type2_in, type1_out) \ 1035 #define IPC_SYNC_MESSAGE_ROUTED2_1(msg_class, type1_in, type2_in, type1_out) \
1035 class msg_class : \ 1036 class msg_class : \
1036 public IPC::MessageWithReply<Tuple2<type1_in, type2_in>, Tuple1<type1_out& > > { \ 1037 public IPC::MessageWithReply<Tuple2<type1_in, type2_in>, Tuple1<type1_out& > > { \
1037 public: \ 1038 public: \
1038 enum { ID = msg_class##__ID }; \ 1039 enum { ID = msg_class##__ID }; \
1039 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, type1_ out* arg3) \ 1040 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, type1_ out* arg3) \
1040 : IPC::MessageWithReply<Tuple2<type1_in, type2_in>, Tuple1<type1_out&> > ( \ 1041 : IPC::MessageWithReply<Tuple2<type1_in, type2_in>, Tuple1<type1_out&> > ( \
1041 routing_id, ID, \ 1042 routing_id, ID, \
1042 MakeTuple(arg1, arg2), MakeRefTuple(*arg3)) {} \ 1043 MakeRefTuple(arg1, arg2), MakeRefTuple(*arg3)) {} \
1043 }; 1044 };
1044 1045
1045 #define IPC_SYNC_MESSAGE_ROUTED2_2(msg_class, type1_in, type2_in, type1_out, typ e2_out) \ 1046 #define IPC_SYNC_MESSAGE_ROUTED2_2(msg_class, type1_in, type2_in, type1_out, typ e2_out) \
1046 class msg_class : \ 1047 class msg_class : \
1047 public IPC::MessageWithReply<Tuple2<type1_in, type2_in>, \ 1048 public IPC::MessageWithReply<Tuple2<type1_in, type2_in>, \
1048 Tuple2<type1_out&, type2_out&> > { \ 1049 Tuple2<type1_out&, type2_out&> > { \
1049 public: \ 1050 public: \
1050 enum { ID = msg_class##__ID }; \ 1051 enum { ID = msg_class##__ID }; \
1051 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, type1_ out* arg3, type2_out* arg4) \ 1052 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, type1_ out* arg3, type2_out* arg4) \
1052 : IPC::MessageWithReply<Tuple2<type1_in, type2_in>, \ 1053 : IPC::MessageWithReply<Tuple2<type1_in, type2_in>, \
1053 Tuple2<type1_out&, type2_out&> >(routing_id, ID, \ 1054 Tuple2<type1_out&, type2_out&> >(routing_id, ID, \
1054 MakeTuple(arg1, arg2), MakeRefTuple(*arg3, *arg4)) {} \ 1055 MakeRefTuple(arg1, arg2), MakeRefTuple(*arg3, *arg4)) {} \
1055 }; 1056 };
1056 1057
1057 #define IPC_SYNC_MESSAGE_ROUTED2_3(msg_class, type1_in, type2_in, type1_out, typ e2_out, type3_out) \ 1058 #define IPC_SYNC_MESSAGE_ROUTED2_3(msg_class, type1_in, type2_in, type1_out, typ e2_out, type3_out) \
1058 class msg_class : \ 1059 class msg_class : \
1059 public IPC::MessageWithReply<Tuple2<type1_in, type2_in>, \ 1060 public IPC::MessageWithReply<Tuple2<type1_in, type2_in>, \
1060 Tuple3<type1_out&, type2_out&, type3_out&> > { \ 1061 Tuple3<type1_out&, type2_out&, type3_out&> > { \
1061 public: \ 1062 public: \
1062 enum { ID = msg_class##__ID }; \ 1063 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, type3_out* arg5) \ 1064 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, type1_ out* arg3, type2_out* arg4, type3_out* arg5) \
1064 : IPC::MessageWithReply<Tuple2<type1_in, type2_in>, \ 1065 : IPC::MessageWithReply<Tuple2<type1_in, type2_in>, \
1065 Tuple3<type1_out&, type2_out&, type3_out&> >(routing_id, ID, \ 1066 Tuple3<type1_out&, type2_out&, type3_out&> >(routing_id, ID, \
1066 MakeTuple(arg1, arg2), MakeRefTuple(*arg3, *arg4, *arg5)) {} \ 1067 MakeRefTuple(arg1, arg2), MakeRefTuple(*arg3, *arg4, *arg5)) {} \
1067 }; 1068 };
1068 1069
1069 #define IPC_SYNC_MESSAGE_ROUTED3_0(msg_class, type1_in, type2_in, type3_in) \ 1070 #define IPC_SYNC_MESSAGE_ROUTED3_0(msg_class, type1_in, type2_in, type3_in) \
1070 class msg_class : \ 1071 class msg_class : \
1071 public IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, Tuple0 > { \ 1072 public IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, Tuple0 > { \
1072 public: \ 1073 public: \
1073 enum { ID = msg_class##__ID }; \ 1074 enum { ID = msg_class##__ID }; \
1074 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const type3_in& arg3) \ 1075 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const type3_in& arg3) \
1075 : IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, Tuple0>( \ 1076 : IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, Tuple0>( \
1076 routing_id, ID, \ 1077 routing_id, ID, \
1077 MakeTuple(arg1, arg2, arg3), MakeTuple()) {} \ 1078 MakeRefTuple(arg1, arg2, arg3), MakeTuple()) {} \
1078 }; 1079 };
1079 1080
1080 #define IPC_SYNC_MESSAGE_ROUTED3_1(msg_class, type1_in, type2_in, type3_in, type 1_out) \ 1081 #define IPC_SYNC_MESSAGE_ROUTED3_1(msg_class, type1_in, type2_in, type3_in, type 1_out) \
1081 class msg_class : \ 1082 class msg_class : \
1082 public IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ 1083 public IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \
1083 Tuple1<type1_out&> > { \ 1084 Tuple1<type1_out&> > { \
1084 public: \ 1085 public: \
1085 enum { ID = msg_class##__ID }; \ 1086 enum { ID = msg_class##__ID }; \
1086 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const type3_in& arg3, type1_out* arg4) \ 1087 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const type3_in& arg3, type1_out* arg4) \
1087 : IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ 1088 : IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \
1088 Tuple1<type1_out&> >(routing_id, ID, \ 1089 Tuple1<type1_out&> >(routing_id, ID, \
1089 MakeTuple(arg1, arg2, arg3), MakeRefTuple(*arg4)) {} \ 1090 MakeRefTuple(arg1, arg2, arg3), MakeRefTuple(*arg4)) {} \
1090 }; 1091 };
1091 1092
1092 #define IPC_SYNC_MESSAGE_ROUTED3_2(msg_class, type1_in, type2_in, type3_in, type 1_out, type2_out) \ 1093 #define IPC_SYNC_MESSAGE_ROUTED3_2(msg_class, type1_in, type2_in, type3_in, type 1_out, type2_out) \
1093 class msg_class : \ 1094 class msg_class : \
1094 public IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ 1095 public IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \
1095 Tuple2<type1_out&, type2_out&> > { \ 1096 Tuple2<type1_out&, type2_out&> > { \
1096 public: \ 1097 public: \
1097 enum { ID = msg_class##__ID }; \ 1098 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, type2_out* arg5) \ 1099 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const type3_in& arg3, type1_out* arg4, type2_out* arg5) \
1099 : IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ 1100 : IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \
1100 Tuple2<type1_out&, type2_out&> >(routing_id, ID, \ 1101 Tuple2<type1_out&, type2_out&> >(routing_id, ID, \
1101 MakeTuple(arg1, arg2, arg3), MakeRefTuple(*arg4, *arg5)) {} \ 1102 MakeRefTuple(arg1, arg2, arg3), MakeRefTuple(*arg4, *arg5)) {} \
1102 }; 1103 };
1103 1104
1104 #define IPC_SYNC_MESSAGE_ROUTED3_3(msg_class, type1_in, type2_in, type3_in, type 1_out, type2_out, type3_out) \ 1105 #define IPC_SYNC_MESSAGE_ROUTED3_3(msg_class, type1_in, type2_in, type3_in, type 1_out, type2_out, type3_out) \
1105 class msg_class : \ 1106 class msg_class : \
1106 public IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ 1107 public IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \
1107 Tuple3<type1_out&, type2_out&, type3_out&> > { \ 1108 Tuple3<type1_out&, type2_out&, type3_out&> > { \
1108 public: \ 1109 public: \
1109 enum { ID = msg_class##__ID }; \ 1110 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, type3_out* arg6) \ 1111 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) \
1111 : IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ 1112 : IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \
1112 Tuple3<type1_out&, type2_out&, type3_out&> >(routing_id, ID, \ 1113 Tuple3<type1_out&, type2_out&, type3_out&> >(routing_id, ID, \
1113 MakeTuple(arg1, arg2, arg3), MakeRefTuple(*arg4, *arg5, *arg6)) {} \ 1114 MakeRefTuple(arg1, arg2, arg3), MakeRefTuple(*arg4, *arg5, *arg6)) { } \
1114 }; 1115 };
1115 1116
1116 #define IPC_SYNC_MESSAGE_ROUTED4_0(msg_class, type1_in, type2_in, type3_in, type 4_in) \ 1117 #define IPC_SYNC_MESSAGE_ROUTED4_0(msg_class, type1_in, type2_in, type3_in, type 4_in) \
1117 class msg_class : \ 1118 class msg_class : \
1118 public IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in >, \ 1119 public IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in >, \
1119 Tuple0 > { \ 1120 Tuple0 > { \
1120 public: \ 1121 public: \
1121 enum { ID = msg_class##__ID }; \ 1122 enum { ID = msg_class##__ID }; \
1122 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const type3_in& arg3, const type4_in& arg4) \ 1123 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const type3_in& arg3, const type4_in& arg4) \
1123 : IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in>, \ 1124 : IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in>, \
1124 Tuple0 >(routing_id, ID, \ 1125 Tuple0 >(routing_id, ID, \
1125 MakeTuple(arg1, arg2, arg3, arg4), MakeTuple()) {} \ 1126 MakeRefTuple(arg1, arg2, arg3, arg4), MakeTuple()) {} \
1126 }; 1127 };
1127 1128
1128 #define IPC_SYNC_MESSAGE_ROUTED4_1(msg_class, type1_in, type2_in, type3_in, type 4_in, type1_out) \ 1129 #define IPC_SYNC_MESSAGE_ROUTED4_1(msg_class, type1_in, type2_in, type3_in, type 4_in, type1_out) \
1129 class msg_class : \ 1130 class msg_class : \
1130 public IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in >, \ 1131 public IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in >, \
1131 Tuple1<type1_out&> > { \ 1132 Tuple1<type1_out&> > { \
1132 public: \ 1133 public: \
1133 enum { ID = msg_class##__ID }; \ 1134 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, type1_out* arg6) \ 1135 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const type3_in& arg3, const type4_in& arg4, type1_out* arg6) \
1135 : IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in>, \ 1136 : IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in>, \
1136 Tuple1<type1_out&> >(routing_id, ID, \ 1137 Tuple1<type1_out&> >(routing_id, ID, \
1137 MakeTuple(arg1, arg2, arg3, arg4), MakeRefTuple(*arg6)) {} \ 1138 MakeRefTuple(arg1, arg2, arg3, arg4), MakeRefTuple(*arg6)) {} \
1138 }; 1139 };
1139 1140
1140 #define IPC_SYNC_MESSAGE_ROUTED4_2(msg_class, type1_in, type2_in, type3_in, type 4_in, type1_out, type2_out) \ 1141 #define IPC_SYNC_MESSAGE_ROUTED4_2(msg_class, type1_in, type2_in, type3_in, type 4_in, type1_out, type2_out) \
1141 class msg_class : \ 1142 class msg_class : \
1142 public IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in >, \ 1143 public IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in >, \
1143 Tuple2<type1_out&, type2_out&> > { \ 1144 Tuple2<type1_out&, type2_out&> > { \
1144 public: \ 1145 public: \
1145 enum { ID = msg_class##__ID }; \ 1146 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* arg5, type2_out* arg6) \ 1147 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) \
1147 : IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in>, \ 1148 : IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in>, \
1148 Tuple2<type1_out&, type2_out&> >(routing_id, ID, \ 1149 Tuple2<type1_out&, type2_out&> >(routing_id, ID, \
1149 MakeTuple(arg1, arg2, arg3, arg4), MakeRefTuple(*arg5, *arg6)) {} \ 1150 MakeRefTuple(arg1, arg2, arg3, arg4), MakeRefTuple(*arg5, *arg6)) {} \
1150 }; 1151 };
1151 1152
1152 #endif // #if defined() 1153 #endif // #if defined()
OLDNEW
« no previous file with comments | « chrome/common/ipc_fuzzing_tests.cc ('k') | chrome/common/ipc_message_utils.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698