38 #ifndef GMOCK_INCLUDE_GMOCK_GMOCK_GENERATED_ACTIONS_H_ 39 #define GMOCK_INCLUDE_GMOCK_GMOCK_GENERATED_ACTIONS_H_ 52 template <
typename Result,
typename ArgumentTuple>
59 template <
typename Function>
65 template <
class Class,
typename MethodPtr>
68 const ::std::tr1::tuple<> &)
70 return (obj_ptr->*method_ptr)();
74 template <
typename R,
typename A1>
78 template <
typename Function>
82 return function(get<0>(args));
85 template <
class Class,
typename MethodPtr>
88 const ::std::tr1::tuple<A1> & args)
91 return (obj_ptr->*method_ptr)(get<0>(args));
95 template <
typename R,
typename A1,
typename A2>
99 template <
typename Function>
103 return function(get<0>(args), get<1>(args));
106 template <
class Class,
typename MethodPtr>
108 MethodPtr method_ptr,
109 const ::std::tr1::tuple<A1, A2> & args)
112 return (obj_ptr->*method_ptr)(get<0>(args), get<1>(args));
116 template <
typename R,
typename A1,
typename A2,
typename A3>
120 template <
typename Function>
125 return function(get<0>(args), get<1>(args), get<2>(args));
128 template <
class Class,
typename MethodPtr>
130 MethodPtr method_ptr,
131 const ::std::tr1::tuple<A1, A2, A3> & args)
134 return (obj_ptr->*method_ptr)(get<0>(args), get<1>(args), get<2>(args));
138 template <
typename R,
typename A1,
typename A2,
typename A3,
typename A4>
142 template <
typename Function>
147 return function(get<0>(args), get<1>(args), get<2>(args), get<3>(args));
150 template <
class Class,
typename MethodPtr>
152 MethodPtr method_ptr,
153 const ::std::tr1::tuple<A1, A2, A3, A4> & args)
156 return (obj_ptr->*method_ptr)(get<0>(args), get<1>(args), get<2>(args),
161 template <
typename R,
typename A1,
typename A2,
typename A3,
typename A4,
166 template <
typename Function>
171 return function(get<0>(args), get<1>(args), get<2>(args), get<3>(args),
175 template <
class Class,
typename MethodPtr>
177 MethodPtr method_ptr,
178 const ::std::tr1::tuple<A1, A2, A3, A4, A5> & args)
181 return (obj_ptr->*method_ptr)(get<0>(args), get<1>(args), get<2>(args),
182 get<3>(args), get<4>(args));
186 template <
typename R,
typename A1,
typename A2,
typename A3,
typename A4,
187 typename A5,
typename A6>
191 template <
typename Function>
196 return function(get<0>(args), get<1>(args), get<2>(args), get<3>(args),
197 get<4>(args), get<5>(args));
200 template <
class Class,
typename MethodPtr>
202 MethodPtr method_ptr,
203 const ::std::tr1::tuple<A1, A2, A3, A4, A5, A6> & args)
206 return (obj_ptr->*method_ptr)(get<0>(args), get<1>(args), get<2>(args),
207 get<3>(args), get<4>(args), get<5>(args));
211 template <
typename R,
typename A1,
typename A2,
typename A3,
typename A4,
212 typename A5,
typename A6,
typename A7>
216 template <
typename Function>
221 return function(get<0>(args), get<1>(args), get<2>(args), get<3>(args),
222 get<4>(args), get<5>(args), get<6>(args));
225 template <
class Class,
typename MethodPtr>
227 MethodPtr method_ptr,
228 const ::std::tr1::tuple<A1, A2, A3, A4, A5, A6,
232 return (obj_ptr->*method_ptr)(get<0>(args), get<1>(args), get<2>(args),
233 get<3>(args), get<4>(args), get<5>(args), get<6>(args));
237 template <
typename R,
typename A1,
typename A2,
typename A3,
typename A4,
238 typename A5,
typename A6,
typename A7,
typename A8>
242 template <
typename Function>
244 A5, A6, A7, A8> & args)
247 return function(get<0>(args), get<1>(args), get<2>(args), get<3>(args),
248 get<4>(args), get<5>(args), get<6>(args), get<7>(args));
251 template <
class Class,
typename MethodPtr>
253 MethodPtr method_ptr,
254 const ::std::tr1::tuple<A1, A2, A3, A4, A5, A6, A7,
258 return (obj_ptr->*method_ptr)(get<0>(args), get<1>(args), get<2>(args),
259 get<3>(args), get<4>(args), get<5>(args), get<6>(args), get<7>(args));
263 template <
typename R,
typename A1,
typename A2,
typename A3,
typename A4,
264 typename A5,
typename A6,
typename A7,
typename A8,
typename A9>
268 template <
typename Function>
270 A5, A6, A7, A8, A9> & args)
273 return function(get<0>(args), get<1>(args), get<2>(args), get<3>(args),
274 get<4>(args), get<5>(args), get<6>(args), get<7>(args), get<8>(args));
277 template <
class Class,
typename MethodPtr>
279 MethodPtr method_ptr,
280 const ::std::tr1::tuple<A1, A2, A3, A4, A5, A6, A7, A8,
284 return (obj_ptr->*method_ptr)(get<0>(args), get<1>(args), get<2>(args),
285 get<3>(args), get<4>(args), get<5>(args), get<6>(args), get<7>(args),
290 template <
typename R,
typename A1,
typename A2,
typename A3,
typename A4,
291 typename A5,
typename A6,
typename A7,
typename A8,
typename A9,
293 class InvokeHelper<R, ::
std::tr1::tuple<A1, A2, A3, A4, A5, A6, A7, A8, A9,
297 template <
typename Function>
299 A5, A6, A7, A8, A9, A10> & args)
302 return function(get<0>(args), get<1>(args), get<2>(args), get<3>(args),
303 get<4>(args), get<5>(args), get<6>(args), get<7>(args), get<8>(args),
307 template <
class Class,
typename MethodPtr>
309 MethodPtr method_ptr,
310 const ::std::tr1::tuple<A1, A2, A3, A4, A5, A6, A7, A8,
314 return (obj_ptr->*method_ptr)(get<0>(args), get<1>(args), get<2>(args),
315 get<3>(args), get<4>(args), get<5>(args), get<6>(args), get<7>(args),
316 get<8>(args), get<9>(args));
330 template <
typename R>
335 template <
typename Function>
351 template <
typename Function,
typename A1>
355 template <
typename Function,
typename A1,
typename A2>
358 return function(a1, a2);
362 template <
typename Function,
typename A1,
typename A2,
typename A3>
365 return function(a1, a2, a3);
369 template <
typename Function,
typename A1,
typename A2,
typename A3,
373 return function(a1, a2, a3, a4);
377 template <
typename Function,
typename A1,
typename A2,
typename A3,
378 typename A4,
typename A5>
381 return function(a1, a2, a3, a4, a5);
385 template <
typename Function,
typename A1,
typename A2,
typename A3,
386 typename A4,
typename A5,
typename A6>
387 static R
Call(
Function function, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6)
389 return function(a1, a2, a3, a4, a5, a6);
393 template <
typename Function,
typename A1,
typename A2,
typename A3,
394 typename A4,
typename A5,
typename A6,
typename A7>
395 static R
Call(
Function function, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6,
398 return function(a1, a2, a3, a4, a5, a6, a7);
402 template <
typename Function,
typename A1,
typename A2,
typename A3,
403 typename A4,
typename A5,
typename A6,
typename A7,
typename A8>
404 static R
Call(
Function function, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6,
407 return function(a1, a2, a3, a4, a5, a6, a7, a8);
411 template <
typename Function,
typename A1,
typename A2,
typename A3,
412 typename A4,
typename A5,
typename A6,
typename A7,
typename A8,
414 static R
Call(
Function function, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6,
417 return function(a1, a2, a3, a4, a5, a6, a7, a8, a9);
421 template <
typename Function,
typename A1,
typename A2,
typename A3,
422 typename A4,
typename A5,
typename A6,
typename A7,
typename A8,
423 typename A9,
typename A10>
424 static R
Call(
Function function, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6,
425 A7 a7, A8 a8, A9 a9, A10 a10)
427 return function(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10);
433 #define GMOCK_FIELD_(Tuple, N) \ 434 typename ::std::tr1::tuple_element<N, Tuple>::type 454 template <
typename Result,
typename ArgumentTuple,
int k1,
int k2,
int k3,
455 int k4,
int k5,
int k6,
int k7,
int k8,
int k9,
int k10>
466 static SelectedArgs
Select(
const ArgumentTuple & args)
469 return SelectedArgs(get<k1>(args), get<k2>(args), get<k3>(args),
470 get<k4>(args), get<k5>(args), get<k6>(args), get<k7>(args),
471 get<k8>(args), get<k9>(args), get<k10>(args));
475 template <
typename Result,
typename ArgumentTuple>
477 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 >
482 static SelectedArgs
Select(
const ArgumentTuple & )
485 return SelectedArgs();
489 template <
typename Result,
typename ArgumentTuple,
int k1>
491 k1, -1, -1, -1, -1, -1, -1, -1, -1, -1 >
496 static SelectedArgs
Select(
const ArgumentTuple & args)
499 return SelectedArgs(get<k1>(args));
503 template <
typename Result,
typename ArgumentTuple,
int k1,
int k2>
505 k1, k2, -1, -1, -1, -1, -1, -1, -1, -1 >
511 static SelectedArgs
Select(
const ArgumentTuple & args)
514 return SelectedArgs(get<k1>(args), get<k2>(args));
518 template <
typename Result,
typename ArgumentTuple,
int k1,
int k2,
int k3>
520 k1, k2, k3, -1, -1, -1, -1, -1, -1, -1 >
526 static SelectedArgs
Select(
const ArgumentTuple & args)
529 return SelectedArgs(get<k1>(args), get<k2>(args), get<k3>(args));
533 template <
typename Result,
typename ArgumentTuple,
int k1,
int k2,
int k3,
536 k1, k2, k3, k4, -1, -1, -1, -1, -1, -1 >
543 static SelectedArgs
Select(
const ArgumentTuple & args)
546 return SelectedArgs(get<k1>(args), get<k2>(args), get<k3>(args),
551 template <
typename Result,
typename ArgumentTuple,
int k1,
int k2,
int k3,
554 k1, k2, k3, k4, k5, -1, -1, -1, -1, -1 >
561 static SelectedArgs
Select(
const ArgumentTuple & args)
564 return SelectedArgs(get<k1>(args), get<k2>(args), get<k3>(args),
565 get<k4>(args), get<k5>(args));
569 template <
typename Result,
typename ArgumentTuple,
int k1,
int k2,
int k3,
570 int k4,
int k5,
int k6>
572 k1, k2, k3, k4, k5, k6, -1, -1, -1, -1 >
580 static SelectedArgs
Select(
const ArgumentTuple & args)
583 return SelectedArgs(get<k1>(args), get<k2>(args), get<k3>(args),
584 get<k4>(args), get<k5>(args), get<k6>(args));
588 template <
typename Result,
typename ArgumentTuple,
int k1,
int k2,
int k3,
589 int k4,
int k5,
int k6,
int k7>
591 k1, k2, k3, k4, k5, k6, k7, -1, -1, -1 >
599 static SelectedArgs
Select(
const ArgumentTuple & args)
602 return SelectedArgs(get<k1>(args), get<k2>(args), get<k3>(args),
603 get<k4>(args), get<k5>(args), get<k6>(args), get<k7>(args));
607 template <
typename Result,
typename ArgumentTuple,
int k1,
int k2,
int k3,
608 int k4,
int k5,
int k6,
int k7,
int k8>
610 k1, k2, k3, k4, k5, k6, k7, k8, -1, -1 >
619 static SelectedArgs
Select(
const ArgumentTuple & args)
622 return SelectedArgs(get<k1>(args), get<k2>(args), get<k3>(args),
623 get<k4>(args), get<k5>(args), get<k6>(args), get<k7>(args),
628 template <
typename Result,
typename ArgumentTuple,
int k1,
int k2,
int k3,
629 int k4,
int k5,
int k6,
int k7,
int k8,
int k9>
631 k1, k2, k3, k4, k5, k6, k7, k8, k9, -1 >
640 static SelectedArgs
Select(
const ArgumentTuple & args)
643 return SelectedArgs(get<k1>(args), get<k2>(args), get<k3>(args),
644 get<k4>(args), get<k5>(args), get<k6>(args), get<k7>(args),
645 get<k8>(args), get<k9>(args));
652 template <
typename InnerAction,
int k1 = -1,
int k2 = -1,
int k3 = -1,
653 int k4 = -1,
int k5 = -1,
int k6 = -1,
int k7 = -1,
int k8 = -1,
654 int k9 = -1,
int k10 = -1 >
660 template <
typename F>
664 template <
typename F>
671 explicit Impl(
const InnerAction & action) : action_(action) {}
673 virtual Result
Perform(
const ArgumentTuple & args)
675 return action_.Perform(
SelectArgs<Result, ArgumentTuple, k1, k2, k3, k4,
676 k5, k6, k7, k8, k9, k10>::Select(args));
680 typedef typename SelectArgs<Result, ArgumentTuple,
686 const InnerAction action_;
708 template <
typename Result,
class Impl>
712 static Result
Perform(Impl * impl, const ::std::tr1::tuple<> & args)
715 return impl->template gmock_PerformImpl<>(args,
ExcessiveArg(),
721 template <
typename A0>
722 static Result
Perform(Impl * impl, const ::std::tr1::tuple<A0> & args)
725 return impl->template gmock_PerformImpl<A0>(args, get<0>(args),
731 template <
typename A0,
typename A1>
732 static Result
Perform(Impl * impl, const ::std::tr1::tuple<A0, A1> & args)
735 return impl->template gmock_PerformImpl<A0, A1>(args, get<0>(args),
741 template <
typename A0,
typename A1,
typename A2>
742 static Result
Perform(Impl * impl, const ::std::tr1::tuple<A0, A1, A2> & args)
745 return impl->template gmock_PerformImpl<A0, A1, A2>(args, get<0>(args),
751 template <
typename A0,
typename A1,
typename A2,
typename A3>
752 static Result
Perform(Impl * impl, const ::std::tr1::tuple<A0, A1, A2,
756 return impl->template gmock_PerformImpl<A0, A1, A2, A3>(args, get<0>(args),
757 get<1>(args), get<2>(args), get<3>(args),
ExcessiveArg(),
762 template <
typename A0,
typename A1,
typename A2,
typename A3,
typename A4>
763 static Result
Perform(Impl * impl, const ::std::tr1::tuple<A0, A1, A2, A3,
767 return impl->template gmock_PerformImpl<A0, A1, A2, A3, A4>(args,
768 get<0>(args), get<1>(args), get<2>(args), get<3>(args), get<4>(args),
773 template <
typename A0,
typename A1,
typename A2,
typename A3,
typename A4,
775 static Result
Perform(Impl * impl, const ::std::tr1::tuple<A0, A1, A2, A3, A4,
779 return impl->template gmock_PerformImpl<A0, A1, A2, A3, A4, A5>(args,
780 get<0>(args), get<1>(args), get<2>(args), get<3>(args), get<4>(args),
785 template <
typename A0,
typename A1,
typename A2,
typename A3,
typename A4,
786 typename A5,
typename A6>
787 static Result
Perform(Impl * impl, const ::std::tr1::tuple<A0, A1, A2, A3, A4,
791 return impl->template gmock_PerformImpl<A0, A1, A2, A3, A4, A5, A6>(args,
792 get<0>(args), get<1>(args), get<2>(args), get<3>(args), get<4>(args),
797 template <
typename A0,
typename A1,
typename A2,
typename A3,
typename A4,
798 typename A5,
typename A6,
typename A7>
799 static Result
Perform(Impl * impl, const ::std::tr1::tuple<A0, A1, A2, A3, A4,
803 return impl->template gmock_PerformImpl<A0, A1, A2, A3, A4, A5, A6,
804 A7>(args, get<0>(args), get<1>(args), get<2>(args), get<3>(args),
805 get<4>(args), get<5>(args), get<6>(args), get<7>(args),
ExcessiveArg(),
809 template <
typename A0,
typename A1,
typename A2,
typename A3,
typename A4,
810 typename A5,
typename A6,
typename A7,
typename A8>
811 static Result
Perform(Impl * impl, const ::std::tr1::tuple<A0, A1, A2, A3, A4,
812 A5, A6, A7, A8> & args)
815 return impl->template gmock_PerformImpl<A0, A1, A2, A3, A4, A5, A6, A7,
816 A8>(args, get<0>(args), get<1>(args), get<2>(args), get<3>(args),
817 get<4>(args), get<5>(args), get<6>(args), get<7>(args), get<8>(args),
821 template <
typename A0,
typename A1,
typename A2,
typename A3,
typename A4,
822 typename A5,
typename A6,
typename A7,
typename A8,
typename A9>
823 static Result
Perform(Impl * impl, const ::std::tr1::tuple<A0, A1, A2, A3, A4,
824 A5, A6, A7, A8, A9> & args)
827 return impl->template gmock_PerformImpl<A0, A1, A2, A3, A4, A5, A6, A7, A8,
828 A9>(args, get<0>(args), get<1>(args), get<2>(args), get<3>(args),
829 get<4>(args), get<5>(args), get<6>(args), get<7>(args), get<8>(args),
843 template <
int k1,
typename InnerAction>
845 WithArgs(
const InnerAction & action)
850 template <
int k1,
int k2,
typename InnerAction>
852 WithArgs(
const InnerAction & action)
857 template <
int k1,
int k2,
int k3,
typename InnerAction>
859 WithArgs(
const InnerAction & action)
864 template <
int k1,
int k2,
int k3,
int k4,
typename InnerAction>
866 WithArgs(
const InnerAction & action)
871 template <
int k1,
int k2,
int k3,
int k4,
int k5,
typename InnerAction>
873 WithArgs(
const InnerAction & action)
878 template <
int k1,
int k2,
int k3,
int k4,
int k5,
int k6,
typename InnerAction>
880 WithArgs(
const InnerAction & action)
885 template <
int k1,
int k2,
int k3,
int k4,
int k5,
int k6,
int k7,
886 typename InnerAction>
888 WithArgs(
const InnerAction & action)
894 template <
int k1,
int k2,
int k3,
int k4,
int k5,
int k6,
int k7,
int k8,
895 typename InnerAction>
897 WithArgs(
const InnerAction & action)
903 template <
int k1,
int k2,
int k3,
int k4,
int k5,
int k6,
int k7,
int k8,
904 int k9,
typename InnerAction>
906 WithArgs(
const InnerAction & action)
912 template <
int k1,
int k2,
int k3,
int k4,
int k5,
int k6,
int k7,
int k8,
913 int k9,
int k10,
typename InnerAction>
916 WithArgs(
const InnerAction & action)
924 template <
typename Action1,
typename Action2>
926 DoAll(Action1 a1, Action2 a2)
931 template <
typename Action1,
typename Action2,
typename Action3>
934 DoAll(Action1 a1, Action2 a2, Action3 a3)
939 template <
typename Action1,
typename Action2,
typename Action3,
943 DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4)
948 template <
typename Action1,
typename Action2,
typename Action3,
949 typename Action4,
typename Action5>
953 DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5)
958 template <
typename Action1,
typename Action2,
typename Action3,
959 typename Action4,
typename Action5,
typename Action6>
963 DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6)
968 template <
typename Action1,
typename Action2,
typename Action3,
969 typename Action4,
typename Action5,
typename Action6,
typename Action7>
974 DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
977 return DoAll(a1,
DoAll(a2, a3, a4, a5, a6, a7));
980 template <
typename Action1,
typename Action2,
typename Action3,
981 typename Action4,
typename Action5,
typename Action6,
typename Action7,
987 DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
988 Action7 a7, Action8 a8)
990 return DoAll(a1,
DoAll(a2, a3, a4, a5, a6, a7, a8));
993 template <
typename Action1,
typename Action2,
typename Action3,
994 typename Action4,
typename Action5,
typename Action6,
typename Action7,
995 typename Action8,
typename Action9>
1000 Action9> > > > > > > >
1001 DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
1002 Action7 a7, Action8 a8, Action9 a9)
1004 return DoAll(a1,
DoAll(a2, a3, a4, a5, a6, a7, a8, a9));
1007 template <
typename Action1,
typename Action2,
typename Action3,
1008 typename Action4,
typename Action5,
typename Action6,
typename Action7,
1009 typename Action8,
typename Action9,
typename Action10>
1015 DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
1016 Action7 a7, Action8 a8, Action9 a9, Action10 a10)
1018 return DoAll(a1,
DoAll(a2, a3, a4, a5, a6, a7, a8, a9, a10));
1120 #define GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_\ 1121 const args_type& args GTEST_ATTRIBUTE_UNUSED_, \ 1122 arg0_type arg0 GTEST_ATTRIBUTE_UNUSED_, \ 1123 arg1_type arg1 GTEST_ATTRIBUTE_UNUSED_, \ 1124 arg2_type arg2 GTEST_ATTRIBUTE_UNUSED_, \ 1125 arg3_type arg3 GTEST_ATTRIBUTE_UNUSED_, \ 1126 arg4_type arg4 GTEST_ATTRIBUTE_UNUSED_, \ 1127 arg5_type arg5 GTEST_ATTRIBUTE_UNUSED_, \ 1128 arg6_type arg6 GTEST_ATTRIBUTE_UNUSED_, \ 1129 arg7_type arg7 GTEST_ATTRIBUTE_UNUSED_, \ 1130 arg8_type arg8 GTEST_ATTRIBUTE_UNUSED_, \ 1131 arg9_type arg9 GTEST_ATTRIBUTE_UNUSED_ 1215 #define GMOCK_INTERNAL_DECL_HAS_1_TEMPLATE_PARAMS(kind0, name0) kind0 name0 1216 #define GMOCK_INTERNAL_DECL_HAS_2_TEMPLATE_PARAMS(kind0, name0, kind1, \ 1217 name1) kind0 name0, kind1 name1 1218 #define GMOCK_INTERNAL_DECL_HAS_3_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \ 1219 kind2, name2) kind0 name0, kind1 name1, kind2 name2 1220 #define GMOCK_INTERNAL_DECL_HAS_4_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \ 1221 kind2, name2, kind3, name3) kind0 name0, kind1 name1, kind2 name2, \ 1223 #define GMOCK_INTERNAL_DECL_HAS_5_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \ 1224 kind2, name2, kind3, name3, kind4, name4) kind0 name0, kind1 name1, \ 1225 kind2 name2, kind3 name3, kind4 name4 1226 #define GMOCK_INTERNAL_DECL_HAS_6_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \ 1227 kind2, name2, kind3, name3, kind4, name4, kind5, name5) kind0 name0, \ 1228 kind1 name1, kind2 name2, kind3 name3, kind4 name4, kind5 name5 1229 #define GMOCK_INTERNAL_DECL_HAS_7_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \ 1230 kind2, name2, kind3, name3, kind4, name4, kind5, name5, kind6, \ 1231 name6) kind0 name0, kind1 name1, kind2 name2, kind3 name3, kind4 name4, \ 1232 kind5 name5, kind6 name6 1233 #define GMOCK_INTERNAL_DECL_HAS_8_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \ 1234 kind2, name2, kind3, name3, kind4, name4, kind5, name5, kind6, name6, \ 1235 kind7, name7) kind0 name0, kind1 name1, kind2 name2, kind3 name3, \ 1236 kind4 name4, kind5 name5, kind6 name6, kind7 name7 1237 #define GMOCK_INTERNAL_DECL_HAS_9_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \ 1238 kind2, name2, kind3, name3, kind4, name4, kind5, name5, kind6, name6, \ 1239 kind7, name7, kind8, name8) kind0 name0, kind1 name1, kind2 name2, \ 1240 kind3 name3, kind4 name4, kind5 name5, kind6 name6, kind7 name7, \ 1242 #define GMOCK_INTERNAL_DECL_HAS_10_TEMPLATE_PARAMS(kind0, name0, kind1, \ 1243 name1, kind2, name2, kind3, name3, kind4, name4, kind5, name5, kind6, \ 1244 name6, kind7, name7, kind8, name8, kind9, name9) kind0 name0, \ 1245 kind1 name1, kind2 name2, kind3 name3, kind4 name4, kind5 name5, \ 1246 kind6 name6, kind7 name7, kind8 name8, kind9 name9 1249 #define GMOCK_INTERNAL_LIST_HAS_1_TEMPLATE_PARAMS(kind0, name0) name0 1250 #define GMOCK_INTERNAL_LIST_HAS_2_TEMPLATE_PARAMS(kind0, name0, kind1, \ 1252 #define GMOCK_INTERNAL_LIST_HAS_3_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \ 1253 kind2, name2) name0, name1, name2 1254 #define GMOCK_INTERNAL_LIST_HAS_4_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \ 1255 kind2, name2, kind3, name3) name0, name1, name2, name3 1256 #define GMOCK_INTERNAL_LIST_HAS_5_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \ 1257 kind2, name2, kind3, name3, kind4, name4) name0, name1, name2, name3, \ 1259 #define GMOCK_INTERNAL_LIST_HAS_6_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \ 1260 kind2, name2, kind3, name3, kind4, name4, kind5, name5) name0, name1, \ 1261 name2, name3, name4, name5 1262 #define GMOCK_INTERNAL_LIST_HAS_7_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \ 1263 kind2, name2, kind3, name3, kind4, name4, kind5, name5, kind6, \ 1264 name6) name0, name1, name2, name3, name4, name5, name6 1265 #define GMOCK_INTERNAL_LIST_HAS_8_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \ 1266 kind2, name2, kind3, name3, kind4, name4, kind5, name5, kind6, name6, \ 1267 kind7, name7) name0, name1, name2, name3, name4, name5, name6, name7 1268 #define GMOCK_INTERNAL_LIST_HAS_9_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \ 1269 kind2, name2, kind3, name3, kind4, name4, kind5, name5, kind6, name6, \ 1270 kind7, name7, kind8, name8) name0, name1, name2, name3, name4, name5, \ 1272 #define GMOCK_INTERNAL_LIST_HAS_10_TEMPLATE_PARAMS(kind0, name0, kind1, \ 1273 name1, kind2, name2, kind3, name3, kind4, name4, kind5, name5, kind6, \ 1274 name6, kind7, name7, kind8, name8, kind9, name9) name0, name1, name2, \ 1275 name3, name4, name5, name6, name7, name8, name9 1278 #define GMOCK_INTERNAL_DECL_TYPE_AND_0_VALUE_PARAMS() 1279 #define GMOCK_INTERNAL_DECL_TYPE_AND_1_VALUE_PARAMS(p0) , typename p0##_type 1280 #define GMOCK_INTERNAL_DECL_TYPE_AND_2_VALUE_PARAMS(p0, p1) , \ 1281 typename p0##_type, typename p1##_type 1282 #define GMOCK_INTERNAL_DECL_TYPE_AND_3_VALUE_PARAMS(p0, p1, p2) , \ 1283 typename p0##_type, typename p1##_type, typename p2##_type 1284 #define GMOCK_INTERNAL_DECL_TYPE_AND_4_VALUE_PARAMS(p0, p1, p2, p3) , \ 1285 typename p0##_type, typename p1##_type, typename p2##_type, \ 1287 #define GMOCK_INTERNAL_DECL_TYPE_AND_5_VALUE_PARAMS(p0, p1, p2, p3, p4) , \ 1288 typename p0##_type, typename p1##_type, typename p2##_type, \ 1289 typename p3##_type, typename p4##_type 1290 #define GMOCK_INTERNAL_DECL_TYPE_AND_6_VALUE_PARAMS(p0, p1, p2, p3, p4, p5) , \ 1291 typename p0##_type, typename p1##_type, typename p2##_type, \ 1292 typename p3##_type, typename p4##_type, typename p5##_type 1293 #define GMOCK_INTERNAL_DECL_TYPE_AND_7_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \ 1294 p6) , typename p0##_type, typename p1##_type, typename p2##_type, \ 1295 typename p3##_type, typename p4##_type, typename p5##_type, \ 1297 #define GMOCK_INTERNAL_DECL_TYPE_AND_8_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \ 1298 p6, p7) , typename p0##_type, typename p1##_type, typename p2##_type, \ 1299 typename p3##_type, typename p4##_type, typename p5##_type, \ 1300 typename p6##_type, typename p7##_type 1301 #define GMOCK_INTERNAL_DECL_TYPE_AND_9_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \ 1302 p6, p7, p8) , typename p0##_type, typename p1##_type, typename p2##_type, \ 1303 typename p3##_type, typename p4##_type, typename p5##_type, \ 1304 typename p6##_type, typename p7##_type, typename p8##_type 1305 #define GMOCK_INTERNAL_DECL_TYPE_AND_10_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \ 1306 p6, p7, p8, p9) , typename p0##_type, typename p1##_type, \ 1307 typename p2##_type, typename p3##_type, typename p4##_type, \ 1308 typename p5##_type, typename p6##_type, typename p7##_type, \ 1309 typename p8##_type, typename p9##_type 1312 #define GMOCK_INTERNAL_INIT_AND_0_VALUE_PARAMS()\ 1314 #define GMOCK_INTERNAL_INIT_AND_1_VALUE_PARAMS(p0)\ 1315 (p0##_type gmock_p0) : p0(gmock_p0) 1316 #define GMOCK_INTERNAL_INIT_AND_2_VALUE_PARAMS(p0, p1)\ 1317 (p0##_type gmock_p0, p1##_type gmock_p1) : p0(gmock_p0), p1(gmock_p1) 1318 #define GMOCK_INTERNAL_INIT_AND_3_VALUE_PARAMS(p0, p1, p2)\ 1319 (p0##_type gmock_p0, p1##_type gmock_p1, \ 1320 p2##_type gmock_p2) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2) 1321 #define GMOCK_INTERNAL_INIT_AND_4_VALUE_PARAMS(p0, p1, p2, p3)\ 1322 (p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \ 1323 p3##_type gmock_p3) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), \ 1325 #define GMOCK_INTERNAL_INIT_AND_5_VALUE_PARAMS(p0, p1, p2, p3, p4)\ 1326 (p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \ 1327 p3##_type gmock_p3, p4##_type gmock_p4) : p0(gmock_p0), p1(gmock_p1), \ 1328 p2(gmock_p2), p3(gmock_p3), p4(gmock_p4) 1329 #define GMOCK_INTERNAL_INIT_AND_6_VALUE_PARAMS(p0, p1, p2, p3, p4, p5)\ 1330 (p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \ 1331 p3##_type gmock_p3, p4##_type gmock_p4, \ 1332 p5##_type gmock_p5) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), \ 1333 p3(gmock_p3), p4(gmock_p4), p5(gmock_p5) 1334 #define GMOCK_INTERNAL_INIT_AND_7_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6)\ 1335 (p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \ 1336 p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \ 1337 p6##_type gmock_p6) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), \ 1338 p3(gmock_p3), p4(gmock_p4), p5(gmock_p5), p6(gmock_p6) 1339 #define GMOCK_INTERNAL_INIT_AND_8_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, p7)\ 1340 (p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \ 1341 p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \ 1342 p6##_type gmock_p6, p7##_type gmock_p7) : p0(gmock_p0), p1(gmock_p1), \ 1343 p2(gmock_p2), p3(gmock_p3), p4(gmock_p4), p5(gmock_p5), p6(gmock_p6), \ 1345 #define GMOCK_INTERNAL_INIT_AND_9_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \ 1347 (p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \ 1348 p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \ 1349 p6##_type gmock_p6, p7##_type gmock_p7, \ 1350 p8##_type gmock_p8) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), \ 1351 p3(gmock_p3), p4(gmock_p4), p5(gmock_p5), p6(gmock_p6), p7(gmock_p7), \ 1353 #define GMOCK_INTERNAL_INIT_AND_10_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \ 1355 (p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \ 1356 p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \ 1357 p6##_type gmock_p6, p7##_type gmock_p7, p8##_type gmock_p8, \ 1358 p9##_type gmock_p9) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), \ 1359 p3(gmock_p3), p4(gmock_p4), p5(gmock_p5), p6(gmock_p6), p7(gmock_p7), \ 1360 p8(gmock_p8), p9(gmock_p9) 1363 #define GMOCK_INTERNAL_DEFN_AND_0_VALUE_PARAMS() 1364 #define GMOCK_INTERNAL_DEFN_AND_1_VALUE_PARAMS(p0) p0##_type p0; 1365 #define GMOCK_INTERNAL_DEFN_AND_2_VALUE_PARAMS(p0, p1) p0##_type p0; \ 1367 #define GMOCK_INTERNAL_DEFN_AND_3_VALUE_PARAMS(p0, p1, p2) p0##_type p0; \ 1368 p1##_type p1; p2##_type p2; 1369 #define GMOCK_INTERNAL_DEFN_AND_4_VALUE_PARAMS(p0, p1, p2, p3) p0##_type p0; \ 1370 p1##_type p1; p2##_type p2; p3##_type p3; 1371 #define GMOCK_INTERNAL_DEFN_AND_5_VALUE_PARAMS(p0, p1, p2, p3, \ 1372 p4) p0##_type p0; p1##_type p1; p2##_type p2; p3##_type p3; p4##_type p4; 1373 #define GMOCK_INTERNAL_DEFN_AND_6_VALUE_PARAMS(p0, p1, p2, p3, p4, \ 1374 p5) p0##_type p0; p1##_type p1; p2##_type p2; p3##_type p3; p4##_type p4; \ 1376 #define GMOCK_INTERNAL_DEFN_AND_7_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \ 1377 p6) p0##_type p0; p1##_type p1; p2##_type p2; p3##_type p3; p4##_type p4; \ 1378 p5##_type p5; p6##_type p6; 1379 #define GMOCK_INTERNAL_DEFN_AND_8_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \ 1380 p7) p0##_type p0; p1##_type p1; p2##_type p2; p3##_type p3; p4##_type p4; \ 1381 p5##_type p5; p6##_type p6; p7##_type p7; 1382 #define GMOCK_INTERNAL_DEFN_AND_9_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \ 1383 p7, p8) p0##_type p0; p1##_type p1; p2##_type p2; p3##_type p3; \ 1384 p4##_type p4; p5##_type p5; p6##_type p6; p7##_type p7; p8##_type p8; 1385 #define GMOCK_INTERNAL_DEFN_AND_10_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \ 1386 p7, p8, p9) p0##_type p0; p1##_type p1; p2##_type p2; p3##_type p3; \ 1387 p4##_type p4; p5##_type p5; p6##_type p6; p7##_type p7; p8##_type p8; \ 1391 #define GMOCK_INTERNAL_LIST_AND_0_VALUE_PARAMS() 1392 #define GMOCK_INTERNAL_LIST_AND_1_VALUE_PARAMS(p0) p0 1393 #define GMOCK_INTERNAL_LIST_AND_2_VALUE_PARAMS(p0, p1) p0, p1 1394 #define GMOCK_INTERNAL_LIST_AND_3_VALUE_PARAMS(p0, p1, p2) p0, p1, p2 1395 #define GMOCK_INTERNAL_LIST_AND_4_VALUE_PARAMS(p0, p1, p2, p3) p0, p1, p2, p3 1396 #define GMOCK_INTERNAL_LIST_AND_5_VALUE_PARAMS(p0, p1, p2, p3, p4) p0, p1, \ 1398 #define GMOCK_INTERNAL_LIST_AND_6_VALUE_PARAMS(p0, p1, p2, p3, p4, p5) p0, \ 1400 #define GMOCK_INTERNAL_LIST_AND_7_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \ 1401 p6) p0, p1, p2, p3, p4, p5, p6 1402 #define GMOCK_INTERNAL_LIST_AND_8_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \ 1403 p7) p0, p1, p2, p3, p4, p5, p6, p7 1404 #define GMOCK_INTERNAL_LIST_AND_9_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \ 1405 p7, p8) p0, p1, p2, p3, p4, p5, p6, p7, p8 1406 #define GMOCK_INTERNAL_LIST_AND_10_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \ 1407 p7, p8, p9) p0, p1, p2, p3, p4, p5, p6, p7, p8, p9 1410 #define GMOCK_INTERNAL_LIST_TYPE_AND_0_VALUE_PARAMS() 1411 #define GMOCK_INTERNAL_LIST_TYPE_AND_1_VALUE_PARAMS(p0) , p0##_type 1412 #define GMOCK_INTERNAL_LIST_TYPE_AND_2_VALUE_PARAMS(p0, p1) , p0##_type, \ 1414 #define GMOCK_INTERNAL_LIST_TYPE_AND_3_VALUE_PARAMS(p0, p1, p2) , p0##_type, \ 1415 p1##_type, p2##_type 1416 #define GMOCK_INTERNAL_LIST_TYPE_AND_4_VALUE_PARAMS(p0, p1, p2, p3) , \ 1417 p0##_type, p1##_type, p2##_type, p3##_type 1418 #define GMOCK_INTERNAL_LIST_TYPE_AND_5_VALUE_PARAMS(p0, p1, p2, p3, p4) , \ 1419 p0##_type, p1##_type, p2##_type, p3##_type, p4##_type 1420 #define GMOCK_INTERNAL_LIST_TYPE_AND_6_VALUE_PARAMS(p0, p1, p2, p3, p4, p5) , \ 1421 p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, p5##_type 1422 #define GMOCK_INTERNAL_LIST_TYPE_AND_7_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \ 1423 p6) , p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, p5##_type, \ 1425 #define GMOCK_INTERNAL_LIST_TYPE_AND_8_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \ 1426 p6, p7) , p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, \ 1427 p5##_type, p6##_type, p7##_type 1428 #define GMOCK_INTERNAL_LIST_TYPE_AND_9_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \ 1429 p6, p7, p8) , p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, \ 1430 p5##_type, p6##_type, p7##_type, p8##_type 1431 #define GMOCK_INTERNAL_LIST_TYPE_AND_10_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \ 1432 p6, p7, p8, p9) , p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, \ 1433 p5##_type, p6##_type, p7##_type, p8##_type, p9##_type 1436 #define GMOCK_INTERNAL_DECL_AND_0_VALUE_PARAMS() 1437 #define GMOCK_INTERNAL_DECL_AND_1_VALUE_PARAMS(p0) p0##_type p0 1438 #define GMOCK_INTERNAL_DECL_AND_2_VALUE_PARAMS(p0, p1) p0##_type p0, \ 1440 #define GMOCK_INTERNAL_DECL_AND_3_VALUE_PARAMS(p0, p1, p2) p0##_type p0, \ 1441 p1##_type p1, p2##_type p2 1442 #define GMOCK_INTERNAL_DECL_AND_4_VALUE_PARAMS(p0, p1, p2, p3) p0##_type p0, \ 1443 p1##_type p1, p2##_type p2, p3##_type p3 1444 #define GMOCK_INTERNAL_DECL_AND_5_VALUE_PARAMS(p0, p1, p2, p3, \ 1445 p4) p0##_type p0, p1##_type p1, p2##_type p2, p3##_type p3, p4##_type p4 1446 #define GMOCK_INTERNAL_DECL_AND_6_VALUE_PARAMS(p0, p1, p2, p3, p4, \ 1447 p5) p0##_type p0, p1##_type p1, p2##_type p2, p3##_type p3, p4##_type p4, \ 1449 #define GMOCK_INTERNAL_DECL_AND_7_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \ 1450 p6) p0##_type p0, p1##_type p1, p2##_type p2, p3##_type p3, p4##_type p4, \ 1451 p5##_type p5, p6##_type p6 1452 #define GMOCK_INTERNAL_DECL_AND_8_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \ 1453 p7) p0##_type p0, p1##_type p1, p2##_type p2, p3##_type p3, p4##_type p4, \ 1454 p5##_type p5, p6##_type p6, p7##_type p7 1455 #define GMOCK_INTERNAL_DECL_AND_9_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \ 1456 p7, p8) p0##_type p0, p1##_type p1, p2##_type p2, p3##_type p3, \ 1457 p4##_type p4, p5##_type p5, p6##_type p6, p7##_type p7, p8##_type p8 1458 #define GMOCK_INTERNAL_DECL_AND_10_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \ 1459 p7, p8, p9) p0##_type p0, p1##_type p1, p2##_type p2, p3##_type p3, \ 1460 p4##_type p4, p5##_type p5, p6##_type p6, p7##_type p7, p8##_type p8, \ 1464 #define GMOCK_INTERNAL_COUNT_AND_0_VALUE_PARAMS() 1465 #define GMOCK_INTERNAL_COUNT_AND_1_VALUE_PARAMS(p0) P 1466 #define GMOCK_INTERNAL_COUNT_AND_2_VALUE_PARAMS(p0, p1) P2 1467 #define GMOCK_INTERNAL_COUNT_AND_3_VALUE_PARAMS(p0, p1, p2) P3 1468 #define GMOCK_INTERNAL_COUNT_AND_4_VALUE_PARAMS(p0, p1, p2, p3) P4 1469 #define GMOCK_INTERNAL_COUNT_AND_5_VALUE_PARAMS(p0, p1, p2, p3, p4) P5 1470 #define GMOCK_INTERNAL_COUNT_AND_6_VALUE_PARAMS(p0, p1, p2, p3, p4, p5) P6 1471 #define GMOCK_INTERNAL_COUNT_AND_7_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6) P7 1472 #define GMOCK_INTERNAL_COUNT_AND_8_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \ 1474 #define GMOCK_INTERNAL_COUNT_AND_9_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \ 1476 #define GMOCK_INTERNAL_COUNT_AND_10_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \ 1480 #define GMOCK_ACTION_CLASS_(name, value_params)\ 1481 GTEST_CONCAT_TOKEN_(name##Action, GMOCK_INTERNAL_COUNT_##value_params) 1483 #define ACTION_TEMPLATE(name, template_params, value_params)\ 1484 template <GMOCK_INTERNAL_DECL_##template_params\ 1485 GMOCK_INTERNAL_DECL_TYPE_##value_params>\ 1486 class GMOCK_ACTION_CLASS_(name, value_params) {\ 1488 GMOCK_ACTION_CLASS_(name, value_params)\ 1489 GMOCK_INTERNAL_INIT_##value_params {}\ 1490 template <typename F>\ 1491 class gmock_Impl : public ::testing::ActionInterface<F> {\ 1493 typedef F function_type;\ 1494 typedef typename ::testing::internal::Function<F>::Result return_type;\ 1495 typedef typename ::testing::internal::Function<F>::ArgumentTuple\ 1497 explicit gmock_Impl GMOCK_INTERNAL_INIT_##value_params {}\ 1498 virtual return_type Perform(const args_type& args) {\ 1499 return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\ 1500 Perform(this, args);\ 1502 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 1503 typename arg3_type, typename arg4_type, typename arg5_type, \ 1504 typename arg6_type, typename arg7_type, typename arg8_type, \ 1505 typename arg9_type>\ 1506 return_type gmock_PerformImpl(const args_type& args, arg0_type arg0, \ 1507 arg1_type arg1, arg2_type arg2, arg3_type arg3, arg4_type arg4, \ 1508 arg5_type arg5, arg6_type arg6, arg7_type arg7, arg8_type arg8, \ 1509 arg9_type arg9) const;\ 1510 GMOCK_INTERNAL_DEFN_##value_params\ 1512 GTEST_DISALLOW_ASSIGN_(gmock_Impl);\ 1514 template <typename F> operator ::testing::Action<F>() const {\ 1515 return ::testing::Action<F>(\ 1516 new gmock_Impl<F>(GMOCK_INTERNAL_LIST_##value_params));\ 1518 GMOCK_INTERNAL_DEFN_##value_params\ 1520 GTEST_DISALLOW_ASSIGN_(GMOCK_ACTION_CLASS_(name, value_params));\ 1522 template <GMOCK_INTERNAL_DECL_##template_params\ 1523 GMOCK_INTERNAL_DECL_TYPE_##value_params>\ 1524 inline GMOCK_ACTION_CLASS_(name, value_params)<\ 1525 GMOCK_INTERNAL_LIST_##template_params\ 1526 GMOCK_INTERNAL_LIST_TYPE_##value_params> name(\ 1527 GMOCK_INTERNAL_DECL_##value_params) {\ 1528 return GMOCK_ACTION_CLASS_(name, value_params)<\ 1529 GMOCK_INTERNAL_LIST_##template_params\ 1530 GMOCK_INTERNAL_LIST_TYPE_##value_params>(\ 1531 GMOCK_INTERNAL_LIST_##value_params);\ 1533 template <GMOCK_INTERNAL_DECL_##template_params\ 1534 GMOCK_INTERNAL_DECL_TYPE_##value_params>\ 1535 template <typename F>\ 1536 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 1537 typename arg3_type, typename arg4_type, typename arg5_type, \ 1538 typename arg6_type, typename arg7_type, typename arg8_type, \ 1539 typename arg9_type>\ 1540 typename ::testing::internal::Function<F>::Result\ 1541 GMOCK_ACTION_CLASS_(name, value_params)<\ 1542 GMOCK_INTERNAL_LIST_##template_params\ 1543 GMOCK_INTERNAL_LIST_TYPE_##value_params>::gmock_Impl<F>::\ 1545 GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const 1547 #define ACTION(name)\ 1548 class name##Action {\ 1551 template <typename F>\ 1552 class gmock_Impl : public ::testing::ActionInterface<F> {\ 1554 typedef F function_type;\ 1555 typedef typename ::testing::internal::Function<F>::Result return_type;\ 1556 typedef typename ::testing::internal::Function<F>::ArgumentTuple\ 1559 virtual return_type Perform(const args_type& args) {\ 1560 return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\ 1561 Perform(this, args);\ 1563 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 1564 typename arg3_type, typename arg4_type, typename arg5_type, \ 1565 typename arg6_type, typename arg7_type, typename arg8_type, \ 1566 typename arg9_type>\ 1567 return_type gmock_PerformImpl(const args_type& args, arg0_type arg0, \ 1568 arg1_type arg1, arg2_type arg2, arg3_type arg3, arg4_type arg4, \ 1569 arg5_type arg5, arg6_type arg6, arg7_type arg7, arg8_type arg8, \ 1570 arg9_type arg9) const;\ 1572 GTEST_DISALLOW_ASSIGN_(gmock_Impl);\ 1574 template <typename F> operator ::testing::Action<F>() const {\ 1575 return ::testing::Action<F>(new gmock_Impl<F>());\ 1578 GTEST_DISALLOW_ASSIGN_(name##Action);\ 1580 inline name##Action name() {\ 1581 return name##Action();\ 1583 template <typename F>\ 1584 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 1585 typename arg3_type, typename arg4_type, typename arg5_type, \ 1586 typename arg6_type, typename arg7_type, typename arg8_type, \ 1587 typename arg9_type>\ 1588 typename ::testing::internal::Function<F>::Result\ 1589 name##Action::gmock_Impl<F>::gmock_PerformImpl(\ 1590 GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const 1592 #define ACTION_P(name, p0)\ 1593 template <typename p0##_type>\ 1594 class name##ActionP {\ 1596 name##ActionP(p0##_type gmock_p0) : p0(gmock_p0) {}\ 1597 template <typename F>\ 1598 class gmock_Impl : public ::testing::ActionInterface<F> {\ 1600 typedef F function_type;\ 1601 typedef typename ::testing::internal::Function<F>::Result return_type;\ 1602 typedef typename ::testing::internal::Function<F>::ArgumentTuple\ 1604 explicit gmock_Impl(p0##_type gmock_p0) : p0(gmock_p0) {}\ 1605 virtual return_type Perform(const args_type& args) {\ 1606 return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\ 1607 Perform(this, args);\ 1609 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 1610 typename arg3_type, typename arg4_type, typename arg5_type, \ 1611 typename arg6_type, typename arg7_type, typename arg8_type, \ 1612 typename arg9_type>\ 1613 return_type gmock_PerformImpl(const args_type& args, arg0_type arg0, \ 1614 arg1_type arg1, arg2_type arg2, arg3_type arg3, arg4_type arg4, \ 1615 arg5_type arg5, arg6_type arg6, arg7_type arg7, arg8_type arg8, \ 1616 arg9_type arg9) const;\ 1619 GTEST_DISALLOW_ASSIGN_(gmock_Impl);\ 1621 template <typename F> operator ::testing::Action<F>() const {\ 1622 return ::testing::Action<F>(new gmock_Impl<F>(p0));\ 1626 GTEST_DISALLOW_ASSIGN_(name##ActionP);\ 1628 template <typename p0##_type>\ 1629 inline name##ActionP<p0##_type> name(p0##_type p0) {\ 1630 return name##ActionP<p0##_type>(p0);\ 1632 template <typename p0##_type>\ 1633 template <typename F>\ 1634 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 1635 typename arg3_type, typename arg4_type, typename arg5_type, \ 1636 typename arg6_type, typename arg7_type, typename arg8_type, \ 1637 typename arg9_type>\ 1638 typename ::testing::internal::Function<F>::Result\ 1639 name##ActionP<p0##_type>::gmock_Impl<F>::gmock_PerformImpl(\ 1640 GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const 1642 #define ACTION_P2(name, p0, p1)\ 1643 template <typename p0##_type, typename p1##_type>\ 1644 class name##ActionP2 {\ 1646 name##ActionP2(p0##_type gmock_p0, p1##_type gmock_p1) : p0(gmock_p0), \ 1648 template <typename F>\ 1649 class gmock_Impl : public ::testing::ActionInterface<F> {\ 1651 typedef F function_type;\ 1652 typedef typename ::testing::internal::Function<F>::Result return_type;\ 1653 typedef typename ::testing::internal::Function<F>::ArgumentTuple\ 1655 gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1) : p0(gmock_p0), \ 1657 virtual return_type Perform(const args_type& args) {\ 1658 return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\ 1659 Perform(this, args);\ 1661 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 1662 typename arg3_type, typename arg4_type, typename arg5_type, \ 1663 typename arg6_type, typename arg7_type, typename arg8_type, \ 1664 typename arg9_type>\ 1665 return_type gmock_PerformImpl(const args_type& args, arg0_type arg0, \ 1666 arg1_type arg1, arg2_type arg2, arg3_type arg3, arg4_type arg4, \ 1667 arg5_type arg5, arg6_type arg6, arg7_type arg7, arg8_type arg8, \ 1668 arg9_type arg9) const;\ 1672 GTEST_DISALLOW_ASSIGN_(gmock_Impl);\ 1674 template <typename F> operator ::testing::Action<F>() const {\ 1675 return ::testing::Action<F>(new gmock_Impl<F>(p0, p1));\ 1680 GTEST_DISALLOW_ASSIGN_(name##ActionP2);\ 1682 template <typename p0##_type, typename p1##_type>\ 1683 inline name##ActionP2<p0##_type, p1##_type> name(p0##_type p0, \ 1685 return name##ActionP2<p0##_type, p1##_type>(p0, p1);\ 1687 template <typename p0##_type, typename p1##_type>\ 1688 template <typename F>\ 1689 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 1690 typename arg3_type, typename arg4_type, typename arg5_type, \ 1691 typename arg6_type, typename arg7_type, typename arg8_type, \ 1692 typename arg9_type>\ 1693 typename ::testing::internal::Function<F>::Result\ 1694 name##ActionP2<p0##_type, p1##_type>::gmock_Impl<F>::gmock_PerformImpl(\ 1695 GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const 1697 #define ACTION_P3(name, p0, p1, p2)\ 1698 template <typename p0##_type, typename p1##_type, typename p2##_type>\ 1699 class name##ActionP3 {\ 1701 name##ActionP3(p0##_type gmock_p0, p1##_type gmock_p1, \ 1702 p2##_type gmock_p2) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2) {}\ 1703 template <typename F>\ 1704 class gmock_Impl : public ::testing::ActionInterface<F> {\ 1706 typedef F function_type;\ 1707 typedef typename ::testing::internal::Function<F>::Result return_type;\ 1708 typedef typename ::testing::internal::Function<F>::ArgumentTuple\ 1710 gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, \ 1711 p2##_type gmock_p2) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2) {}\ 1712 virtual return_type Perform(const args_type& args) {\ 1713 return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\ 1714 Perform(this, args);\ 1716 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 1717 typename arg3_type, typename arg4_type, typename arg5_type, \ 1718 typename arg6_type, typename arg7_type, typename arg8_type, \ 1719 typename arg9_type>\ 1720 return_type gmock_PerformImpl(const args_type& args, arg0_type arg0, \ 1721 arg1_type arg1, arg2_type arg2, arg3_type arg3, arg4_type arg4, \ 1722 arg5_type arg5, arg6_type arg6, arg7_type arg7, arg8_type arg8, \ 1723 arg9_type arg9) const;\ 1728 GTEST_DISALLOW_ASSIGN_(gmock_Impl);\ 1730 template <typename F> operator ::testing::Action<F>() const {\ 1731 return ::testing::Action<F>(new gmock_Impl<F>(p0, p1, p2));\ 1737 GTEST_DISALLOW_ASSIGN_(name##ActionP3);\ 1739 template <typename p0##_type, typename p1##_type, typename p2##_type>\ 1740 inline name##ActionP3<p0##_type, p1##_type, p2##_type> name(p0##_type p0, \ 1741 p1##_type p1, p2##_type p2) {\ 1742 return name##ActionP3<p0##_type, p1##_type, p2##_type>(p0, p1, p2);\ 1744 template <typename p0##_type, typename p1##_type, typename p2##_type>\ 1745 template <typename F>\ 1746 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 1747 typename arg3_type, typename arg4_type, typename arg5_type, \ 1748 typename arg6_type, typename arg7_type, typename arg8_type, \ 1749 typename arg9_type>\ 1750 typename ::testing::internal::Function<F>::Result\ 1751 name##ActionP3<p0##_type, p1##_type, \ 1752 p2##_type>::gmock_Impl<F>::gmock_PerformImpl(\ 1753 GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const 1755 #define ACTION_P4(name, p0, p1, p2, p3)\ 1756 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 1757 typename p3##_type>\ 1758 class name##ActionP4 {\ 1760 name##ActionP4(p0##_type gmock_p0, p1##_type gmock_p1, \ 1761 p2##_type gmock_p2, p3##_type gmock_p3) : p0(gmock_p0), p1(gmock_p1), \ 1762 p2(gmock_p2), p3(gmock_p3) {}\ 1763 template <typename F>\ 1764 class gmock_Impl : public ::testing::ActionInterface<F> {\ 1766 typedef F function_type;\ 1767 typedef typename ::testing::internal::Function<F>::Result return_type;\ 1768 typedef typename ::testing::internal::Function<F>::ArgumentTuple\ 1770 gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \ 1771 p3##_type gmock_p3) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), \ 1773 virtual return_type Perform(const args_type& args) {\ 1774 return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\ 1775 Perform(this, args);\ 1777 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 1778 typename arg3_type, typename arg4_type, typename arg5_type, \ 1779 typename arg6_type, typename arg7_type, typename arg8_type, \ 1780 typename arg9_type>\ 1781 return_type gmock_PerformImpl(const args_type& args, arg0_type arg0, \ 1782 arg1_type arg1, arg2_type arg2, arg3_type arg3, arg4_type arg4, \ 1783 arg5_type arg5, arg6_type arg6, arg7_type arg7, arg8_type arg8, \ 1784 arg9_type arg9) const;\ 1790 GTEST_DISALLOW_ASSIGN_(gmock_Impl);\ 1792 template <typename F> operator ::testing::Action<F>() const {\ 1793 return ::testing::Action<F>(new gmock_Impl<F>(p0, p1, p2, p3));\ 1800 GTEST_DISALLOW_ASSIGN_(name##ActionP4);\ 1802 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 1803 typename p3##_type>\ 1804 inline name##ActionP4<p0##_type, p1##_type, p2##_type, \ 1805 p3##_type> name(p0##_type p0, p1##_type p1, p2##_type p2, \ 1807 return name##ActionP4<p0##_type, p1##_type, p2##_type, p3##_type>(p0, p1, \ 1810 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 1811 typename p3##_type>\ 1812 template <typename F>\ 1813 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 1814 typename arg3_type, typename arg4_type, typename arg5_type, \ 1815 typename arg6_type, typename arg7_type, typename arg8_type, \ 1816 typename arg9_type>\ 1817 typename ::testing::internal::Function<F>::Result\ 1818 name##ActionP4<p0##_type, p1##_type, p2##_type, \ 1819 p3##_type>::gmock_Impl<F>::gmock_PerformImpl(\ 1820 GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const 1822 #define ACTION_P5(name, p0, p1, p2, p3, p4)\ 1823 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 1824 typename p3##_type, typename p4##_type>\ 1825 class name##ActionP5 {\ 1827 name##ActionP5(p0##_type gmock_p0, p1##_type gmock_p1, \ 1828 p2##_type gmock_p2, p3##_type gmock_p3, \ 1829 p4##_type gmock_p4) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), \ 1830 p3(gmock_p3), p4(gmock_p4) {}\ 1831 template <typename F>\ 1832 class gmock_Impl : public ::testing::ActionInterface<F> {\ 1834 typedef F function_type;\ 1835 typedef typename ::testing::internal::Function<F>::Result return_type;\ 1836 typedef typename ::testing::internal::Function<F>::ArgumentTuple\ 1838 gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \ 1839 p3##_type gmock_p3, p4##_type gmock_p4) : p0(gmock_p0), \ 1840 p1(gmock_p1), p2(gmock_p2), p3(gmock_p3), p4(gmock_p4) {}\ 1841 virtual return_type Perform(const args_type& args) {\ 1842 return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\ 1843 Perform(this, args);\ 1845 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 1846 typename arg3_type, typename arg4_type, typename arg5_type, \ 1847 typename arg6_type, typename arg7_type, typename arg8_type, \ 1848 typename arg9_type>\ 1849 return_type gmock_PerformImpl(const args_type& args, arg0_type arg0, \ 1850 arg1_type arg1, arg2_type arg2, arg3_type arg3, arg4_type arg4, \ 1851 arg5_type arg5, arg6_type arg6, arg7_type arg7, arg8_type arg8, \ 1852 arg9_type arg9) const;\ 1859 GTEST_DISALLOW_ASSIGN_(gmock_Impl);\ 1861 template <typename F> operator ::testing::Action<F>() const {\ 1862 return ::testing::Action<F>(new gmock_Impl<F>(p0, p1, p2, p3, p4));\ 1870 GTEST_DISALLOW_ASSIGN_(name##ActionP5);\ 1872 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 1873 typename p3##_type, typename p4##_type>\ 1874 inline name##ActionP5<p0##_type, p1##_type, p2##_type, p3##_type, \ 1875 p4##_type> name(p0##_type p0, p1##_type p1, p2##_type p2, p3##_type p3, \ 1877 return name##ActionP5<p0##_type, p1##_type, p2##_type, p3##_type, \ 1878 p4##_type>(p0, p1, p2, p3, p4);\ 1880 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 1881 typename p3##_type, typename p4##_type>\ 1882 template <typename F>\ 1883 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 1884 typename arg3_type, typename arg4_type, typename arg5_type, \ 1885 typename arg6_type, typename arg7_type, typename arg8_type, \ 1886 typename arg9_type>\ 1887 typename ::testing::internal::Function<F>::Result\ 1888 name##ActionP5<p0##_type, p1##_type, p2##_type, p3##_type, \ 1889 p4##_type>::gmock_Impl<F>::gmock_PerformImpl(\ 1890 GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const 1892 #define ACTION_P6(name, p0, p1, p2, p3, p4, p5)\ 1893 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 1894 typename p3##_type, typename p4##_type, typename p5##_type>\ 1895 class name##ActionP6 {\ 1897 name##ActionP6(p0##_type gmock_p0, p1##_type gmock_p1, \ 1898 p2##_type gmock_p2, p3##_type gmock_p3, p4##_type gmock_p4, \ 1899 p5##_type gmock_p5) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), \ 1900 p3(gmock_p3), p4(gmock_p4), p5(gmock_p5) {}\ 1901 template <typename F>\ 1902 class gmock_Impl : public ::testing::ActionInterface<F> {\ 1904 typedef F function_type;\ 1905 typedef typename ::testing::internal::Function<F>::Result return_type;\ 1906 typedef typename ::testing::internal::Function<F>::ArgumentTuple\ 1908 gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \ 1909 p3##_type gmock_p3, p4##_type gmock_p4, \ 1910 p5##_type gmock_p5) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), \ 1911 p3(gmock_p3), p4(gmock_p4), p5(gmock_p5) {}\ 1912 virtual return_type Perform(const args_type& args) {\ 1913 return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\ 1914 Perform(this, args);\ 1916 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 1917 typename arg3_type, typename arg4_type, typename arg5_type, \ 1918 typename arg6_type, typename arg7_type, typename arg8_type, \ 1919 typename arg9_type>\ 1920 return_type gmock_PerformImpl(const args_type& args, arg0_type arg0, \ 1921 arg1_type arg1, arg2_type arg2, arg3_type arg3, arg4_type arg4, \ 1922 arg5_type arg5, arg6_type arg6, arg7_type arg7, arg8_type arg8, \ 1923 arg9_type arg9) const;\ 1931 GTEST_DISALLOW_ASSIGN_(gmock_Impl);\ 1933 template <typename F> operator ::testing::Action<F>() const {\ 1934 return ::testing::Action<F>(new gmock_Impl<F>(p0, p1, p2, p3, p4, p5));\ 1943 GTEST_DISALLOW_ASSIGN_(name##ActionP6);\ 1945 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 1946 typename p3##_type, typename p4##_type, typename p5##_type>\ 1947 inline name##ActionP6<p0##_type, p1##_type, p2##_type, p3##_type, \ 1948 p4##_type, p5##_type> name(p0##_type p0, p1##_type p1, p2##_type p2, \ 1949 p3##_type p3, p4##_type p4, p5##_type p5) {\ 1950 return name##ActionP6<p0##_type, p1##_type, p2##_type, p3##_type, \ 1951 p4##_type, p5##_type>(p0, p1, p2, p3, p4, p5);\ 1953 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 1954 typename p3##_type, typename p4##_type, typename p5##_type>\ 1955 template <typename F>\ 1956 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 1957 typename arg3_type, typename arg4_type, typename arg5_type, \ 1958 typename arg6_type, typename arg7_type, typename arg8_type, \ 1959 typename arg9_type>\ 1960 typename ::testing::internal::Function<F>::Result\ 1961 name##ActionP6<p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, \ 1962 p5##_type>::gmock_Impl<F>::gmock_PerformImpl(\ 1963 GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const 1965 #define ACTION_P7(name, p0, p1, p2, p3, p4, p5, p6)\ 1966 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 1967 typename p3##_type, typename p4##_type, typename p5##_type, \ 1968 typename p6##_type>\ 1969 class name##ActionP7 {\ 1971 name##ActionP7(p0##_type gmock_p0, p1##_type gmock_p1, \ 1972 p2##_type gmock_p2, p3##_type gmock_p3, p4##_type gmock_p4, \ 1973 p5##_type gmock_p5, p6##_type gmock_p6) : p0(gmock_p0), p1(gmock_p1), \ 1974 p2(gmock_p2), p3(gmock_p3), p4(gmock_p4), p5(gmock_p5), \ 1976 template <typename F>\ 1977 class gmock_Impl : public ::testing::ActionInterface<F> {\ 1979 typedef F function_type;\ 1980 typedef typename ::testing::internal::Function<F>::Result return_type;\ 1981 typedef typename ::testing::internal::Function<F>::ArgumentTuple\ 1983 gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \ 1984 p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \ 1985 p6##_type gmock_p6) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), \ 1986 p3(gmock_p3), p4(gmock_p4), p5(gmock_p5), p6(gmock_p6) {}\ 1987 virtual return_type Perform(const args_type& args) {\ 1988 return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\ 1989 Perform(this, args);\ 1991 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 1992 typename arg3_type, typename arg4_type, typename arg5_type, \ 1993 typename arg6_type, typename arg7_type, typename arg8_type, \ 1994 typename arg9_type>\ 1995 return_type gmock_PerformImpl(const args_type& args, arg0_type arg0, \ 1996 arg1_type arg1, arg2_type arg2, arg3_type arg3, arg4_type arg4, \ 1997 arg5_type arg5, arg6_type arg6, arg7_type arg7, arg8_type arg8, \ 1998 arg9_type arg9) const;\ 2007 GTEST_DISALLOW_ASSIGN_(gmock_Impl);\ 2009 template <typename F> operator ::testing::Action<F>() const {\ 2010 return ::testing::Action<F>(new gmock_Impl<F>(p0, p1, p2, p3, p4, p5, \ 2021 GTEST_DISALLOW_ASSIGN_(name##ActionP7);\ 2023 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 2024 typename p3##_type, typename p4##_type, typename p5##_type, \ 2025 typename p6##_type>\ 2026 inline name##ActionP7<p0##_type, p1##_type, p2##_type, p3##_type, \ 2027 p4##_type, p5##_type, p6##_type> name(p0##_type p0, p1##_type p1, \ 2028 p2##_type p2, p3##_type p3, p4##_type p4, p5##_type p5, \ 2030 return name##ActionP7<p0##_type, p1##_type, p2##_type, p3##_type, \ 2031 p4##_type, p5##_type, p6##_type>(p0, p1, p2, p3, p4, p5, p6);\ 2033 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 2034 typename p3##_type, typename p4##_type, typename p5##_type, \ 2035 typename p6##_type>\ 2036 template <typename F>\ 2037 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 2038 typename arg3_type, typename arg4_type, typename arg5_type, \ 2039 typename arg6_type, typename arg7_type, typename arg8_type, \ 2040 typename arg9_type>\ 2041 typename ::testing::internal::Function<F>::Result\ 2042 name##ActionP7<p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, \ 2043 p5##_type, p6##_type>::gmock_Impl<F>::gmock_PerformImpl(\ 2044 GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const 2046 #define ACTION_P8(name, p0, p1, p2, p3, p4, p5, p6, p7)\ 2047 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 2048 typename p3##_type, typename p4##_type, typename p5##_type, \ 2049 typename p6##_type, typename p7##_type>\ 2050 class name##ActionP8 {\ 2052 name##ActionP8(p0##_type gmock_p0, p1##_type gmock_p1, \ 2053 p2##_type gmock_p2, p3##_type gmock_p3, p4##_type gmock_p4, \ 2054 p5##_type gmock_p5, p6##_type gmock_p6, \ 2055 p7##_type gmock_p7) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), \ 2056 p3(gmock_p3), p4(gmock_p4), p5(gmock_p5), p6(gmock_p6), \ 2058 template <typename F>\ 2059 class gmock_Impl : public ::testing::ActionInterface<F> {\ 2061 typedef F function_type;\ 2062 typedef typename ::testing::internal::Function<F>::Result return_type;\ 2063 typedef typename ::testing::internal::Function<F>::ArgumentTuple\ 2065 gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \ 2066 p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \ 2067 p6##_type gmock_p6, p7##_type gmock_p7) : p0(gmock_p0), \ 2068 p1(gmock_p1), p2(gmock_p2), p3(gmock_p3), p4(gmock_p4), \ 2069 p5(gmock_p5), p6(gmock_p6), p7(gmock_p7) {}\ 2070 virtual return_type Perform(const args_type& args) {\ 2071 return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\ 2072 Perform(this, args);\ 2074 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 2075 typename arg3_type, typename arg4_type, typename arg5_type, \ 2076 typename arg6_type, typename arg7_type, typename arg8_type, \ 2077 typename arg9_type>\ 2078 return_type gmock_PerformImpl(const args_type& args, arg0_type arg0, \ 2079 arg1_type arg1, arg2_type arg2, arg3_type arg3, arg4_type arg4, \ 2080 arg5_type arg5, arg6_type arg6, arg7_type arg7, arg8_type arg8, \ 2081 arg9_type arg9) const;\ 2091 GTEST_DISALLOW_ASSIGN_(gmock_Impl);\ 2093 template <typename F> operator ::testing::Action<F>() const {\ 2094 return ::testing::Action<F>(new gmock_Impl<F>(p0, p1, p2, p3, p4, p5, \ 2106 GTEST_DISALLOW_ASSIGN_(name##ActionP8);\ 2108 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 2109 typename p3##_type, typename p4##_type, typename p5##_type, \ 2110 typename p6##_type, typename p7##_type>\ 2111 inline name##ActionP8<p0##_type, p1##_type, p2##_type, p3##_type, \ 2112 p4##_type, p5##_type, p6##_type, p7##_type> name(p0##_type p0, \ 2113 p1##_type p1, p2##_type p2, p3##_type p3, p4##_type p4, p5##_type p5, \ 2114 p6##_type p6, p7##_type p7) {\ 2115 return name##ActionP8<p0##_type, p1##_type, p2##_type, p3##_type, \ 2116 p4##_type, p5##_type, p6##_type, p7##_type>(p0, p1, p2, p3, p4, p5, \ 2119 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 2120 typename p3##_type, typename p4##_type, typename p5##_type, \ 2121 typename p6##_type, typename p7##_type>\ 2122 template <typename F>\ 2123 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 2124 typename arg3_type, typename arg4_type, typename arg5_type, \ 2125 typename arg6_type, typename arg7_type, typename arg8_type, \ 2126 typename arg9_type>\ 2127 typename ::testing::internal::Function<F>::Result\ 2128 name##ActionP8<p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, \ 2129 p5##_type, p6##_type, \ 2130 p7##_type>::gmock_Impl<F>::gmock_PerformImpl(\ 2131 GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const 2133 #define ACTION_P9(name, p0, p1, p2, p3, p4, p5, p6, p7, p8)\ 2134 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 2135 typename p3##_type, typename p4##_type, typename p5##_type, \ 2136 typename p6##_type, typename p7##_type, typename p8##_type>\ 2137 class name##ActionP9 {\ 2139 name##ActionP9(p0##_type gmock_p0, p1##_type gmock_p1, \ 2140 p2##_type gmock_p2, p3##_type gmock_p3, p4##_type gmock_p4, \ 2141 p5##_type gmock_p5, p6##_type gmock_p6, p7##_type gmock_p7, \ 2142 p8##_type gmock_p8) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), \ 2143 p3(gmock_p3), p4(gmock_p4), p5(gmock_p5), p6(gmock_p6), p7(gmock_p7), \ 2145 template <typename F>\ 2146 class gmock_Impl : public ::testing::ActionInterface<F> {\ 2148 typedef F function_type;\ 2149 typedef typename ::testing::internal::Function<F>::Result return_type;\ 2150 typedef typename ::testing::internal::Function<F>::ArgumentTuple\ 2152 gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \ 2153 p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \ 2154 p6##_type gmock_p6, p7##_type gmock_p7, \ 2155 p8##_type gmock_p8) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), \ 2156 p3(gmock_p3), p4(gmock_p4), p5(gmock_p5), p6(gmock_p6), \ 2157 p7(gmock_p7), p8(gmock_p8) {}\ 2158 virtual return_type Perform(const args_type& args) {\ 2159 return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\ 2160 Perform(this, args);\ 2162 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 2163 typename arg3_type, typename arg4_type, typename arg5_type, \ 2164 typename arg6_type, typename arg7_type, typename arg8_type, \ 2165 typename arg9_type>\ 2166 return_type gmock_PerformImpl(const args_type& args, arg0_type arg0, \ 2167 arg1_type arg1, arg2_type arg2, arg3_type arg3, arg4_type arg4, \ 2168 arg5_type arg5, arg6_type arg6, arg7_type arg7, arg8_type arg8, \ 2169 arg9_type arg9) const;\ 2180 GTEST_DISALLOW_ASSIGN_(gmock_Impl);\ 2182 template <typename F> operator ::testing::Action<F>() const {\ 2183 return ::testing::Action<F>(new gmock_Impl<F>(p0, p1, p2, p3, p4, p5, \ 2196 GTEST_DISALLOW_ASSIGN_(name##ActionP9);\ 2198 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 2199 typename p3##_type, typename p4##_type, typename p5##_type, \ 2200 typename p6##_type, typename p7##_type, typename p8##_type>\ 2201 inline name##ActionP9<p0##_type, p1##_type, p2##_type, p3##_type, \ 2202 p4##_type, p5##_type, p6##_type, p7##_type, \ 2203 p8##_type> name(p0##_type p0, p1##_type p1, p2##_type p2, p3##_type p3, \ 2204 p4##_type p4, p5##_type p5, p6##_type p6, p7##_type p7, \ 2206 return name##ActionP9<p0##_type, p1##_type, p2##_type, p3##_type, \ 2207 p4##_type, p5##_type, p6##_type, p7##_type, p8##_type>(p0, p1, p2, \ 2208 p3, p4, p5, p6, p7, p8);\ 2210 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 2211 typename p3##_type, typename p4##_type, typename p5##_type, \ 2212 typename p6##_type, typename p7##_type, typename p8##_type>\ 2213 template <typename F>\ 2214 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 2215 typename arg3_type, typename arg4_type, typename arg5_type, \ 2216 typename arg6_type, typename arg7_type, typename arg8_type, \ 2217 typename arg9_type>\ 2218 typename ::testing::internal::Function<F>::Result\ 2219 name##ActionP9<p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, \ 2220 p5##_type, p6##_type, p7##_type, \ 2221 p8##_type>::gmock_Impl<F>::gmock_PerformImpl(\ 2222 GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const 2224 #define ACTION_P10(name, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9)\ 2225 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 2226 typename p3##_type, typename p4##_type, typename p5##_type, \ 2227 typename p6##_type, typename p7##_type, typename p8##_type, \ 2228 typename p9##_type>\ 2229 class name##ActionP10 {\ 2231 name##ActionP10(p0##_type gmock_p0, p1##_type gmock_p1, \ 2232 p2##_type gmock_p2, p3##_type gmock_p3, p4##_type gmock_p4, \ 2233 p5##_type gmock_p5, p6##_type gmock_p6, p7##_type gmock_p7, \ 2234 p8##_type gmock_p8, p9##_type gmock_p9) : p0(gmock_p0), p1(gmock_p1), \ 2235 p2(gmock_p2), p3(gmock_p3), p4(gmock_p4), p5(gmock_p5), p6(gmock_p6), \ 2236 p7(gmock_p7), p8(gmock_p8), p9(gmock_p9) {}\ 2237 template <typename F>\ 2238 class gmock_Impl : public ::testing::ActionInterface<F> {\ 2240 typedef F function_type;\ 2241 typedef typename ::testing::internal::Function<F>::Result return_type;\ 2242 typedef typename ::testing::internal::Function<F>::ArgumentTuple\ 2244 gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \ 2245 p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \ 2246 p6##_type gmock_p6, p7##_type gmock_p7, p8##_type gmock_p8, \ 2247 p9##_type gmock_p9) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), \ 2248 p3(gmock_p3), p4(gmock_p4), p5(gmock_p5), p6(gmock_p6), \ 2249 p7(gmock_p7), p8(gmock_p8), p9(gmock_p9) {}\ 2250 virtual return_type Perform(const args_type& args) {\ 2251 return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\ 2252 Perform(this, args);\ 2254 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 2255 typename arg3_type, typename arg4_type, typename arg5_type, \ 2256 typename arg6_type, typename arg7_type, typename arg8_type, \ 2257 typename arg9_type>\ 2258 return_type gmock_PerformImpl(const args_type& args, arg0_type arg0, \ 2259 arg1_type arg1, arg2_type arg2, arg3_type arg3, arg4_type arg4, \ 2260 arg5_type arg5, arg6_type arg6, arg7_type arg7, arg8_type arg8, \ 2261 arg9_type arg9) const;\ 2273 GTEST_DISALLOW_ASSIGN_(gmock_Impl);\ 2275 template <typename F> operator ::testing::Action<F>() const {\ 2276 return ::testing::Action<F>(new gmock_Impl<F>(p0, p1, p2, p3, p4, p5, \ 2290 GTEST_DISALLOW_ASSIGN_(name##ActionP10);\ 2292 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 2293 typename p3##_type, typename p4##_type, typename p5##_type, \ 2294 typename p6##_type, typename p7##_type, typename p8##_type, \ 2295 typename p9##_type>\ 2296 inline name##ActionP10<p0##_type, p1##_type, p2##_type, p3##_type, \ 2297 p4##_type, p5##_type, p6##_type, p7##_type, p8##_type, \ 2298 p9##_type> name(p0##_type p0, p1##_type p1, p2##_type p2, p3##_type p3, \ 2299 p4##_type p4, p5##_type p5, p6##_type p6, p7##_type p7, p8##_type p8, \ 2301 return name##ActionP10<p0##_type, p1##_type, p2##_type, p3##_type, \ 2302 p4##_type, p5##_type, p6##_type, p7##_type, p8##_type, p9##_type>(p0, \ 2303 p1, p2, p3, p4, p5, p6, p7, p8, p9);\ 2305 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 2306 typename p3##_type, typename p4##_type, typename p5##_type, \ 2307 typename p6##_type, typename p7##_type, typename p8##_type, \ 2308 typename p9##_type>\ 2309 template <typename F>\ 2310 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 2311 typename arg3_type, typename arg4_type, typename arg5_type, \ 2312 typename arg6_type, typename arg7_type, typename arg8_type, \ 2313 typename arg9_type>\ 2314 typename ::testing::internal::Function<F>::Result\ 2315 name##ActionP10<p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, \ 2316 p5##_type, p6##_type, p7##_type, p8##_type, \ 2317 p9##_type>::gmock_Impl<F>::gmock_PerformImpl(\ 2318 GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const 2329 # pragma warning(push) 2330 # pragma warning(disable:4100) 2364 HAS_1_TEMPLATE_PARAMS(
int, k),
2365 AND_0_VALUE_PARAMS())
2368 ::std::tr1::get<k>(args));
2372 HAS_1_TEMPLATE_PARAMS(
int, k),
2373 AND_1_VALUE_PARAMS(p0))
2376 ::std::tr1::get<k>(args), p0);
2380 HAS_1_TEMPLATE_PARAMS(
int, k),
2381 AND_2_VALUE_PARAMS(p0, p1))
2384 ::std::tr1::get<k>(args), p0, p1);
2388 HAS_1_TEMPLATE_PARAMS(
int, k),
2389 AND_3_VALUE_PARAMS(p0, p1, p2))
2392 ::std::tr1::get<k>(args), p0, p1, p2);
2396 HAS_1_TEMPLATE_PARAMS(
int, k),
2397 AND_4_VALUE_PARAMS(p0, p1, p2, p3))
2400 ::std::tr1::get<k>(args), p0, p1, p2, p3);
2404 HAS_1_TEMPLATE_PARAMS(
int, k),
2405 AND_5_VALUE_PARAMS(p0, p1, p2, p3, p4))
2408 ::std::tr1::get<k>(args), p0, p1, p2, p3, p4);
2412 HAS_1_TEMPLATE_PARAMS(
int, k),
2413 AND_6_VALUE_PARAMS(p0, p1, p2, p3, p4, p5))
2416 ::std::tr1::get<k>(args), p0, p1, p2, p3, p4, p5);
2420 HAS_1_TEMPLATE_PARAMS(
int, k),
2421 AND_7_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6))
2424 ::std::tr1::get<k>(args), p0, p1, p2, p3, p4, p5, p6);
2428 HAS_1_TEMPLATE_PARAMS(
int, k),
2429 AND_8_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, p7))
2432 ::std::tr1::get<k>(args), p0, p1, p2, p3, p4, p5, p6, p7);
2436 HAS_1_TEMPLATE_PARAMS(
int, k),
2437 AND_9_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, p7, p8))
2440 ::std::tr1::get<k>(args), p0, p1, p2, p3, p4, p5, p6, p7, p8);
2444 HAS_1_TEMPLATE_PARAMS(
int, k),
2445 AND_10_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9))
2448 ::std::tr1::get<k>(args), p0, p1, p2, p3, p4, p5, p6, p7, p8, p9);
2457 HAS_1_TEMPLATE_PARAMS(
typename, T),
2458 AND_0_VALUE_PARAMS())
2464 HAS_1_TEMPLATE_PARAMS(
typename, T),
2465 AND_1_VALUE_PARAMS(p0))
2471 HAS_1_TEMPLATE_PARAMS(
typename, T),
2472 AND_2_VALUE_PARAMS(p0, p1))
2474 return new T(p0, p1);
2478 HAS_1_TEMPLATE_PARAMS(
typename, T),
2479 AND_3_VALUE_PARAMS(p0, p1, p2))
2481 return new T(p0, p1, p2);
2485 HAS_1_TEMPLATE_PARAMS(
typename, T),
2486 AND_4_VALUE_PARAMS(p0, p1, p2, p3))
2488 return new T(p0, p1, p2, p3);
2492 HAS_1_TEMPLATE_PARAMS(
typename, T),
2493 AND_5_VALUE_PARAMS(p0, p1, p2, p3, p4))
2495 return new T(p0, p1, p2, p3, p4);
2499 HAS_1_TEMPLATE_PARAMS(
typename, T),
2500 AND_6_VALUE_PARAMS(p0, p1, p2, p3, p4, p5))
2502 return new T(p0, p1, p2, p3, p4, p5);
2506 HAS_1_TEMPLATE_PARAMS(
typename, T),
2507 AND_7_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6))
2509 return new T(p0, p1, p2, p3, p4, p5, p6);
2513 HAS_1_TEMPLATE_PARAMS(
typename, T),
2514 AND_8_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, p7))
2516 return new T(p0, p1, p2, p3, p4, p5, p6, p7);
2520 HAS_1_TEMPLATE_PARAMS(
typename, T),
2521 AND_9_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, p7, p8))
2523 return new T(p0, p1, p2, p3, p4, p5, p6, p7, p8);
2527 HAS_1_TEMPLATE_PARAMS(
typename, T),
2528 AND_10_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9))
2530 return new T(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9);
2534 # pragma warning(pop) 2539 #endif // GMOCK_INCLUDE_GMOCK_GMOCK_GENERATED_ACTIONS_H_ static R InvokeMethod(Class *obj_ptr, MethodPtr method_ptr, const ::std::tr1::tuple< A1, A2, A3, A4, A5, A6 > &args)
static Result Perform(Impl *impl, const ::std::tr1::tuple< A0 > &args)
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, k3, k4, k5, k6, k7, k8,-1,-1 >::Select static SelectedArgs Select(const ArgumentTuple &args)
static R InvokeMethod(Class *obj_ptr, MethodPtr method_ptr, const ::std::tr1::tuple< A1, A2, A3, A4, A5, A6, A7, A8 > &args)
testing::internal::SelectArgs< Result, ArgumentTuple,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 >::Select static SelectedArgs Select(const ArgumentTuple &)
static Result Perform(Impl *impl, const ::std::tr1::tuple< A0, A1, A2 > &args)
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, k3, k4, k5, k6,-1,-1,-1,-1 >::Select static SelectedArgs Select(const ArgumentTuple &args)
static R Invoke(Function function, const ::std::tr1::tuple< A1, A2, A3, A4, A5, A6, A7 > &args)
Function< F >::ArgumentTuple ArgumentTuple
static R Call(Function function, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9)
static Result Perform(Impl *impl, const ::std::tr1::tuple<> &args)
static R Invoke(Function function, const ::std::tr1::tuple< A1, A2, A3, A4, A5 > &args)
static R Call(Function function, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6)
static R Call(Function function, A1 a1, A2 a2)
static Result Perform(Impl *impl, const ::std::tr1::tuple< A0, A1, A2, A3, A4, A5, A6 > &args)
static R Call(Function function)
static R Invoke(Function function, const ::std::tr1::tuple< A1, A2 > &args)
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2,-1,-1,-1,-1,-1,-1,-1,-1 >::type Result type(GMOCK_FIELD_(ArgumentTuple, k1), GMOCK_FIELD_(ArgumentTuple, k2))
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2,-1,-1,-1,-1,-1,-1,-1,-1 >::SelectedArgs Function< type >::ArgumentTuple SelectedArgs
static R InvokeMethod(Class *obj_ptr, MethodPtr method_ptr, const ::std::tr1::tuple< A1, A2, A3, A4, A5 > &args)
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, k3, k4,-1,-1,-1,-1,-1,-1 >::Select static SelectedArgs Select(const ArgumentTuple &args)
testing::internal::SelectArgs< Result, ArgumentTuple, k1,-1,-1,-1,-1,-1,-1,-1,-1,-1 >::SelectedArgs Function< type >::ArgumentTuple SelectedArgs
testing::internal::SelectArgs< Result, ArgumentTuple,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 >::type Result type()
Impl(const InnerAction &action)
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, k3, k4, k5, k6, k7,-1,-1,-1 >::Select static SelectedArgs Select(const ArgumentTuple &args)
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, k3, k4, k5, k6,-1,-1,-1,-1 >::SelectedArgs Function< type >::ArgumentTuple SelectedArgs
static Result Perform(Impl *impl, const ::std::tr1::tuple< A0, A1 > &args)
static Result Perform(Impl *impl, const ::std::tr1::tuple< A0, A1, A2, A3, A4, A5 > &args)
static Result Perform(Impl *impl, const ::std::tr1::tuple< A0, A1, A2, A3, A4, A5, A6, A7, A8 > &args)
static R InvokeMethod(Class *obj_ptr, MethodPtr method_ptr, const ::std::tr1::tuple< A1, A2, A3 > &args)
static R Invoke(Function function, const ::std::tr1::tuple< A1, A2, A3, A4, A5, A6 > &args)
static R Invoke(Function function, const ::std::tr1::tuple<> &)
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, k3, k4, k5, k6, k7,-1,-1,-1 >::SelectedArgs Function< type >::ArgumentTuple SelectedArgs
testing::internal::InvokeHelper< R,::std::tr1::tuple< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10 > >::InvokeMethod static R InvokeMethod(Class *obj_ptr, MethodPtr method_ptr, const ::std::tr1::tuple< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10 > &args)
static R Call(Function function, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7)
static R InvokeMethod(Class *obj_ptr, MethodPtr method_ptr, const ::std::tr1::tuple<> &)
static R Call(Function function, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8)
static R Call(Function function, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10)
Action< F > MakeAction(ActionInterface< F > *impl)
static Result Perform(Impl *impl, const ::std::tr1::tuple< A0, A1, A2, A3 > &args)
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2,-1,-1,-1,-1,-1,-1,-1,-1 >::Select static SelectedArgs Select(const ArgumentTuple &args)
SelectArgs< Result, ArgumentTuple, k1, k2, k3, k4, k5, k6, k7, k8, k9, k10 >::type InnerFunctionType
static R InvokeMethod(Class *obj_ptr, MethodPtr method_ptr, const ::std::tr1::tuple< A1 > &args)
static R Call(Function function, A1 a1)
static Result Perform(Impl *impl, const ::std::tr1::tuple< A0, A1, A2, A3, A4, A5, A6, A7, A8, A9 > &args)
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, k3, k4, k5, k6, k7, k8, k9,-1 >::Select static SelectedArgs Select(const ArgumentTuple &args)
static R Call(Function function, A1 a1, A2 a2, A3 a3, A4 a4)
static Result Perform(Impl *impl, const ::std::tr1::tuple< A0, A1, A2, A3, A4, A5, A6, A7 > &args)
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, k3,-1,-1,-1,-1,-1,-1,-1 >::type Result type(GMOCK_FIELD_(ArgumentTuple, k1), GMOCK_FIELD_(ArgumentTuple, k2), GMOCK_FIELD_(ArgumentTuple, k3))
static R InvokeMethod(Class *obj_ptr, MethodPtr method_ptr, const ::std::tr1::tuple< A1, A2 > &args)
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, k3, k4, k5, k6, k7, k8,-1,-1 >::SelectedArgs Function< type >::ArgumentTuple SelectedArgs
ACTION_TEMPLATE(InvokeArgument, HAS_1_TEMPLATE_PARAMS(int, k), AND_0_VALUE_PARAMS())
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, k3, k4, k5, k6, k7, k8,-1,-1 >::type Result type(GMOCK_FIELD_(ArgumentTuple, k1), GMOCK_FIELD_(ArgumentTuple, k2), GMOCK_FIELD_(ArgumentTuple, k3), GMOCK_FIELD_(ArgumentTuple, k4), GMOCK_FIELD_(ArgumentTuple, k5), GMOCK_FIELD_(ArgumentTuple, k6), GMOCK_FIELD_(ArgumentTuple, k7), GMOCK_FIELD_(ArgumentTuple, k8))
WithArgsAction(const InnerAction &action)
static R InvokeMethod(Class *obj_ptr, MethodPtr method_ptr, const ::std::tr1::tuple< A1, A2, A3, A4, A5, A6, A7 > &args)
testing::internal::InvokeHelper< R,::std::tr1::tuple< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10 > >::Invoke static R Invoke(Function function, const ::std::tr1::tuple< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10 > &args)
#define GMOCK_FIELD_(Tuple, N)
testing::internal::SelectArgs< Result, ArgumentTuple, k1,-1,-1,-1,-1,-1,-1,-1,-1,-1 >::Select static SelectedArgs Select(const ArgumentTuple &args)
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, k3, k4, k5,-1,-1,-1,-1,-1 >::Select static SelectedArgs Select(const ArgumentTuple &args)
internal::WithArgsAction< InnerAction, k1 > WithArgs(const InnerAction &action)
static R Invoke(Function function, const ::std::tr1::tuple< A1, A2, A3, A4, A5, A6, A7, A8 > &args)
static R Invoke(Function function, const ::std::tr1::tuple< A1, A2, A3 > &args)
#define GTEST_DISALLOW_ASSIGN_(type)
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, k3,-1,-1,-1,-1,-1,-1,-1 >::Select static SelectedArgs Select(const ArgumentTuple &args)
static R Call(Function function, A1 a1, A2 a2, A3 a3)
Function< type >::ArgumentTuple SelectedArgs
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, k3,-1,-1,-1,-1,-1,-1,-1 >::SelectedArgs Function< type >::ArgumentTuple SelectedArgs
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, k3, k4, k5, k6,-1,-1,-1,-1 >::type Result type(GMOCK_FIELD_(ArgumentTuple, k1), GMOCK_FIELD_(ArgumentTuple, k2), GMOCK_FIELD_(ArgumentTuple, k3), GMOCK_FIELD_(ArgumentTuple, k4), GMOCK_FIELD_(ArgumentTuple, k5), GMOCK_FIELD_(ArgumentTuple, k6))
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, k3, k4, k5, k6, k7, k8, k9,-1 >::SelectedArgs Function< type >::ArgumentTuple SelectedArgs
Result type(GMOCK_FIELD_(ArgumentTuple, k1), GMOCK_FIELD_(ArgumentTuple, k2), GMOCK_FIELD_(ArgumentTuple, k3), GMOCK_FIELD_(ArgumentTuple, k4), GMOCK_FIELD_(ArgumentTuple, k5), GMOCK_FIELD_(ArgumentTuple, k6), GMOCK_FIELD_(ArgumentTuple, k7), GMOCK_FIELD_(ArgumentTuple, k8), GMOCK_FIELD_(ArgumentTuple, k9), GMOCK_FIELD_(ArgumentTuple, k10))
static R Invoke(Function function, const ::std::tr1::tuple< A1, A2, A3, A4, A5, A6, A7, A8, A9 > &args)
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, k3, k4,-1,-1,-1,-1,-1,-1 >::SelectedArgs Function< type >::ArgumentTuple SelectedArgs
static SelectedArgs Select(const ArgumentTuple &args)
static R Invoke(Function function, const ::std::tr1::tuple< A1 > &args)
static R InvokeMethod(Class *obj_ptr, MethodPtr method_ptr, const ::std::tr1::tuple< A1, A2, A3, A4, A5, A6, A7, A8, A9 > &args)
internal::DoBothAction< Action1, Action2 > DoAll(Action1 a1, Action2 a2)
static Result Perform(Impl *impl, const ::std::tr1::tuple< A0, A1, A2, A3, A4 > &args)
virtual Result Perform(const ArgumentTuple &args)
static R InvokeMethod(Class *obj_ptr, MethodPtr method_ptr, const ::std::tr1::tuple< A1, A2, A3, A4 > &args)
testing::internal::SelectArgs< Result, ArgumentTuple,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 >::SelectedArgs Function< type >::ArgumentTuple SelectedArgs
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, k3, k4, k5,-1,-1,-1,-1,-1 >::type Result type(GMOCK_FIELD_(ArgumentTuple, k1), GMOCK_FIELD_(ArgumentTuple, k2), GMOCK_FIELD_(ArgumentTuple, k3), GMOCK_FIELD_(ArgumentTuple, k4), GMOCK_FIELD_(ArgumentTuple, k5))
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, k3, k4, k5, k6, k7,-1,-1,-1 >::type Result type(GMOCK_FIELD_(ArgumentTuple, k1), GMOCK_FIELD_(ArgumentTuple, k2), GMOCK_FIELD_(ArgumentTuple, k3), GMOCK_FIELD_(ArgumentTuple, k4), GMOCK_FIELD_(ArgumentTuple, k5), GMOCK_FIELD_(ArgumentTuple, k6), GMOCK_FIELD_(ArgumentTuple, k7))
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, k3, k4, k5, k6, k7, k8, k9,-1 >::type Result type(GMOCK_FIELD_(ArgumentTuple, k1), GMOCK_FIELD_(ArgumentTuple, k2), GMOCK_FIELD_(ArgumentTuple, k3), GMOCK_FIELD_(ArgumentTuple, k4), GMOCK_FIELD_(ArgumentTuple, k5), GMOCK_FIELD_(ArgumentTuple, k6), GMOCK_FIELD_(ArgumentTuple, k7), GMOCK_FIELD_(ArgumentTuple, k8), GMOCK_FIELD_(ArgumentTuple, k9))
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, k3, k4, k5,-1,-1,-1,-1,-1 >::SelectedArgs Function< type >::ArgumentTuple SelectedArgs
testing::internal::SelectArgs< Result, ArgumentTuple, k1,-1,-1,-1,-1,-1,-1,-1,-1,-1 >::type Result type(GMOCK_FIELD_(ArgumentTuple, k1))
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, k3, k4,-1,-1,-1,-1,-1,-1 >::type Result type(GMOCK_FIELD_(ArgumentTuple, k1), GMOCK_FIELD_(ArgumentTuple, k2), GMOCK_FIELD_(ArgumentTuple, k3), GMOCK_FIELD_(ArgumentTuple, k4))
Function< F >::Result Result
static R Call(Function function, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
static R Invoke(Function function, const ::std::tr1::tuple< A1, A2, A3, A4 > &args)