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

Side by Side Diff: ipc/ipc_message_macros.h

Issue 3018045: FBTF: Allow forward declaration of classes passed to sync IPC messages. (Closed)
Patch Set: Fix linkage problems with previous patch. 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 827 matching lines...) Expand 10 before | Expand all | Expand 10 after
838 public: \ 838 public: \
839 enum { ID = msg_class##__ID }; \ 839 enum { ID = msg_class##__ID }; \
840 msg_class(int32 routing_id, const type1& arg1, const type2& arg2, \ 840 msg_class(int32 routing_id, const type1& arg1, const type2& arg2, \
841 const type3& arg3, const type4& arg4, const type5& arg5); \ 841 const type3& arg3, const type4& arg4, const type5& arg5); \
842 ~msg_class(); \ 842 ~msg_class(); \
843 static void Log(const Message* msg, std::wstring* l); \ 843 static void Log(const Message* msg, std::wstring* l); \
844 }; 844 };
845 845
846 #define IPC_SYNC_MESSAGE_CONTROL0_0(msg_class) \ 846 #define IPC_SYNC_MESSAGE_CONTROL0_0(msg_class) \
847 class msg_class : public IPC::MessageWithReply<Tuple0, Tuple0 > { \ 847 class msg_class : public IPC::MessageWithReply<Tuple0, Tuple0 > { \
848 public: \ 848 public: \
849 enum { ID = msg_class##__ID }; \ 849 enum { ID = msg_class##__ID }; \
850 msg_class() \ 850 msg_class(); \
851 : IPC::MessageWithReply<Tuple0, Tuple0 >( \ 851 ~msg_class(); \
852 MSG_ROUTING_CONTROL, ID, \ 852 static void Log(const Message* msg, std::wstring* l); \
853 MakeTuple(), MakeTuple()) {} \
854 }; 853 };
855 854
856 #define IPC_SYNC_MESSAGE_CONTROL0_1(msg_class, type1_out) \ 855 #define IPC_SYNC_MESSAGE_CONTROL0_1(msg_class, type1_out) \
857 class msg_class : public IPC::MessageWithReply<Tuple0, Tuple1<type1_out&> > { \ 856 class msg_class : public IPC::MessageWithReply<Tuple0, Tuple1<type1_out&> > { \
858 public: \ 857 public: \
859 enum { ID = msg_class##__ID }; \ 858 enum { ID = msg_class##__ID }; \
860 msg_class(type1_out* arg1) \ 859 msg_class(type1_out* arg1); \
861 : IPC::MessageWithReply<Tuple0, Tuple1<type1_out&> >( \ 860 ~msg_class(); \
862 MSG_ROUTING_CONTROL, \ 861 static void Log(const Message* msg, std::wstring* l); \
863 ID, \
864 MakeTuple(), MakeRefTuple(*arg1)) {} \
865 }; 862 };
866 863
867 #define IPC_SYNC_MESSAGE_CONTROL0_2(msg_class, type1_out, type2_out) \ 864 #define IPC_SYNC_MESSAGE_CONTROL0_2(msg_class, type1_out, type2_out) \
868 class msg_class : \ 865 class msg_class : \
869 public IPC::MessageWithReply<Tuple0, Tuple2<type1_out&, type2_out&> > { \ 866 public IPC::MessageWithReply<Tuple0, Tuple2<type1_out&, type2_out&> > { \
870 public: \ 867 public: \
871 enum { ID = msg_class##__ID }; \ 868 enum { ID = msg_class##__ID }; \
872 msg_class(type1_out* arg1, type2_out* arg2) \ 869 msg_class(type1_out* arg1, type2_out* arg2); \
873 : IPC::MessageWithReply<Tuple0, Tuple2<type1_out&, type2_out&> >( \ 870 ~msg_class(); \
874 MSG_ROUTING_CONTROL, \ 871 static void Log(const Message* msg, std::wstring* l); \
875 ID, \
876 MakeTuple(), MakeRefTuple(*arg1, *arg2)) {} \
877 }; 872 };
878 873
879 #define IPC_SYNC_MESSAGE_CONTROL0_3(msg_class, type1_out, type2_out, type3_out) \ 874 #define IPC_SYNC_MESSAGE_CONTROL0_3(msg_class, type1_out, type2_out, type3_out) \
880 class msg_class : \ 875 class msg_class : \
881 public IPC::MessageWithReply<Tuple0, \ 876 public IPC::MessageWithReply<Tuple0, \
882 Tuple3<type1_out&, type2_out&, type3_out&> >{ \ 877 Tuple3<type1_out&, type2_out&, type3_out&> >{ \
883 public: \ 878 public: \
884 enum { ID = msg_class##__ID }; \ 879 enum { ID = msg_class##__ID }; \
885 msg_class(type1_out* arg1, type2_out* arg2, type3_out* arg3) \ 880 msg_class(type1_out* arg1, type2_out* arg2, type3_out* arg3); \
886 : IPC::MessageWithReply<Tuple0, \ 881 ~msg_class(); \
887 Tuple3<type1_out&, type2_out&, type3_out&> >(MSG_ROUTING_CONTROL, \ 882 static void Log(const Message* msg, std::wstring* l); \
888 ID, \
889 MakeTuple(), MakeRefTuple(*arg1, *arg2, *arg3)) {} \
890 }; 883 };
891 884
892 #define IPC_SYNC_MESSAGE_CONTROL1_0(msg_class, type1_in) \ 885 #define IPC_SYNC_MESSAGE_CONTROL1_0(msg_class, type1_in) \
893 class msg_class : \ 886 class msg_class : \
894 public IPC::MessageWithReply<Tuple1<type1_in>, Tuple0 > { \ 887 public IPC::MessageWithReply<Tuple1<type1_in>, Tuple0 > { \
895 public: \ 888 public: \
896 enum { ID = msg_class##__ID }; \ 889 enum { ID = msg_class##__ID }; \
897 msg_class(const type1_in& arg1) \ 890 msg_class(const type1_in& arg1); \
898 : IPC::MessageWithReply<Tuple1<type1_in>, Tuple0 >( \ 891 ~msg_class(); \
899 MSG_ROUTING_CONTROL, ID, \ 892 static void Log(const Message* msg, std::wstring* l); \
900 MakeRefTuple(arg1), MakeTuple()) {} \
901 }; 893 };
902 894
903 #define IPC_SYNC_MESSAGE_CONTROL1_1(msg_class, type1_in, type1_out) \ 895 #define IPC_SYNC_MESSAGE_CONTROL1_1(msg_class, type1_in, type1_out) \
904 class msg_class : \ 896 class msg_class : \
905 public IPC::MessageWithReply<Tuple1<type1_in>, Tuple1<type1_out&> > { \ 897 public IPC::MessageWithReply<Tuple1<type1_in>, Tuple1<type1_out&> > { \
906 public: \ 898 public: \
907 enum { ID = msg_class##__ID }; \ 899 enum { ID = msg_class##__ID }; \
908 msg_class(const type1_in& arg1, type1_out* arg2) \ 900 msg_class(const type1_in& arg1, type1_out* arg2); \
909 : IPC::MessageWithReply<Tuple1<type1_in>, Tuple1<type1_out&> >( \ 901 ~msg_class(); \
910 MSG_ROUTING_CONTROL, ID, \ 902 static void Log(const Message* msg, std::wstring* l); \
911 MakeRefTuple(arg1), MakeRefTuple(*arg2)) {} \
912 }; 903 };
913 904
914 #define IPC_SYNC_MESSAGE_CONTROL1_2(msg_class, type1_in, type1_out, type2_out) \ 905 #define IPC_SYNC_MESSAGE_CONTROL1_2(msg_class, type1_in, type1_out, type2_out) \
915 class msg_class : \ 906 class msg_class : \
916 public IPC::MessageWithReply<Tuple1<type1_in>, Tuple2<type1_out&, type2_ou t&> > { \ 907 public IPC::MessageWithReply<Tuple1<type1_in>, Tuple2<type1_out&, type2_ou t&> > { \
917 public: \ 908 public: \
918 enum { ID = msg_class##__ID }; \ 909 enum { ID = msg_class##__ID }; \
919 msg_class(const type1_in& arg1, type1_out* arg2, type2_out* arg3) \ 910 msg_class(const type1_in& arg1, type1_out* arg2, type2_out* arg3); \
920 : IPC::MessageWithReply<Tuple1<type1_in>, Tuple2<type1_out&, type2_out&> >( \ 911 ~msg_class(); \
921 MSG_ROUTING_CONTROL, ID, \ 912 static void Log(const Message* msg, std::wstring* l); \
922 MakeRefTuple(arg1), MakeRefTuple(*arg2, *arg3)) {} \
923 }; 913 };
924 914
925 #define IPC_SYNC_MESSAGE_CONTROL1_3(msg_class, type1_in, type1_out, type2_out, t ype3_out) \ 915 #define IPC_SYNC_MESSAGE_CONTROL1_3(msg_class, type1_in, type1_out, type2_out, t ype3_out) \
926 class msg_class : \ 916 class msg_class : \
927 public IPC::MessageWithReply<Tuple1<type1_in>, \ 917 public IPC::MessageWithReply<Tuple1<type1_in>, \
928 Tuple3<type1_out&, type2_out&, type3_out&> >{ \ 918 Tuple3<type1_out&, type2_out&, type3_out&> >{ \
929 public: \ 919 public: \
930 enum { ID = msg_class##__ID }; \ 920 enum { ID = msg_class##__ID }; \
931 msg_class(const type1_in& arg1, type1_out* arg2, type2_out* arg3, type3_out* arg4) \ 921 msg_class(const type1_in& arg1, type1_out* arg2, type2_out* arg3, type3_out* arg4); \
932 : IPC::MessageWithReply<Tuple1<type1_in>, \ 922 ~msg_class(); \
933 Tuple3<type1_out&, type2_out&, type3_out&> >(MSG_ROUTING_CONTROL, \ 923 static void Log(const Message* msg, std::wstring* l); \
934 ID, \
935 MakeRefTuple(arg1), MakeRefTuple(*arg2, *arg3, *arg4)) {} \
936 }; 924 };
937 925
938 #define IPC_SYNC_MESSAGE_CONTROL2_0(msg_class, type1_in, type2_in) \ 926 #define IPC_SYNC_MESSAGE_CONTROL2_0(msg_class, type1_in, type2_in) \
939 class msg_class : \ 927 class msg_class : \
940 public IPC::MessageWithReply<Tuple2<type1_in, type2_in>, Tuple0 > { \ 928 public IPC::MessageWithReply<Tuple2<type1_in, type2_in>, Tuple0 > { \
941 public: \ 929 public: \
942 enum { ID = msg_class##__ID }; \ 930 enum { ID = msg_class##__ID }; \
943 msg_class(const type1_in& arg1, const type2_in& arg2) \ 931 msg_class(const type1_in& arg1, const type2_in& arg2); \
944 : IPC::MessageWithReply<Tuple2<type1_in, type2_in>, Tuple0 >( \ 932 ~msg_class(); \
945 MSG_ROUTING_CONTROL, ID, \ 933 static void Log(const Message* msg, std::wstring* l); \
946 MakeRefTuple(arg1, arg2), MakeTuple()) {} \
947 }; 934 };
948 935
949 #define IPC_SYNC_MESSAGE_CONTROL2_1(msg_class, type1_in, type2_in, type1_out) \ 936 #define IPC_SYNC_MESSAGE_CONTROL2_1(msg_class, type1_in, type2_in, type1_out) \
950 class msg_class : \ 937 class msg_class : \
951 public IPC::MessageWithReply<Tuple2<type1_in, type2_in>, Tuple1<type1_out& > > { \ 938 public IPC::MessageWithReply<Tuple2<type1_in, type2_in>, Tuple1<type1_out& > > { \
952 public: \ 939 public: \
953 enum { ID = msg_class##__ID }; \ 940 enum { ID = msg_class##__ID }; \
954 msg_class(const type1_in& arg1, const type2_in& arg2, type1_out* arg3) \ 941 msg_class(const type1_in& arg1, const type2_in& arg2, type1_out* arg3); \
955 : IPC::MessageWithReply<Tuple2<type1_in, type2_in>, Tuple1<type1_out&> > ( \ 942 ~msg_class(); \
956 MSG_ROUTING_CONTROL, ID, \ 943 static void Log(const Message* msg, std::wstring* l); \
957 MakeRefTuple(arg1, arg2), MakeRefTuple(*arg3)) {} \
958 }; 944 };
959 945
960 #define IPC_SYNC_MESSAGE_CONTROL2_2(msg_class, type1_in, type2_in, type1_out, ty pe2_out) \ 946 #define IPC_SYNC_MESSAGE_CONTROL2_2(msg_class, type1_in, type2_in, type1_out, ty pe2_out) \
961 class msg_class : \ 947 class msg_class : \
962 public IPC::MessageWithReply<Tuple2<type1_in, type2_in>, \ 948 public IPC::MessageWithReply<Tuple2<type1_in, type2_in>, \
963 Tuple2<type1_out&, type2_out&> > { \ 949 Tuple2<type1_out&, type2_out&> > { \
964 public: \ 950 public: \
965 enum { ID = msg_class##__ID }; \ 951 enum { ID = msg_class##__ID }; \
966 msg_class(const type1_in& arg1, const type2_in& arg2, type1_out* arg3, type2 _out* arg4) \ 952 msg_class(const type1_in& arg1, const type2_in& arg2, type1_out* arg3, type2_ out* arg4); \
967 : IPC::MessageWithReply<Tuple2<type1_in, type2_in>, \ 953 ~msg_class(); \
968 Tuple2<type1_out&, type2_out&> >(MSG_ROUTING_CONTROL, ID, \ 954 static void Log(const Message* msg, std::wstring* l); \
969 MakeRefTuple(arg1, arg2), MakeRefTuple(*arg3, *arg4)) {} \
970 }; 955 };
971 956
972 #define IPC_SYNC_MESSAGE_CONTROL2_3(msg_class, type1_in, type2_in, type1_out, ty pe2_out, type3_out) \ 957 #define IPC_SYNC_MESSAGE_CONTROL2_3(msg_class, type1_in, type2_in, type1_out, ty pe2_out, type3_out) \
973 class msg_class : \ 958 class msg_class : \
974 public IPC::MessageWithReply<Tuple2<type1_in, type2_in>, \ 959 public IPC::MessageWithReply<Tuple2<type1_in, type2_in>, \
975 Tuple3<type1_out&, type2_out&, type3_out&> > { \ 960 Tuple3<type1_out&, type2_out&, type3_out&> > { \
976 public: \ 961 public: \
977 enum { ID = msg_class##__ID }; \ 962 enum { ID = msg_class##__ID }; \
978 msg_class(const type1_in& arg1, const type2_in& arg2, type1_out* arg3, type2 _out* arg4, type3_out* arg5) \ 963 msg_class(const type1_in& arg1, const type2_in& arg2, type1_out* arg3, type2_ out* arg4, type3_out* arg5); \
979 : IPC::MessageWithReply<Tuple2<type1_in, type2_in>, \ 964 ~msg_class(); \
980 Tuple3<type1_out&, type2_out&, type3_out&> >(MSG_ROUTING_CONTROL, \ 965 static void Log(const Message* msg, std::wstring* l); \
981 ID, \
982 MakeRefTuple(arg1, arg2), MakeRefTuple(*arg3, *arg4, *arg5)) {} \
983 }; 966 };
984 967
985 #define IPC_SYNC_MESSAGE_CONTROL3_1(msg_class, type1_in, type2_in, type3_in, typ e1_out) \ 968 #define IPC_SYNC_MESSAGE_CONTROL3_1(msg_class, type1_in, type2_in, type3_in, typ e1_out) \
986 class msg_class : \ 969 class msg_class : \
987 public IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ 970 public IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \
988 Tuple1<type1_out&> > { \ 971 Tuple1<type1_out&> > { \
989 public: \ 972 public: \
990 enum { ID = msg_class##__ID }; \ 973 enum { ID = msg_class##__ID }; \
991 msg_class(const type1_in& arg1, const type2_in& arg2, const type3_in& arg3, type1_out* arg4) \ 974 msg_class(const type1_in& arg1, const type2_in& arg2, const type3_in& arg3, t ype1_out* arg4); \
992 : IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ 975 ~msg_class(); \
993 Tuple1<type1_out&> >(MSG_ROUTING_CONTROL, ID, \ 976 static void Log(const Message* msg, std::wstring* l); \
994 MakeRefTuple(arg1, arg2, arg3), MakeRefTuple(*arg4)) {} \
995 }; 977 };
996 978
997 #define IPC_SYNC_MESSAGE_CONTROL3_2(msg_class, type1_in, type2_in, type3_in, typ e1_out, type2_out) \ 979 #define IPC_SYNC_MESSAGE_CONTROL3_2(msg_class, type1_in, type2_in, type3_in, typ e1_out, type2_out) \
998 class msg_class : \ 980 class msg_class : \
999 public IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ 981 public IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \
1000 Tuple2<type1_out&, type2_out&> > { \ 982 Tuple2<type1_out&, type2_out&> > { \
1001 public: \ 983 public: \
1002 enum { ID = msg_class##__ID }; \ 984 enum { ID = msg_class##__ID }; \
1003 msg_class(const type1_in& arg1, const type2_in& arg2, const type3_in& arg3, type1_out* arg4, type2_out* arg5) \ 985 msg_class(const type1_in& arg1, const type2_in& arg2, const type3_in& arg3, t ype1_out* arg4, type2_out* arg5); \
1004 : IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ 986 ~msg_class(); \
1005 Tuple2<type1_out&, type2_out&> >(MSG_ROUTING_CONTROL, ID, \ 987 static void Log(const Message* msg, std::wstring* l); \
1006 MakeRefTuple(arg1, arg2, arg3), MakeRefTuple(*arg4, *arg5)) {} \
1007 }; 988 };
1008 989
1009 #define IPC_SYNC_MESSAGE_CONTROL3_3(msg_class, type1_in, type2_in, type3_in, typ e1_out, type2_out, type3_out) \ 990 #define IPC_SYNC_MESSAGE_CONTROL3_3(msg_class, type1_in, type2_in, type3_in, typ e1_out, type2_out, type3_out) \
1010 class msg_class : \ 991 class msg_class : \
1011 public IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ 992 public IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \
1012 Tuple3<type1_out&, type2_out&, type3_out&> > { \ 993 Tuple3<type1_out&, type2_out&, type3_out&> > { \
1013 public: \ 994 public: \
1014 enum { ID = msg_class##__ID }; \ 995 enum { ID = msg_class##__ID }; \
1015 msg_class(const type1_in& arg1, const type2_in& arg2, const type3_in& arg3, type1_out* arg4, type2_out* arg5, type3_out* arg6) \ 996 msg_class(const type1_in& arg1, const type2_in& arg2, const type3_in& arg3, t ype1_out* arg4, type2_out* arg5, type3_out* arg6); \
1016 : IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ 997 ~msg_class(); \
1017 Tuple3<type1_out&, type2_out&, type3_out&> >(MSG_ROUTING_CONTROL, \ 998 static void Log(const Message* msg, std::wstring* l); \
1018 ID, \
1019 MakeRefTuple(arg1, arg2, arg3), MakeRefTuple(*arg4, *arg5, *arg6)) { } \
1020 }; 999 };
1021 1000
1022 #define IPC_SYNC_MESSAGE_CONTROL4_1(msg_class, type1_in, type2_in, type3_in, typ e4_in, type1_out) \ 1001 #define IPC_SYNC_MESSAGE_CONTROL4_1(msg_class, type1_in, type2_in, type3_in, typ e4_in, type1_out) \
1023 class msg_class : \ 1002 class msg_class : \
1024 public IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in >, \ 1003 public IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in >, \
1025 Tuple1<type1_out&> > { \ 1004 Tuple1<type1_out&> > { \
1026 public: \ 1005 public: \
1027 enum { ID = msg_class##__ID }; \ 1006 enum { ID = msg_class##__ID }; \
1028 msg_class(const type1_in& arg1, const type2_in& arg2, const type3_in& arg3, const type4_in& arg4, type1_out* arg6) \ 1007 msg_class(const type1_in& arg1, const type2_in& arg2, const type3_in& arg3, c onst type4_in& arg4, type1_out* arg6); \
1029 : IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in>, \ 1008 ~msg_class(); \
1030 Tuple1<type1_out&> >(MSG_ROUTING_CONTROL, ID, \ 1009 static void Log(const Message* msg, std::wstring* l); \
1031 MakeRefTuple(arg1, arg2, arg3, arg4), MakeRefTuple(*arg6)) {} \
1032 }; 1010 };
1033 1011
1034 #define IPC_SYNC_MESSAGE_CONTROL4_2(msg_class, type1_in, type2_in, type3_in, typ e4_in, type1_out, type2_out) \ 1012 #define IPC_SYNC_MESSAGE_CONTROL4_2(msg_class, type1_in, type2_in, type3_in, typ e4_in, type1_out, type2_out) \
1035 class msg_class : \ 1013 class msg_class : \
1036 public IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in >, \ 1014 public IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in >, \
1037 Tuple2<type1_out&, type2_out&> > { \ 1015 Tuple2<type1_out&, type2_out&> > { \
1038 public: \ 1016 public: \
1039 enum { ID = msg_class##__ID }; \ 1017 enum { ID = msg_class##__ID }; \
1040 msg_class(const type1_in& arg1, const type2_in& arg2, const type3_in& arg3, const type4_in& arg4, type1_out* arg5, type2_out* arg6) \ 1018 msg_class(const type1_in& arg1, const type2_in& arg2, const type3_in& arg3, c onst type4_in& arg4, type1_out* arg5, type2_out* arg6); \
1041 : IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in>, \ 1019 ~msg_class(); \
1042 Tuple2<type1_out&, type2_out&> >(MSG_ROUTING_CONTROL, ID, \ 1020 static void Log(const Message* msg, std::wstring* l); \
1043 MakeRefTuple(arg1, arg2, arg3, arg4), MakeRefTuple(*arg5, *arg6)) {} \ 1021 };
1022
1023 #define IPC_SYNC_MESSAGE_ROUTED0_0(msg_class) \
1024 class msg_class : public IPC::MessageWithReply<Tuple0, Tuple0 > { \
1025 public: \
1026 enum { ID = msg_class##__ID }; \
1027 msg_class(int routing_id); \
1028 ~msg_class(); \
1029 static void Log(const Message* msg, std::wstring* l); \
1044 }; 1030 };
1045 1031
1046 #define IPC_SYNC_MESSAGE_ROUTED0_1(msg_class, type1_out) \ 1032 #define IPC_SYNC_MESSAGE_ROUTED0_1(msg_class, type1_out) \
1047 class msg_class : public IPC::MessageWithReply<Tuple0, Tuple1<type1_out&> > { \ 1033 class msg_class : public IPC::MessageWithReply<Tuple0, Tuple1<type1_out&> > { \
1048 public: \ 1034 public: \
1049 enum { ID = msg_class##__ID }; \ 1035 enum { ID = msg_class##__ID }; \
1050 msg_class(int routing_id, type1_out* arg1) \ 1036 msg_class(int routing_id, type1_out* arg1); \
1051 : IPC::MessageWithReply<Tuple0, Tuple1<type1_out&> >( \ 1037 ~msg_class(); \
1052 routing_id, ID, \ 1038 static void Log(const Message* msg, std::wstring* l); \
1053 MakeTuple(), MakeRefTuple(*arg1)) {} \
1054 };
1055
1056 #define IPC_SYNC_MESSAGE_ROUTED0_0(msg_class) \
1057 class msg_class : public IPC::MessageWithReply<Tuple0, Tuple0 > { \
1058 public: \
1059 enum { ID = msg_class##__ID }; \
1060 msg_class(int routing_id) \
1061 : IPC::MessageWithReply<Tuple0, Tuple0 >( \
1062 routing_id, ID, \
1063 MakeTuple(), MakeTuple()) {} \
1064 }; 1039 };
1065 1040
1066 #define IPC_SYNC_MESSAGE_ROUTED0_2(msg_class, type1_out, type2_out) \ 1041 #define IPC_SYNC_MESSAGE_ROUTED0_2(msg_class, type1_out, type2_out) \
1067 class msg_class : \ 1042 class msg_class : \
1068 public IPC::MessageWithReply<Tuple0, Tuple2<type1_out&, type2_out&> > { \ 1043 public IPC::MessageWithReply<Tuple0, Tuple2<type1_out&, type2_out&> > { \
1069 public: \ 1044 public: \
1070 enum { ID = msg_class##__ID }; \ 1045 enum { ID = msg_class##__ID }; \
1071 msg_class(int routing_id, type1_out* arg1, type2_out* arg2) \ 1046 msg_class(int routing_id, type1_out* arg1, type2_out* arg2); \
1072 : IPC::MessageWithReply<Tuple0, Tuple2<type1_out&, type2_out&> >( \ 1047 ~msg_class(); \
1073 routing_id, ID, \ 1048 static void Log(const Message* msg, std::wstring* l); \
1074 MakeTuple(), MakeRefTuple(*arg1, *arg2)) {} \
1075 }; 1049 };
1076 1050
1077 #define IPC_SYNC_MESSAGE_ROUTED0_3(msg_class, type1_out, type2_out, type3_out) \ 1051 #define IPC_SYNC_MESSAGE_ROUTED0_3(msg_class, type1_out, type2_out, type3_out) \
1078 class msg_class : \ 1052 class msg_class : \
1079 public IPC::MessageWithReply<Tuple0, \ 1053 public IPC::MessageWithReply<Tuple0, \
1080 Tuple3<type1_out&, type2_out&, type3_out&> >{ \ 1054 Tuple3<type1_out&, type2_out&, type3_out&> >{ \
1081 public: \ 1055 public: \
1082 enum { ID = msg_class##__ID }; \ 1056 enum { ID = msg_class##__ID }; \
1083 msg_class(int routing_id, type1_out* arg1, type2_out* arg2, type3_out* arg3) \ 1057 msg_class(int routing_id, type1_out* arg1, type2_out* arg2, type3_out* arg3); \
1084 : IPC::MessageWithReply<Tuple0, \ 1058 ~msg_class(); \
1085 Tuple3<type1_out&, type2_out&, type3_out&> >(routing_id, ID, \ 1059 static void Log(const Message* msg, std::wstring* l); \
1086 MakeTuple(), MakeRefTuple(*arg1, *arg2, *arg3)) {} \
1087 }; 1060 };
1088 1061
1089 #define IPC_SYNC_MESSAGE_ROUTED1_0(msg_class, type1_in) \ 1062 #define IPC_SYNC_MESSAGE_ROUTED1_0(msg_class, type1_in) \
1090 class msg_class : \ 1063 class msg_class : \
1091 public IPC::MessageWithReply<Tuple1<type1_in>, Tuple0 > { \ 1064 public IPC::MessageWithReply<Tuple1<type1_in>, Tuple0 > { \
1092 public: \ 1065 public: \
1093 enum { ID = msg_class##__ID }; \ 1066 enum { ID = msg_class##__ID }; \
1094 msg_class(int routing_id, const type1_in& arg1) \ 1067 msg_class(int routing_id, const type1_in& arg1); \
1095 : IPC::MessageWithReply<Tuple1<type1_in>, Tuple0 >( \ 1068 ~msg_class(); \
1096 routing_id, ID, \ 1069 static void Log(const Message* msg, std::wstring* l); \
1097 MakeRefTuple(arg1), MakeTuple()) {} \
1098 }; 1070 };
1099 1071
1100 #define IPC_SYNC_MESSAGE_ROUTED1_1(msg_class, type1_in, type1_out) \ 1072 #define IPC_SYNC_MESSAGE_ROUTED1_1(msg_class, type1_in, type1_out) \
1101 class msg_class : \ 1073 class msg_class : \
1102 public IPC::MessageWithReply<Tuple1<type1_in>, Tuple1<type1_out&> > { \ 1074 public IPC::MessageWithReply<Tuple1<type1_in>, Tuple1<type1_out&> > { \
1103 public: \ 1075 public: \
1104 enum { ID = msg_class##__ID }; \ 1076 enum { ID = msg_class##__ID }; \
1105 msg_class(int routing_id, const type1_in& arg1, type1_out* arg2) \ 1077 msg_class(int routing_id, const type1_in& arg1, type1_out* arg2); \
1106 : IPC::MessageWithReply<Tuple1<type1_in>, Tuple1<type1_out&> >( \ 1078 ~msg_class(); \
1107 routing_id, ID, \ 1079 static void Log(const Message* msg, std::wstring* l); \
1108 MakeRefTuple(arg1), MakeRefTuple(*arg2)) {} \
1109 }; 1080 };
1110 1081
1111 #define IPC_SYNC_MESSAGE_ROUTED1_2(msg_class, type1_in, type1_out, type2_out) \ 1082 #define IPC_SYNC_MESSAGE_ROUTED1_2(msg_class, type1_in, type1_out, type2_out) \
1112 class msg_class : \ 1083 class msg_class : \
1113 public IPC::MessageWithReply<Tuple1<type1_in>, Tuple2<type1_out&, type2_ou t&> > { \ 1084 public IPC::MessageWithReply<Tuple1<type1_in>, Tuple2<type1_out&, type2_ou t&> > { \
1114 public: \ 1085 public: \
1115 enum { ID = msg_class##__ID }; \ 1086 enum { ID = msg_class##__ID }; \
1116 msg_class(int routing_id, const type1_in& arg1, type1_out* arg2, type2_out* arg3) \ 1087 msg_class(int routing_id, const type1_in& arg1, type1_out* arg2, type2_out* a rg3); \
1117 : IPC::MessageWithReply<Tuple1<type1_in>, Tuple2<type1_out&, type2_out&> >( \ 1088 ~msg_class(); \
1118 routing_id, ID, \ 1089 static void Log(const Message* msg, std::wstring* l); \
1119 MakeRefTuple(arg1), MakeRefTuple(*arg2, *arg3)) {} \
1120 }; 1090 };
1121 1091
1122 #define IPC_SYNC_MESSAGE_ROUTED1_3(msg_class, type1_in, type1_out, type2_out, ty pe3_out) \ 1092 #define IPC_SYNC_MESSAGE_ROUTED1_3(msg_class, type1_in, type1_out, type2_out, ty pe3_out) \
1123 class msg_class : \ 1093 class msg_class : \
1124 public IPC::MessageWithReply<Tuple1<type1_in>, \ 1094 public IPC::MessageWithReply<Tuple1<type1_in>, \
1125 Tuple3<type1_out&, type2_out&, type3_out&> >{ \ 1095 Tuple3<type1_out&, type2_out&, type3_out&> >{ \
1126 public: \ 1096 public: \
1127 enum { ID = msg_class##__ID }; \ 1097 enum { ID = msg_class##__ID }; \
1128 msg_class(int routing_id, const type1_in& arg1, type1_out* arg2, type2_out* arg3, type3_out* arg4) \ 1098 msg_class(int routing_id, const type1_in& arg1, type1_out* arg2, type2_out* a rg3, type3_out* arg4); \
1129 : IPC::MessageWithReply<Tuple1<type1_in>, \ 1099 ~msg_class(); \
1130 Tuple3<type1_out&, type2_out&, type3_out&> >(routing_id, ID, \ 1100 static void Log(const Message* msg, std::wstring* l); \
1131 MakeRefTuple(arg1), MakeRefTuple(*arg2, *arg3, *arg4)) {} \
1132 }; 1101 };
1133 1102
1134 #define IPC_SYNC_MESSAGE_ROUTED1_4(msg_class, type1_in, type1_out, type2_out, ty pe3_out, type4_out) \ 1103 #define IPC_SYNC_MESSAGE_ROUTED1_4(msg_class, type1_in, type1_out, type2_out, ty pe3_out, type4_out) \
1135 class msg_class : \ 1104 class msg_class : \
1136 public IPC::MessageWithReply<Tuple1<type1_in>, \ 1105 public IPC::MessageWithReply<Tuple1<type1_in>, \
1137 Tuple4<type1_out&, type2_out&, type3_out&, type4_out&> >{ \ 1106 Tuple4<type1_out&, type2_out&, type3_out&, type4_out&> >{ \
1138 public: \ 1107 public: \
1139 enum { ID = msg_class##__ID }; \ 1108 enum { ID = msg_class##__ID }; \
1140 msg_class(int routing_id, const type1_in& arg1, type1_out* arg2, type2_out* arg3, type3_out* arg4, type4_out* arg5) \ 1109 msg_class(int routing_id, const type1_in& arg1, type1_out* arg2, type2_out* a rg3, type3_out* arg4, type4_out* arg5); \
1141 : IPC::MessageWithReply<Tuple1<type1_in>, \ 1110 ~msg_class(); \
1142 Tuple4<type1_out&, type2_out&, type3_out&, type4_out&> >(routing_id, ID, \ 1111 static void Log(const Message* msg, std::wstring* l); \
1143 MakeRefTuple(arg1), MakeRefTuple(*arg2, *arg3, *arg4, *arg5)) {} \
1144 }; 1112 };
1145 1113
1146 #define IPC_SYNC_MESSAGE_ROUTED2_0(msg_class, type1_in, type2_in) \ 1114 #define IPC_SYNC_MESSAGE_ROUTED2_0(msg_class, type1_in, type2_in) \
1147 class msg_class : \ 1115 class msg_class : \
1148 public IPC::MessageWithReply<Tuple2<type1_in, type2_in>, Tuple0 > { \ 1116 public IPC::MessageWithReply<Tuple2<type1_in, type2_in>, Tuple0 > { \
1149 public: \ 1117 public: \
1150 enum { ID = msg_class##__ID }; \ 1118 enum { ID = msg_class##__ID }; \
1151 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2) \ 1119 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2); \
1152 : IPC::MessageWithReply<Tuple2<type1_in, type2_in>, Tuple0 >( \ 1120 ~msg_class(); \
1153 routing_id, ID, \ 1121 static void Log(const Message* msg, std::wstring* l); \
1154 MakeRefTuple(arg1, arg2), MakeTuple()) {} \
1155 }; 1122 };
1156 1123
1157 #define IPC_SYNC_MESSAGE_ROUTED2_1(msg_class, type1_in, type2_in, type1_out) \ 1124 #define IPC_SYNC_MESSAGE_ROUTED2_1(msg_class, type1_in, type2_in, type1_out) \
1158 class msg_class : \ 1125 class msg_class : \
1159 public IPC::MessageWithReply<Tuple2<type1_in, type2_in>, Tuple1<type1_out& > > { \ 1126 public IPC::MessageWithReply<Tuple2<type1_in, type2_in>, Tuple1<type1_out& > > { \
1160 public: \ 1127 public: \
1161 enum { ID = msg_class##__ID }; \ 1128 enum { ID = msg_class##__ID }; \
1162 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, type1_ out* arg3) \ 1129 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, type1_o ut* arg3); \
1163 : IPC::MessageWithReply<Tuple2<type1_in, type2_in>, Tuple1<type1_out&> > ( \ 1130 ~msg_class(); \
1164 routing_id, ID, \ 1131 static void Log(const Message* msg, std::wstring* l); \
1165 MakeRefTuple(arg1, arg2), MakeRefTuple(*arg3)) {} \
1166 }; 1132 };
1167 1133
1168 #define IPC_SYNC_MESSAGE_ROUTED2_2(msg_class, type1_in, type2_in, type1_out, typ e2_out) \ 1134 #define IPC_SYNC_MESSAGE_ROUTED2_2(msg_class, type1_in, type2_in, type1_out, typ e2_out) \
1169 class msg_class : \ 1135 class msg_class : \
1170 public IPC::MessageWithReply<Tuple2<type1_in, type2_in>, \ 1136 public IPC::MessageWithReply<Tuple2<type1_in, type2_in>, \
1171 Tuple2<type1_out&, type2_out&> > { \ 1137 Tuple2<type1_out&, type2_out&> > { \
1172 public: \ 1138 public: \
1173 enum { ID = msg_class##__ID }; \ 1139 enum { ID = msg_class##__ID }; \
1174 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, type1_ out* arg3, type2_out* arg4) \ 1140 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, type1_o ut* arg3, type2_out* arg4); \
1175 : IPC::MessageWithReply<Tuple2<type1_in, type2_in>, \ 1141 ~msg_class(); \
1176 Tuple2<type1_out&, type2_out&> >(routing_id, ID, \ 1142 static void Log(const Message* msg, std::wstring* l); \
1177 MakeRefTuple(arg1, arg2), MakeRefTuple(*arg3, *arg4)) {} \
1178 }; 1143 };
1179 1144
1180 #define IPC_SYNC_MESSAGE_ROUTED2_3(msg_class, type1_in, type2_in, type1_out, typ e2_out, type3_out) \ 1145 #define IPC_SYNC_MESSAGE_ROUTED2_3(msg_class, type1_in, type2_in, type1_out, typ e2_out, type3_out) \
1181 class msg_class : \ 1146 class msg_class : \
1182 public IPC::MessageWithReply<Tuple2<type1_in, type2_in>, \ 1147 public IPC::MessageWithReply<Tuple2<type1_in, type2_in>, \
1183 Tuple3<type1_out&, type2_out&, type3_out&> > { \ 1148 Tuple3<type1_out&, type2_out&, type3_out&> > { \
1184 public: \ 1149 public: \
1185 enum { ID = msg_class##__ID }; \ 1150 enum { ID = msg_class##__ID }; \
1186 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, type1_ out* arg3, type2_out* arg4, type3_out* arg5) \ 1151 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, type1_o ut* arg3, type2_out* arg4, type3_out* arg5); \
1187 : IPC::MessageWithReply<Tuple2<type1_in, type2_in>, \ 1152 ~msg_class(); \
1188 Tuple3<type1_out&, type2_out&, type3_out&> >(routing_id, ID, \ 1153 static void Log(const Message* msg, std::wstring* l); \
1189 MakeRefTuple(arg1, arg2), MakeRefTuple(*arg3, *arg4, *arg5)) {} \
1190 }; 1154 };
1191 1155
1192 #define IPC_SYNC_MESSAGE_ROUTED3_0(msg_class, type1_in, type2_in, type3_in) \ 1156 #define IPC_SYNC_MESSAGE_ROUTED3_0(msg_class, type1_in, type2_in, type3_in) \
1193 class msg_class : \ 1157 class msg_class : \
1194 public IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, Tuple0 > { \ 1158 public IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, Tuple0 > { \
1195 public: \ 1159 public: \
1196 enum { ID = msg_class##__ID }; \ 1160 enum { ID = msg_class##__ID }; \
1197 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const type3_in& arg3) \ 1161 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const t ype3_in& arg3); \
1198 : IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, Tuple0>( \ 1162 ~msg_class(); \
1199 routing_id, ID, \ 1163 static void Log(const Message* msg, std::wstring* l); \
1200 MakeRefTuple(arg1, arg2, arg3), MakeTuple()) {} \ 1164 };
1201 };
1202 1165
1203 #define IPC_SYNC_MESSAGE_ROUTED3_1(msg_class, type1_in, type2_in, type3_in, type 1_out) \ 1166 #define IPC_SYNC_MESSAGE_ROUTED3_1(msg_class, type1_in, type2_in, type3_in, type 1_out) \
1204 class msg_class : \ 1167 class msg_class : \
1205 public IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ 1168 public IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \
1206 Tuple1<type1_out&> > { \ 1169 Tuple1<type1_out&> > { \
1207 public: \ 1170 public: \
1208 enum { ID = msg_class##__ID }; \ 1171 enum { ID = msg_class##__ID }; \
1209 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const type3_in& arg3, type1_out* arg4) \ 1172 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const t ype3_in& arg3, type1_out* arg4); \
1210 : IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ 1173 ~msg_class(); \
1211 Tuple1<type1_out&> >(routing_id, ID, \ 1174 static void Log(const Message* msg, std::wstring* l); \
1212 MakeRefTuple(arg1, arg2, arg3), MakeRefTuple(*arg4)) {} \
1213 }; 1175 };
1214 1176
1215 #define IPC_SYNC_MESSAGE_ROUTED3_2(msg_class, type1_in, type2_in, type3_in, type 1_out, type2_out) \ 1177 #define IPC_SYNC_MESSAGE_ROUTED3_2(msg_class, type1_in, type2_in, type3_in, type 1_out, type2_out) \
1216 class msg_class : \ 1178 class msg_class : \
1217 public IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ 1179 public IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \
1218 Tuple2<type1_out&, type2_out&> > { \ 1180 Tuple2<type1_out&, type2_out&> > { \
1219 public: \ 1181 public: \
1220 enum { ID = msg_class##__ID }; \ 1182 enum { ID = msg_class##__ID }; \
1221 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const type3_in& arg3, type1_out* arg4, type2_out* arg5) \ 1183 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const t ype3_in& arg3, type1_out* arg4, type2_out* arg5); \
1222 : IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ 1184 ~msg_class(); \
1223 Tuple2<type1_out&, type2_out&> >(routing_id, ID, \ 1185 static void Log(const Message* msg, std::wstring* l); \
1224 MakeRefTuple(arg1, arg2, arg3), MakeRefTuple(*arg4, *arg5)) {} \
1225 }; 1186 };
1226 1187
1227 #define IPC_SYNC_MESSAGE_ROUTED3_3(msg_class, type1_in, type2_in, type3_in, type 1_out, type2_out, type3_out) \ 1188 #define IPC_SYNC_MESSAGE_ROUTED3_3(msg_class, type1_in, type2_in, type3_in, type 1_out, type2_out, type3_out) \
1228 class msg_class : \ 1189 class msg_class : \
1229 public IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ 1190 public IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \
1230 Tuple3<type1_out&, type2_out&, type3_out&> > { \ 1191 Tuple3<type1_out&, type2_out&, type3_out&> > { \
1231 public: \ 1192 public: \
1232 enum { ID = msg_class##__ID }; \ 1193 enum { ID = msg_class##__ID }; \
1233 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const type3_in& arg3, type1_out* arg4, type2_out* arg5, type3_out* arg6) \ 1194 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const t ype3_in& arg3, type1_out* arg4, type2_out* arg5, type3_out* arg6); \
1234 : IPC::MessageWithReply<Tuple3<type1_in, type2_in, type3_in>, \ 1195 ~msg_class(); \
1235 Tuple3<type1_out&, type2_out&, type3_out&> >(routing_id, ID, \ 1196 static void Log(const Message* msg, std::wstring* l); \
1236 MakeRefTuple(arg1, arg2, arg3), MakeRefTuple(*arg4, *arg5, *arg6)) { } \
1237 }; 1197 };
1238 1198
1239 #define IPC_SYNC_MESSAGE_ROUTED4_0(msg_class, type1_in, type2_in, type3_in, type 4_in) \ 1199 #define IPC_SYNC_MESSAGE_ROUTED4_0(msg_class, type1_in, type2_in, type3_in, type 4_in) \
1240 class msg_class : \ 1200 class msg_class : \
1241 public IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in >, \ 1201 public IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in >, \
1242 Tuple0 > { \ 1202 Tuple0 > { \
1243 public: \ 1203 public: \
1244 enum { ID = msg_class##__ID }; \ 1204 enum { ID = msg_class##__ID }; \
1245 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const type3_in& arg3, const type4_in& arg4) \ 1205 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const t ype3_in& arg3, const type4_in& arg4); \
1246 : IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in>, \ 1206 ~msg_class(); \
1247 Tuple0 >(routing_id, ID, \ 1207 static void Log(const Message* msg, std::wstring* l); \
1248 MakeRefTuple(arg1, arg2, arg3, arg4), MakeTuple()) {} \
1249 }; 1208 };
1250 1209
1251 #define IPC_SYNC_MESSAGE_ROUTED4_1(msg_class, type1_in, type2_in, type3_in, type 4_in, type1_out) \ 1210 #define IPC_SYNC_MESSAGE_ROUTED4_1(msg_class, type1_in, type2_in, type3_in, type 4_in, type1_out) \
1252 class msg_class : \ 1211 class msg_class : \
1253 public IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in >, \ 1212 public IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in >, \
1254 Tuple1<type1_out&> > { \ 1213 Tuple1<type1_out&> > { \
1255 public: \ 1214 public: \
1256 enum { ID = msg_class##__ID }; \ 1215 enum { ID = msg_class##__ID }; \
1257 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const type3_in& arg3, const type4_in& arg4, type1_out* arg6) \ 1216 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const t ype3_in& arg3, const type4_in& arg4, type1_out* arg6); \
1258 : IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in>, \ 1217 ~msg_class(); \
1259 Tuple1<type1_out&> >(routing_id, ID, \ 1218 static void Log(const Message* msg, std::wstring* l); \
1260 MakeRefTuple(arg1, arg2, arg3, arg4), MakeRefTuple(*arg6)) {} \
1261 }; 1219 };
1262 1220
1263 #define IPC_SYNC_MESSAGE_ROUTED4_2(msg_class, type1_in, type2_in, type3_in, type 4_in, type1_out, type2_out) \ 1221 #define IPC_SYNC_MESSAGE_ROUTED4_2(msg_class, type1_in, type2_in, type3_in, type 4_in, type1_out, type2_out) \
1264 class msg_class : \ 1222 class msg_class : \
1265 public IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in >, \ 1223 public IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in >, \
1266 Tuple2<type1_out&, type2_out&> > { \ 1224 Tuple2<type1_out&, type2_out&> > { \
1267 public: \ 1225 public: \
1268 enum { ID = msg_class##__ID }; \ 1226 enum { ID = msg_class##__ID }; \
1269 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const type3_in& arg3, const type4_in& arg4, type1_out* arg5, type2_out* arg6) \ 1227 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const t ype3_in& arg3, const type4_in& arg4, type1_out* arg5, type2_out* arg6); \
1270 : IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in>, \ 1228 ~msg_class(); \
1271 Tuple2<type1_out&, type2_out&> >(routing_id, ID, \ 1229 static void Log(const Message* msg, std::wstring* l); \
1272 MakeRefTuple(arg1, arg2, arg3, arg4), MakeRefTuple(*arg5, *arg6)) {} \
1273 }; 1230 };
1274 1231
1275 #define IPC_SYNC_MESSAGE_ROUTED4_3(msg_class, type1_in, type2_in, type3_in, type 4_in, type1_out, type2_out, type3_out) \ 1232 #define IPC_SYNC_MESSAGE_ROUTED4_3(msg_class, type1_in, type2_in, type3_in, type 4_in, type1_out, type2_out, type3_out) \
1276 class msg_class : \ 1233 class msg_class : \
1277 public IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in >, \ 1234 public IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in >, \
1278 Tuple3<type1_out&, type2_out&, type3_out&> > { \ 1235 Tuple3<type1_out&, type2_out&, type3_out&> > { \
1279 public: \ 1236 public: \
1280 enum { ID = msg_class##__ID }; \ 1237 enum { ID = msg_class##__ID }; \
1281 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const type3_in& arg3, const type4_in& arg4, type1_out* arg5, type2_out* arg6, type3_ou t* arg7) \ 1238 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const t ype3_in& arg3, const type4_in& arg4, type1_out* arg5, type2_out* arg6, type3_out * arg7); \
1282 : IPC::MessageWithReply<Tuple4<type1_in, type2_in, type3_in, type4_in>, \ 1239 ~msg_class(); \
1283 Tuple3<type1_out&, type2_out&, type3_out&> >(routing_id, ID, \ 1240 static void Log(const Message* msg, std::wstring* l); \
1284 MakeRefTuple(arg1, arg2, arg3, arg4), MakeRefTuple(*arg5, *arg6, *arg7 )) {} \
1285 }; 1241 };
1286 1242
1287 #define IPC_SYNC_MESSAGE_ROUTED5_0(msg_class, type1_in, type2_in, type3_in, type 4_in, type5_in) \ 1243 #define IPC_SYNC_MESSAGE_ROUTED5_0(msg_class, type1_in, type2_in, type3_in, type 4_in, type5_in) \
1288 class msg_class : \ 1244 class msg_class : \
1289 public IPC::MessageWithReply<Tuple5<type1_in, type2_in, type3_in, type4_in , type5_in>, \ 1245 public IPC::MessageWithReply<Tuple5<type1_in, type2_in, type3_in, type4_in , type5_in>, \
1290 Tuple0 > { \ 1246 Tuple0 > { \
1291 public: \ 1247 public: \
1292 enum { ID = msg_class##__ID }; \ 1248 enum { ID = msg_class##__ID }; \
1293 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const type3_in& arg3, const type4_in& arg4, const type5_in& arg5) \ 1249 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const t ype3_in& arg3, const type4_in& arg4, const type5_in& arg5); \
1294 : IPC::MessageWithReply<Tuple5<type1_in, type2_in, type3_in, type4_in, t ype5_in>, \ 1250 ~msg_class(); \
1295 Tuple0 >(routing_id, ID, \ 1251 static void Log(const Message* msg, std::wstring* l); \
1296 MakeRefTuple(arg1, arg2, arg3, arg4, arg5), MakeTuple()) {} \
1297 }; 1252 };
1298 1253
1299 #define IPC_SYNC_MESSAGE_ROUTED5_1(msg_class, type1_in, type2_in, type3_in, type 4_in, type5_in, type1_out) \ 1254 #define IPC_SYNC_MESSAGE_ROUTED5_1(msg_class, type1_in, type2_in, type3_in, type 4_in, type5_in, type1_out) \
1300 class msg_class : \ 1255 class msg_class : \
1301 public IPC::MessageWithReply<Tuple5<type1_in, type2_in, type3_in, type4_in , type5_in>, \ 1256 public IPC::MessageWithReply<Tuple5<type1_in, type2_in, type3_in, type4_in , type5_in>, \
1302 Tuple1<type1_out&> > { \ 1257 Tuple1<type1_out&> > { \
1303 public: \ 1258 public: \
1304 enum { ID = msg_class##__ID }; \ 1259 enum { ID = msg_class##__ID }; \
1305 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const type3_in& arg3, const type4_in& arg4, const type5_in& arg5, type1_out* arg6) \ 1260 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const t ype3_in& arg3, const type4_in& arg4, const type5_in& arg5, type1_out* arg6); \
1306 : IPC::MessageWithReply<Tuple5<type1_in, type2_in, type3_in, type4_in, t ype5_in>, \ 1261 ~msg_class(); \
1307 Tuple1<type1_out&> >(routing_id, ID, \ 1262 static void Log(const Message* msg, std::wstring* l); \
1308 MakeRefTuple(arg1, arg2, arg3, arg4, arg5), MakeRefTuple(*arg6)) {} \
1309 }; 1263 };
1310 1264
1311 #define IPC_SYNC_MESSAGE_ROUTED5_2(msg_class, type1_in, type2_in, type3_in, type 4_in, type5_in, type1_out, type2_out) \ 1265 #define IPC_SYNC_MESSAGE_ROUTED5_2(msg_class, type1_in, type2_in, type3_in, type 4_in, type5_in, type1_out, type2_out) \
1312 class msg_class : \ 1266 class msg_class : \
1313 public IPC::MessageWithReply<Tuple5<type1_in, type2_in, type3_in, type4_in , type5_in>, \ 1267 public IPC::MessageWithReply<Tuple5<type1_in, type2_in, type3_in, type4_in , type5_in>, \
1314 Tuple2<type1_out&, type2_out&> > { \ 1268 Tuple2<type1_out&, type2_out&> > { \
1315 public: \ 1269 public: \
1316 enum { ID = msg_class##__ID }; \ 1270 enum { ID = msg_class##__ID }; \
1317 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const type3_in& arg3, const type4_in& arg4, const type4_in& arg5, type1_out* arg6, typ e2_out* arg7) \ 1271 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const t ype3_in& arg3, const type4_in& arg4, const type4_in& arg5, type1_out* arg6, type 2_out* arg7); \
1318 : IPC::MessageWithReply<Tuple5<type1_in, type2_in, type3_in, type4_in, t ype5_in>, \ 1272 ~msg_class(); \
1319 Tuple2<type1_out&, type2_out&> >(routing_id, ID, \ 1273 static void Log(const Message* msg, std::wstring* l); \
1320 MakeRefTuple(arg1, arg2, arg3, arg4, arg5), MakeRefTuple(*arg6, *arg 7)) {} \
1321 }; 1274 };
1322 1275
1323 #define IPC_SYNC_MESSAGE_ROUTED5_3(msg_class, type1_in, type2_in, type3_in, type 4_in, type5_in, type1_out, type2_out, type3_out) \ 1276 #define IPC_SYNC_MESSAGE_ROUTED5_3(msg_class, type1_in, type2_in, type3_in, type 4_in, type5_in, type1_out, type2_out, type3_out) \
1324 class msg_class : \ 1277 class msg_class : \
1325 public IPC::MessageWithReply<Tuple5<type1_in, type2_in, type3_in, type4_in , type5_in>, \ 1278 public IPC::MessageWithReply<Tuple5<type1_in, type2_in, type3_in, type4_in , type5_in>, \
1326 Tuple3<type1_out&, type2_out&, type3_out&> > { \ 1279 Tuple3<type1_out&, type2_out&, type3_out&> > { \
1327 public: \ 1280 public: \
1328 enum { ID = msg_class##__ID }; \ 1281 enum { ID = msg_class##__ID }; \
1329 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const type3_in& arg3, const type4_in& arg4, const type4_in& arg5, type1_out* arg6, typ e2_out* arg7, type3_out* arg8) \ 1282 msg_class(int routing_id, const type1_in& arg1, const type2_in& arg2, const t ype3_in& arg3, const type4_in& arg4, const type4_in& arg5, type1_out* arg6, type 2_out* arg7, type3_out* arg8); \
1330 : IPC::MessageWithReply<Tuple5<type1_in, type2_in, type3_in, type4_in, typ e5_in>, \ 1283 ~msg_class(); \
1331 Tuple3<type1_out&, type2_out&, type3_out&> >(routing_id, ID, \ 1284 static void Log(const Message* msg, std::wstring* l); \
1332 MakeRefTuple(arg1, arg2, arg3, arg4, arg5), MakeRefTuple(*arg6, *arg7, *arg8)) {} \
1333 }; 1285 };
1334 1286
1335 #endif // #if defined() 1287 #endif // #if defined()
OLDNEW
« no previous file with comments | « ipc/ipc_message_impl_macros.h ('k') | ipc/ipc_message_utils.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698