rice 1.1.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Doxyfile +1 -1
- data/Makefile.in +3 -2
- data/README +247 -16
- data/aclocal.m4 +62 -51
- data/configure +1585 -1456
- data/extconf.rb +9 -1
- data/rice/Arg.hpp +8 -0
- data/rice/Arg_impl.hpp +124 -0
- data/rice/Arg_operators.cpp +21 -0
- data/rice/Arg_operators.hpp +19 -0
- data/rice/Constructor.hpp +150 -0
- data/rice/Data_Type.ipp +51 -6
- data/rice/Director.cpp +19 -0
- data/rice/Director.hpp +47 -0
- data/rice/Enum.hpp +2 -3
- data/rice/Enum.ipp +1 -1
- data/rice/Hash.hpp +1 -1
- data/rice/Makefile.am +7 -0
- data/rice/Makefile.in +18 -7
- data/rice/Module_impl.hpp +36 -3
- data/rice/Module_impl.ipp +56 -7
- data/rice/VM.cpp +2 -2
- data/rice/config.hpp +1 -1
- data/rice/detail/Arguments.hpp +118 -0
- data/rice/detail/Auto_Function_Wrapper.hpp +206 -96
- data/rice/detail/Auto_Function_Wrapper.ipp +1687 -144
- data/rice/detail/Auto_Member_Function_Wrapper.hpp +234 -123
- data/rice/detail/Auto_Member_Function_Wrapper.ipp +1133 -306
- data/rice/detail/Caster.hpp +3 -1
- data/rice/detail/creation_funcs.hpp +0 -8
- data/rice/detail/creation_funcs.ipp +1 -27
- data/rice/detail/define_method_and_auto_wrap.hpp +3 -1
- data/rice/detail/define_method_and_auto_wrap.ipp +4 -3
- data/rice/detail/object_call.ipp +1 -1
- data/rice/detail/ruby.hpp +1 -33
- data/rice/detail/wrap_function.hpp +103 -48
- data/rice/detail/wrap_function.ipp +154 -96
- data/rice/generate_code.rb +520 -55
- data/rice/global_function.hpp +12 -1
- data/rice/global_function.ipp +14 -2
- data/ruby/Makefile.in +5 -4
- data/ruby/lib/Makefile.in +4 -3
- data/ruby/lib/version.rb +1 -1
- data/sample/Makefile.in +4 -3
- data/test/Makefile.am +2 -0
- data/test/Makefile.in +32 -13
- data/test/test_Class.cpp +36 -14
- data/test/test_Constructor.cpp +176 -1
- data/test/test_Data_Type.cpp +121 -0
- data/test/test_Director.cpp +225 -0
- data/test/test_Enum.cpp +33 -0
- data/test/test_Module.cpp +175 -0
- data/test/test_global_functions.cpp +70 -1
- metadata +27 -7
@@ -17,32 +17,62 @@ namespace Rice
|
|
17
17
|
namespace detail
|
18
18
|
{
|
19
19
|
|
20
|
-
template<typename Func_T, typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T, typename Arg13_T, typename Arg14_T, typename Arg15_T>
|
21
|
-
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T, Arg15_T>::
|
20
|
+
template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T, typename Arg13_T, typename Arg14_T, typename Arg15_T>
|
21
|
+
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T, Arg15_T>::
|
22
22
|
Auto_Member_Function_Wrapper(
|
23
23
|
Func func,
|
24
|
-
Data_Object<Exception_Handler> handler
|
24
|
+
Data_Object<Exception_Handler> handler,
|
25
|
+
Arguments* arguments)
|
25
26
|
: Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
|
26
27
|
, func_(func)
|
27
28
|
, handler_(handler)
|
28
29
|
, handler_guard_(&handler_)
|
30
|
+
, arguments_(arguments)
|
29
31
|
{
|
32
|
+
if(arguments == 0) {
|
33
|
+
arguments_ = new Arguments();
|
34
|
+
} else {
|
35
|
+
arguments_ = arguments;
|
36
|
+
}
|
30
37
|
}
|
31
38
|
|
32
|
-
template<typename Func_T, typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T, typename Arg13_T, typename Arg14_T, typename Arg15_T>
|
33
|
-
VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T, Arg15_T>::
|
34
|
-
call(
|
39
|
+
template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T, typename Arg13_T, typename Arg14_T, typename Arg15_T>
|
40
|
+
VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T, Arg15_T>::
|
41
|
+
call(int argc, VALUE* argv, VALUE self)
|
35
42
|
{
|
36
|
-
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T, Arg15_T> * wrapper = 0;
|
43
|
+
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T, Arg15_T> * wrapper = 0;
|
37
44
|
try
|
38
45
|
{
|
39
46
|
Data_Object<Wrapped_Function> data(detail::method_data());
|
40
47
|
wrapper =
|
41
|
-
(Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T, Arg15_T> *)data.get();
|
48
|
+
(Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T, Arg15_T> *)data.get();
|
49
|
+
Arguments* args = wrapper->arguments_;
|
50
|
+
|
51
|
+
VALUE varg0, varg1, varg2, varg3, varg4, varg5, varg6, varg7, varg8, varg9, varg10, varg11, varg12, varg13, varg14, varg15;
|
52
|
+
|
53
|
+
rb_scan_args(argc, argv, args->formatString(Num_Args),
|
54
|
+
&varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9, &varg10, &varg11, &varg12, &varg13, &varg14, &varg15);
|
55
|
+
|
42
56
|
Self_T * obj = from_ruby<Self_T *>(self);
|
43
|
-
|
57
|
+
Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
|
58
|
+
Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
|
59
|
+
Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
|
60
|
+
Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
|
61
|
+
Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
|
62
|
+
Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
|
63
|
+
Arg6_T arg6 = args->getArgumentOrDefault<Arg6_T>(6, varg6);
|
64
|
+
Arg7_T arg7 = args->getArgumentOrDefault<Arg7_T>(7, varg7);
|
65
|
+
Arg8_T arg8 = args->getArgumentOrDefault<Arg8_T>(8, varg8);
|
66
|
+
Arg9_T arg9 = args->getArgumentOrDefault<Arg9_T>(9, varg9);
|
67
|
+
Arg10_T arg10 = args->getArgumentOrDefault<Arg10_T>(10, varg10);
|
68
|
+
Arg11_T arg11 = args->getArgumentOrDefault<Arg11_T>(11, varg11);
|
69
|
+
Arg12_T arg12 = args->getArgumentOrDefault<Arg12_T>(12, varg12);
|
70
|
+
Arg13_T arg13 = args->getArgumentOrDefault<Arg13_T>(13, varg13);
|
71
|
+
Arg14_T arg14 = args->getArgumentOrDefault<Arg14_T>(14, varg14);
|
72
|
+
Arg15_T arg15 = args->getArgumentOrDefault<Arg15_T>(15, varg15);
|
73
|
+
|
44
74
|
Func func = wrapper->func_;
|
45
|
-
return to_ruby((*obj.*func)(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15));
|
75
|
+
return to_ruby((*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15));
|
46
76
|
}
|
47
77
|
catch(...)
|
48
78
|
{
|
@@ -61,32 +91,62 @@ call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_a
|
|
61
91
|
}
|
62
92
|
}
|
63
93
|
|
64
|
-
template<typename Func_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T, typename Arg13_T, typename Arg14_T, typename Arg15_T>
|
65
|
-
Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T, Arg15_T>::
|
94
|
+
template<typename Func_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T, typename Arg13_T, typename Arg14_T, typename Arg15_T>
|
95
|
+
Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T, Arg15_T>::
|
66
96
|
Auto_Member_Function_Wrapper(
|
67
97
|
Func func,
|
68
|
-
Data_Object<Exception_Handler> handler
|
98
|
+
Data_Object<Exception_Handler> handler,
|
99
|
+
Arguments* arguments)
|
69
100
|
: Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
|
70
101
|
, func_(func)
|
71
102
|
, handler_(handler)
|
72
103
|
, handler_guard_(&handler_)
|
104
|
+
, arguments_(arguments)
|
73
105
|
{
|
106
|
+
if(arguments == 0) {
|
107
|
+
arguments_ = new Arguments();
|
108
|
+
} else {
|
109
|
+
arguments_ = arguments;
|
110
|
+
}
|
74
111
|
}
|
75
112
|
|
76
|
-
template<typename Func_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T, typename Arg13_T, typename Arg14_T, typename Arg15_T>
|
77
|
-
VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T, Arg15_T>::
|
78
|
-
call(
|
113
|
+
template<typename Func_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T, typename Arg13_T, typename Arg14_T, typename Arg15_T>
|
114
|
+
VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T, Arg15_T>::
|
115
|
+
call(int argc, VALUE* argv, VALUE self)
|
79
116
|
{
|
80
|
-
Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T, Arg15_T> * wrapper = 0;
|
117
|
+
Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T, Arg15_T> * wrapper = 0;
|
81
118
|
try
|
82
119
|
{
|
83
120
|
Data_Object<Wrapped_Function> data(detail::method_data());
|
84
121
|
wrapper =
|
85
|
-
(Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T, Arg15_T> *)data.get();
|
122
|
+
(Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T, Arg15_T> *)data.get();
|
123
|
+
Arguments* args = wrapper->arguments_;
|
124
|
+
|
125
|
+
VALUE varg0, varg1, varg2, varg3, varg4, varg5, varg6, varg7, varg8, varg9, varg10, varg11, varg12, varg13, varg14, varg15;
|
126
|
+
|
127
|
+
rb_scan_args(argc, argv, args->formatString(Num_Args),
|
128
|
+
&varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9, &varg10, &varg11, &varg12, &varg13, &varg14, &varg15);
|
129
|
+
|
86
130
|
Self_T * obj = from_ruby<Self_T *>(self);
|
87
|
-
|
131
|
+
Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
|
132
|
+
Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
|
133
|
+
Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
|
134
|
+
Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
|
135
|
+
Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
|
136
|
+
Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
|
137
|
+
Arg6_T arg6 = args->getArgumentOrDefault<Arg6_T>(6, varg6);
|
138
|
+
Arg7_T arg7 = args->getArgumentOrDefault<Arg7_T>(7, varg7);
|
139
|
+
Arg8_T arg8 = args->getArgumentOrDefault<Arg8_T>(8, varg8);
|
140
|
+
Arg9_T arg9 = args->getArgumentOrDefault<Arg9_T>(9, varg9);
|
141
|
+
Arg10_T arg10 = args->getArgumentOrDefault<Arg10_T>(10, varg10);
|
142
|
+
Arg11_T arg11 = args->getArgumentOrDefault<Arg11_T>(11, varg11);
|
143
|
+
Arg12_T arg12 = args->getArgumentOrDefault<Arg12_T>(12, varg12);
|
144
|
+
Arg13_T arg13 = args->getArgumentOrDefault<Arg13_T>(13, varg13);
|
145
|
+
Arg14_T arg14 = args->getArgumentOrDefault<Arg14_T>(14, varg14);
|
146
|
+
Arg15_T arg15 = args->getArgumentOrDefault<Arg15_T>(15, varg15);
|
147
|
+
|
88
148
|
Func func = wrapper->func_;
|
89
|
-
(*obj.*func)(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15);
|
149
|
+
(*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15);
|
90
150
|
return Qnil;
|
91
151
|
}
|
92
152
|
catch(...)
|
@@ -107,32 +167,61 @@ call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_a
|
|
107
167
|
}
|
108
168
|
|
109
169
|
// ---------------------------------------------------------------------
|
110
|
-
template<typename Func_T, typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T, typename Arg13_T, typename Arg14_T>
|
111
|
-
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T>::
|
170
|
+
template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T, typename Arg13_T, typename Arg14_T>
|
171
|
+
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T>::
|
112
172
|
Auto_Member_Function_Wrapper(
|
113
173
|
Func func,
|
114
|
-
Data_Object<Exception_Handler> handler
|
174
|
+
Data_Object<Exception_Handler> handler,
|
175
|
+
Arguments* arguments)
|
115
176
|
: Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
|
116
177
|
, func_(func)
|
117
178
|
, handler_(handler)
|
118
179
|
, handler_guard_(&handler_)
|
180
|
+
, arguments_(arguments)
|
119
181
|
{
|
182
|
+
if(arguments == 0) {
|
183
|
+
arguments_ = new Arguments();
|
184
|
+
} else {
|
185
|
+
arguments_ = arguments;
|
186
|
+
}
|
120
187
|
}
|
121
188
|
|
122
|
-
template<typename Func_T, typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T, typename Arg13_T, typename Arg14_T>
|
123
|
-
VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T>::
|
124
|
-
call(
|
189
|
+
template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T, typename Arg13_T, typename Arg14_T>
|
190
|
+
VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T>::
|
191
|
+
call(int argc, VALUE* argv, VALUE self)
|
125
192
|
{
|
126
|
-
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T> * wrapper = 0;
|
193
|
+
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T> * wrapper = 0;
|
127
194
|
try
|
128
195
|
{
|
129
196
|
Data_Object<Wrapped_Function> data(detail::method_data());
|
130
197
|
wrapper =
|
131
|
-
(Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T> *)data.get();
|
198
|
+
(Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T> *)data.get();
|
199
|
+
Arguments* args = wrapper->arguments_;
|
200
|
+
|
201
|
+
VALUE varg0, varg1, varg2, varg3, varg4, varg5, varg6, varg7, varg8, varg9, varg10, varg11, varg12, varg13, varg14;
|
202
|
+
|
203
|
+
rb_scan_args(argc, argv, args->formatString(Num_Args),
|
204
|
+
&varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9, &varg10, &varg11, &varg12, &varg13, &varg14);
|
205
|
+
|
132
206
|
Self_T * obj = from_ruby<Self_T *>(self);
|
133
|
-
|
207
|
+
Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
|
208
|
+
Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
|
209
|
+
Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
|
210
|
+
Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
|
211
|
+
Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
|
212
|
+
Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
|
213
|
+
Arg6_T arg6 = args->getArgumentOrDefault<Arg6_T>(6, varg6);
|
214
|
+
Arg7_T arg7 = args->getArgumentOrDefault<Arg7_T>(7, varg7);
|
215
|
+
Arg8_T arg8 = args->getArgumentOrDefault<Arg8_T>(8, varg8);
|
216
|
+
Arg9_T arg9 = args->getArgumentOrDefault<Arg9_T>(9, varg9);
|
217
|
+
Arg10_T arg10 = args->getArgumentOrDefault<Arg10_T>(10, varg10);
|
218
|
+
Arg11_T arg11 = args->getArgumentOrDefault<Arg11_T>(11, varg11);
|
219
|
+
Arg12_T arg12 = args->getArgumentOrDefault<Arg12_T>(12, varg12);
|
220
|
+
Arg13_T arg13 = args->getArgumentOrDefault<Arg13_T>(13, varg13);
|
221
|
+
Arg14_T arg14 = args->getArgumentOrDefault<Arg14_T>(14, varg14);
|
222
|
+
|
134
223
|
Func func = wrapper->func_;
|
135
|
-
return to_ruby((*obj.*func)(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14));
|
224
|
+
return to_ruby((*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14));
|
136
225
|
}
|
137
226
|
catch(...)
|
138
227
|
{
|
@@ -151,32 +240,61 @@ call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_a
|
|
151
240
|
}
|
152
241
|
}
|
153
242
|
|
154
|
-
template<typename Func_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T, typename Arg13_T, typename Arg14_T>
|
155
|
-
Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T>::
|
243
|
+
template<typename Func_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T, typename Arg13_T, typename Arg14_T>
|
244
|
+
Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T>::
|
156
245
|
Auto_Member_Function_Wrapper(
|
157
246
|
Func func,
|
158
|
-
Data_Object<Exception_Handler> handler
|
247
|
+
Data_Object<Exception_Handler> handler,
|
248
|
+
Arguments* arguments)
|
159
249
|
: Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
|
160
250
|
, func_(func)
|
161
251
|
, handler_(handler)
|
162
252
|
, handler_guard_(&handler_)
|
253
|
+
, arguments_(arguments)
|
163
254
|
{
|
255
|
+
if(arguments == 0) {
|
256
|
+
arguments_ = new Arguments();
|
257
|
+
} else {
|
258
|
+
arguments_ = arguments;
|
259
|
+
}
|
164
260
|
}
|
165
261
|
|
166
|
-
template<typename Func_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T, typename Arg13_T, typename Arg14_T>
|
167
|
-
VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T>::
|
168
|
-
call(
|
262
|
+
template<typename Func_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T, typename Arg13_T, typename Arg14_T>
|
263
|
+
VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T>::
|
264
|
+
call(int argc, VALUE* argv, VALUE self)
|
169
265
|
{
|
170
|
-
Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T> * wrapper = 0;
|
266
|
+
Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T> * wrapper = 0;
|
171
267
|
try
|
172
268
|
{
|
173
269
|
Data_Object<Wrapped_Function> data(detail::method_data());
|
174
270
|
wrapper =
|
175
|
-
(Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T> *)data.get();
|
271
|
+
(Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T> *)data.get();
|
272
|
+
Arguments* args = wrapper->arguments_;
|
273
|
+
|
274
|
+
VALUE varg0, varg1, varg2, varg3, varg4, varg5, varg6, varg7, varg8, varg9, varg10, varg11, varg12, varg13, varg14;
|
275
|
+
|
276
|
+
rb_scan_args(argc, argv, args->formatString(Num_Args),
|
277
|
+
&varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9, &varg10, &varg11, &varg12, &varg13, &varg14);
|
278
|
+
|
176
279
|
Self_T * obj = from_ruby<Self_T *>(self);
|
177
|
-
|
280
|
+
Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
|
281
|
+
Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
|
282
|
+
Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
|
283
|
+
Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
|
284
|
+
Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
|
285
|
+
Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
|
286
|
+
Arg6_T arg6 = args->getArgumentOrDefault<Arg6_T>(6, varg6);
|
287
|
+
Arg7_T arg7 = args->getArgumentOrDefault<Arg7_T>(7, varg7);
|
288
|
+
Arg8_T arg8 = args->getArgumentOrDefault<Arg8_T>(8, varg8);
|
289
|
+
Arg9_T arg9 = args->getArgumentOrDefault<Arg9_T>(9, varg9);
|
290
|
+
Arg10_T arg10 = args->getArgumentOrDefault<Arg10_T>(10, varg10);
|
291
|
+
Arg11_T arg11 = args->getArgumentOrDefault<Arg11_T>(11, varg11);
|
292
|
+
Arg12_T arg12 = args->getArgumentOrDefault<Arg12_T>(12, varg12);
|
293
|
+
Arg13_T arg13 = args->getArgumentOrDefault<Arg13_T>(13, varg13);
|
294
|
+
Arg14_T arg14 = args->getArgumentOrDefault<Arg14_T>(14, varg14);
|
295
|
+
|
178
296
|
Func func = wrapper->func_;
|
179
|
-
(*obj.*func)(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14);
|
297
|
+
(*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14);
|
180
298
|
return Qnil;
|
181
299
|
}
|
182
300
|
catch(...)
|
@@ -197,32 +315,60 @@ call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_a
|
|
197
315
|
}
|
198
316
|
|
199
317
|
// ---------------------------------------------------------------------
|
200
|
-
template<typename Func_T, typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T, typename Arg13_T>
|
201
|
-
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T>::
|
318
|
+
template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T, typename Arg13_T>
|
319
|
+
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T>::
|
202
320
|
Auto_Member_Function_Wrapper(
|
203
321
|
Func func,
|
204
|
-
Data_Object<Exception_Handler> handler
|
322
|
+
Data_Object<Exception_Handler> handler,
|
323
|
+
Arguments* arguments)
|
205
324
|
: Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
|
206
325
|
, func_(func)
|
207
326
|
, handler_(handler)
|
208
327
|
, handler_guard_(&handler_)
|
328
|
+
, arguments_(arguments)
|
209
329
|
{
|
330
|
+
if(arguments == 0) {
|
331
|
+
arguments_ = new Arguments();
|
332
|
+
} else {
|
333
|
+
arguments_ = arguments;
|
334
|
+
}
|
210
335
|
}
|
211
336
|
|
212
|
-
template<typename Func_T, typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T, typename Arg13_T>
|
213
|
-
VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T>::
|
214
|
-
call(
|
337
|
+
template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T, typename Arg13_T>
|
338
|
+
VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T>::
|
339
|
+
call(int argc, VALUE* argv, VALUE self)
|
215
340
|
{
|
216
|
-
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T> * wrapper = 0;
|
341
|
+
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T> * wrapper = 0;
|
217
342
|
try
|
218
343
|
{
|
219
344
|
Data_Object<Wrapped_Function> data(detail::method_data());
|
220
345
|
wrapper =
|
221
|
-
(Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T> *)data.get();
|
346
|
+
(Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T> *)data.get();
|
347
|
+
Arguments* args = wrapper->arguments_;
|
348
|
+
|
349
|
+
VALUE varg0, varg1, varg2, varg3, varg4, varg5, varg6, varg7, varg8, varg9, varg10, varg11, varg12, varg13;
|
350
|
+
|
351
|
+
rb_scan_args(argc, argv, args->formatString(Num_Args),
|
352
|
+
&varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9, &varg10, &varg11, &varg12, &varg13);
|
353
|
+
|
222
354
|
Self_T * obj = from_ruby<Self_T *>(self);
|
223
|
-
|
355
|
+
Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
|
356
|
+
Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
|
357
|
+
Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
|
358
|
+
Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
|
359
|
+
Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
|
360
|
+
Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
|
361
|
+
Arg6_T arg6 = args->getArgumentOrDefault<Arg6_T>(6, varg6);
|
362
|
+
Arg7_T arg7 = args->getArgumentOrDefault<Arg7_T>(7, varg7);
|
363
|
+
Arg8_T arg8 = args->getArgumentOrDefault<Arg8_T>(8, varg8);
|
364
|
+
Arg9_T arg9 = args->getArgumentOrDefault<Arg9_T>(9, varg9);
|
365
|
+
Arg10_T arg10 = args->getArgumentOrDefault<Arg10_T>(10, varg10);
|
366
|
+
Arg11_T arg11 = args->getArgumentOrDefault<Arg11_T>(11, varg11);
|
367
|
+
Arg12_T arg12 = args->getArgumentOrDefault<Arg12_T>(12, varg12);
|
368
|
+
Arg13_T arg13 = args->getArgumentOrDefault<Arg13_T>(13, varg13);
|
369
|
+
|
224
370
|
Func func = wrapper->func_;
|
225
|
-
return to_ruby((*obj.*func)(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13));
|
371
|
+
return to_ruby((*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13));
|
226
372
|
}
|
227
373
|
catch(...)
|
228
374
|
{
|
@@ -241,32 +387,60 @@ call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_a
|
|
241
387
|
}
|
242
388
|
}
|
243
389
|
|
244
|
-
template<typename Func_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T, typename Arg13_T>
|
245
|
-
Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T>::
|
390
|
+
template<typename Func_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T, typename Arg13_T>
|
391
|
+
Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T>::
|
246
392
|
Auto_Member_Function_Wrapper(
|
247
393
|
Func func,
|
248
|
-
Data_Object<Exception_Handler> handler
|
394
|
+
Data_Object<Exception_Handler> handler,
|
395
|
+
Arguments* arguments)
|
249
396
|
: Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
|
250
397
|
, func_(func)
|
251
398
|
, handler_(handler)
|
252
399
|
, handler_guard_(&handler_)
|
400
|
+
, arguments_(arguments)
|
253
401
|
{
|
402
|
+
if(arguments == 0) {
|
403
|
+
arguments_ = new Arguments();
|
404
|
+
} else {
|
405
|
+
arguments_ = arguments;
|
406
|
+
}
|
254
407
|
}
|
255
408
|
|
256
|
-
template<typename Func_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T, typename Arg13_T>
|
257
|
-
VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T>::
|
258
|
-
call(
|
409
|
+
template<typename Func_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T, typename Arg13_T>
|
410
|
+
VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T>::
|
411
|
+
call(int argc, VALUE* argv, VALUE self)
|
259
412
|
{
|
260
|
-
Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T> * wrapper = 0;
|
413
|
+
Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T> * wrapper = 0;
|
261
414
|
try
|
262
415
|
{
|
263
416
|
Data_Object<Wrapped_Function> data(detail::method_data());
|
264
417
|
wrapper =
|
265
|
-
(Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T> *)data.get();
|
418
|
+
(Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T> *)data.get();
|
419
|
+
Arguments* args = wrapper->arguments_;
|
420
|
+
|
421
|
+
VALUE varg0, varg1, varg2, varg3, varg4, varg5, varg6, varg7, varg8, varg9, varg10, varg11, varg12, varg13;
|
422
|
+
|
423
|
+
rb_scan_args(argc, argv, args->formatString(Num_Args),
|
424
|
+
&varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9, &varg10, &varg11, &varg12, &varg13);
|
425
|
+
|
266
426
|
Self_T * obj = from_ruby<Self_T *>(self);
|
267
|
-
|
427
|
+
Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
|
428
|
+
Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
|
429
|
+
Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
|
430
|
+
Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
|
431
|
+
Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
|
432
|
+
Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
|
433
|
+
Arg6_T arg6 = args->getArgumentOrDefault<Arg6_T>(6, varg6);
|
434
|
+
Arg7_T arg7 = args->getArgumentOrDefault<Arg7_T>(7, varg7);
|
435
|
+
Arg8_T arg8 = args->getArgumentOrDefault<Arg8_T>(8, varg8);
|
436
|
+
Arg9_T arg9 = args->getArgumentOrDefault<Arg9_T>(9, varg9);
|
437
|
+
Arg10_T arg10 = args->getArgumentOrDefault<Arg10_T>(10, varg10);
|
438
|
+
Arg11_T arg11 = args->getArgumentOrDefault<Arg11_T>(11, varg11);
|
439
|
+
Arg12_T arg12 = args->getArgumentOrDefault<Arg12_T>(12, varg12);
|
440
|
+
Arg13_T arg13 = args->getArgumentOrDefault<Arg13_T>(13, varg13);
|
441
|
+
|
268
442
|
Func func = wrapper->func_;
|
269
|
-
(*obj.*func)(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13);
|
443
|
+
(*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13);
|
270
444
|
return Qnil;
|
271
445
|
}
|
272
446
|
catch(...)
|
@@ -287,32 +461,59 @@ call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_a
|
|
287
461
|
}
|
288
462
|
|
289
463
|
// ---------------------------------------------------------------------
|
290
|
-
template<typename Func_T, typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T>
|
291
|
-
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T>::
|
464
|
+
template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T>
|
465
|
+
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T>::
|
292
466
|
Auto_Member_Function_Wrapper(
|
293
467
|
Func func,
|
294
|
-
Data_Object<Exception_Handler> handler
|
468
|
+
Data_Object<Exception_Handler> handler,
|
469
|
+
Arguments* arguments)
|
295
470
|
: Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
|
296
471
|
, func_(func)
|
297
472
|
, handler_(handler)
|
298
473
|
, handler_guard_(&handler_)
|
474
|
+
, arguments_(arguments)
|
299
475
|
{
|
476
|
+
if(arguments == 0) {
|
477
|
+
arguments_ = new Arguments();
|
478
|
+
} else {
|
479
|
+
arguments_ = arguments;
|
480
|
+
}
|
300
481
|
}
|
301
482
|
|
302
|
-
template<typename Func_T, typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T>
|
303
|
-
VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T>::
|
304
|
-
call(
|
483
|
+
template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T>
|
484
|
+
VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T>::
|
485
|
+
call(int argc, VALUE* argv, VALUE self)
|
305
486
|
{
|
306
|
-
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T> * wrapper = 0;
|
487
|
+
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T> * wrapper = 0;
|
307
488
|
try
|
308
489
|
{
|
309
490
|
Data_Object<Wrapped_Function> data(detail::method_data());
|
310
491
|
wrapper =
|
311
|
-
(Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T> *)data.get();
|
492
|
+
(Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T> *)data.get();
|
493
|
+
Arguments* args = wrapper->arguments_;
|
494
|
+
|
495
|
+
VALUE varg0, varg1, varg2, varg3, varg4, varg5, varg6, varg7, varg8, varg9, varg10, varg11, varg12;
|
496
|
+
|
497
|
+
rb_scan_args(argc, argv, args->formatString(Num_Args),
|
498
|
+
&varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9, &varg10, &varg11, &varg12);
|
499
|
+
|
312
500
|
Self_T * obj = from_ruby<Self_T *>(self);
|
313
|
-
|
501
|
+
Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
|
502
|
+
Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
|
503
|
+
Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
|
504
|
+
Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
|
505
|
+
Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
|
506
|
+
Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
|
507
|
+
Arg6_T arg6 = args->getArgumentOrDefault<Arg6_T>(6, varg6);
|
508
|
+
Arg7_T arg7 = args->getArgumentOrDefault<Arg7_T>(7, varg7);
|
509
|
+
Arg8_T arg8 = args->getArgumentOrDefault<Arg8_T>(8, varg8);
|
510
|
+
Arg9_T arg9 = args->getArgumentOrDefault<Arg9_T>(9, varg9);
|
511
|
+
Arg10_T arg10 = args->getArgumentOrDefault<Arg10_T>(10, varg10);
|
512
|
+
Arg11_T arg11 = args->getArgumentOrDefault<Arg11_T>(11, varg11);
|
513
|
+
Arg12_T arg12 = args->getArgumentOrDefault<Arg12_T>(12, varg12);
|
514
|
+
|
314
515
|
Func func = wrapper->func_;
|
315
|
-
return to_ruby((*obj.*func)(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12));
|
516
|
+
return to_ruby((*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12));
|
316
517
|
}
|
317
518
|
catch(...)
|
318
519
|
{
|
@@ -331,32 +532,59 @@ call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_a
|
|
331
532
|
}
|
332
533
|
}
|
333
534
|
|
334
|
-
template<typename Func_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T>
|
335
|
-
Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T>::
|
535
|
+
template<typename Func_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T>
|
536
|
+
Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T>::
|
336
537
|
Auto_Member_Function_Wrapper(
|
337
538
|
Func func,
|
338
|
-
Data_Object<Exception_Handler> handler
|
539
|
+
Data_Object<Exception_Handler> handler,
|
540
|
+
Arguments* arguments)
|
339
541
|
: Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
|
340
542
|
, func_(func)
|
341
543
|
, handler_(handler)
|
342
544
|
, handler_guard_(&handler_)
|
545
|
+
, arguments_(arguments)
|
343
546
|
{
|
547
|
+
if(arguments == 0) {
|
548
|
+
arguments_ = new Arguments();
|
549
|
+
} else {
|
550
|
+
arguments_ = arguments;
|
551
|
+
}
|
344
552
|
}
|
345
553
|
|
346
|
-
template<typename Func_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T>
|
347
|
-
VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T>::
|
348
|
-
call(
|
554
|
+
template<typename Func_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T>
|
555
|
+
VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T>::
|
556
|
+
call(int argc, VALUE* argv, VALUE self)
|
349
557
|
{
|
350
|
-
Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T> * wrapper = 0;
|
558
|
+
Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T> * wrapper = 0;
|
351
559
|
try
|
352
560
|
{
|
353
561
|
Data_Object<Wrapped_Function> data(detail::method_data());
|
354
562
|
wrapper =
|
355
|
-
(Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T> *)data.get();
|
563
|
+
(Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T> *)data.get();
|
564
|
+
Arguments* args = wrapper->arguments_;
|
565
|
+
|
566
|
+
VALUE varg0, varg1, varg2, varg3, varg4, varg5, varg6, varg7, varg8, varg9, varg10, varg11, varg12;
|
567
|
+
|
568
|
+
rb_scan_args(argc, argv, args->formatString(Num_Args),
|
569
|
+
&varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9, &varg10, &varg11, &varg12);
|
570
|
+
|
356
571
|
Self_T * obj = from_ruby<Self_T *>(self);
|
357
|
-
|
572
|
+
Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
|
573
|
+
Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
|
574
|
+
Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
|
575
|
+
Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
|
576
|
+
Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
|
577
|
+
Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
|
578
|
+
Arg6_T arg6 = args->getArgumentOrDefault<Arg6_T>(6, varg6);
|
579
|
+
Arg7_T arg7 = args->getArgumentOrDefault<Arg7_T>(7, varg7);
|
580
|
+
Arg8_T arg8 = args->getArgumentOrDefault<Arg8_T>(8, varg8);
|
581
|
+
Arg9_T arg9 = args->getArgumentOrDefault<Arg9_T>(9, varg9);
|
582
|
+
Arg10_T arg10 = args->getArgumentOrDefault<Arg10_T>(10, varg10);
|
583
|
+
Arg11_T arg11 = args->getArgumentOrDefault<Arg11_T>(11, varg11);
|
584
|
+
Arg12_T arg12 = args->getArgumentOrDefault<Arg12_T>(12, varg12);
|
585
|
+
|
358
586
|
Func func = wrapper->func_;
|
359
|
-
(*obj.*func)(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12);
|
587
|
+
(*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12);
|
360
588
|
return Qnil;
|
361
589
|
}
|
362
590
|
catch(...)
|
@@ -377,32 +605,58 @@ call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_a
|
|
377
605
|
}
|
378
606
|
|
379
607
|
// ---------------------------------------------------------------------
|
380
|
-
template<typename Func_T, typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T>
|
381
|
-
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T>::
|
608
|
+
template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T>
|
609
|
+
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T>::
|
382
610
|
Auto_Member_Function_Wrapper(
|
383
611
|
Func func,
|
384
|
-
Data_Object<Exception_Handler> handler
|
612
|
+
Data_Object<Exception_Handler> handler,
|
613
|
+
Arguments* arguments)
|
385
614
|
: Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
|
386
615
|
, func_(func)
|
387
616
|
, handler_(handler)
|
388
617
|
, handler_guard_(&handler_)
|
618
|
+
, arguments_(arguments)
|
389
619
|
{
|
620
|
+
if(arguments == 0) {
|
621
|
+
arguments_ = new Arguments();
|
622
|
+
} else {
|
623
|
+
arguments_ = arguments;
|
624
|
+
}
|
390
625
|
}
|
391
626
|
|
392
|
-
template<typename Func_T, typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T>
|
393
|
-
VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T>::
|
394
|
-
call(
|
627
|
+
template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T>
|
628
|
+
VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T>::
|
629
|
+
call(int argc, VALUE* argv, VALUE self)
|
395
630
|
{
|
396
|
-
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T> * wrapper = 0;
|
631
|
+
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T> * wrapper = 0;
|
397
632
|
try
|
398
633
|
{
|
399
634
|
Data_Object<Wrapped_Function> data(detail::method_data());
|
400
635
|
wrapper =
|
401
|
-
(Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T> *)data.get();
|
636
|
+
(Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T> *)data.get();
|
637
|
+
Arguments* args = wrapper->arguments_;
|
638
|
+
|
639
|
+
VALUE varg0, varg1, varg2, varg3, varg4, varg5, varg6, varg7, varg8, varg9, varg10, varg11;
|
640
|
+
|
641
|
+
rb_scan_args(argc, argv, args->formatString(Num_Args),
|
642
|
+
&varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9, &varg10, &varg11);
|
643
|
+
|
402
644
|
Self_T * obj = from_ruby<Self_T *>(self);
|
403
|
-
|
645
|
+
Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
|
646
|
+
Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
|
647
|
+
Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
|
648
|
+
Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
|
649
|
+
Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
|
650
|
+
Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
|
651
|
+
Arg6_T arg6 = args->getArgumentOrDefault<Arg6_T>(6, varg6);
|
652
|
+
Arg7_T arg7 = args->getArgumentOrDefault<Arg7_T>(7, varg7);
|
653
|
+
Arg8_T arg8 = args->getArgumentOrDefault<Arg8_T>(8, varg8);
|
654
|
+
Arg9_T arg9 = args->getArgumentOrDefault<Arg9_T>(9, varg9);
|
655
|
+
Arg10_T arg10 = args->getArgumentOrDefault<Arg10_T>(10, varg10);
|
656
|
+
Arg11_T arg11 = args->getArgumentOrDefault<Arg11_T>(11, varg11);
|
657
|
+
|
404
658
|
Func func = wrapper->func_;
|
405
|
-
return to_ruby((*obj.*func)(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11));
|
659
|
+
return to_ruby((*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11));
|
406
660
|
}
|
407
661
|
catch(...)
|
408
662
|
{
|
@@ -421,32 +675,58 @@ call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_a
|
|
421
675
|
}
|
422
676
|
}
|
423
677
|
|
424
|
-
template<typename Func_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T>
|
425
|
-
Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T>::
|
678
|
+
template<typename Func_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T>
|
679
|
+
Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T>::
|
426
680
|
Auto_Member_Function_Wrapper(
|
427
681
|
Func func,
|
428
|
-
Data_Object<Exception_Handler> handler
|
682
|
+
Data_Object<Exception_Handler> handler,
|
683
|
+
Arguments* arguments)
|
429
684
|
: Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
|
430
685
|
, func_(func)
|
431
686
|
, handler_(handler)
|
432
687
|
, handler_guard_(&handler_)
|
688
|
+
, arguments_(arguments)
|
433
689
|
{
|
690
|
+
if(arguments == 0) {
|
691
|
+
arguments_ = new Arguments();
|
692
|
+
} else {
|
693
|
+
arguments_ = arguments;
|
694
|
+
}
|
434
695
|
}
|
435
696
|
|
436
|
-
template<typename Func_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T>
|
437
|
-
VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T>::
|
438
|
-
call(
|
697
|
+
template<typename Func_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T>
|
698
|
+
VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T>::
|
699
|
+
call(int argc, VALUE* argv, VALUE self)
|
439
700
|
{
|
440
|
-
Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T> * wrapper = 0;
|
701
|
+
Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T> * wrapper = 0;
|
441
702
|
try
|
442
703
|
{
|
443
704
|
Data_Object<Wrapped_Function> data(detail::method_data());
|
444
705
|
wrapper =
|
445
|
-
(Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T> *)data.get();
|
706
|
+
(Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T> *)data.get();
|
707
|
+
Arguments* args = wrapper->arguments_;
|
708
|
+
|
709
|
+
VALUE varg0, varg1, varg2, varg3, varg4, varg5, varg6, varg7, varg8, varg9, varg10, varg11;
|
710
|
+
|
711
|
+
rb_scan_args(argc, argv, args->formatString(Num_Args),
|
712
|
+
&varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9, &varg10, &varg11);
|
713
|
+
|
446
714
|
Self_T * obj = from_ruby<Self_T *>(self);
|
447
|
-
|
715
|
+
Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
|
716
|
+
Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
|
717
|
+
Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
|
718
|
+
Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
|
719
|
+
Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
|
720
|
+
Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
|
721
|
+
Arg6_T arg6 = args->getArgumentOrDefault<Arg6_T>(6, varg6);
|
722
|
+
Arg7_T arg7 = args->getArgumentOrDefault<Arg7_T>(7, varg7);
|
723
|
+
Arg8_T arg8 = args->getArgumentOrDefault<Arg8_T>(8, varg8);
|
724
|
+
Arg9_T arg9 = args->getArgumentOrDefault<Arg9_T>(9, varg9);
|
725
|
+
Arg10_T arg10 = args->getArgumentOrDefault<Arg10_T>(10, varg10);
|
726
|
+
Arg11_T arg11 = args->getArgumentOrDefault<Arg11_T>(11, varg11);
|
727
|
+
|
448
728
|
Func func = wrapper->func_;
|
449
|
-
(*obj.*func)(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11);
|
729
|
+
(*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11);
|
450
730
|
return Qnil;
|
451
731
|
}
|
452
732
|
catch(...)
|
@@ -467,32 +747,57 @@ call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_a
|
|
467
747
|
}
|
468
748
|
|
469
749
|
// ---------------------------------------------------------------------
|
470
|
-
template<typename Func_T, typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T>
|
471
|
-
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T>::
|
750
|
+
template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T>
|
751
|
+
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T>::
|
472
752
|
Auto_Member_Function_Wrapper(
|
473
753
|
Func func,
|
474
|
-
Data_Object<Exception_Handler> handler
|
754
|
+
Data_Object<Exception_Handler> handler,
|
755
|
+
Arguments* arguments)
|
475
756
|
: Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
|
476
757
|
, func_(func)
|
477
758
|
, handler_(handler)
|
478
759
|
, handler_guard_(&handler_)
|
760
|
+
, arguments_(arguments)
|
479
761
|
{
|
762
|
+
if(arguments == 0) {
|
763
|
+
arguments_ = new Arguments();
|
764
|
+
} else {
|
765
|
+
arguments_ = arguments;
|
766
|
+
}
|
480
767
|
}
|
481
768
|
|
482
|
-
template<typename Func_T, typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T>
|
483
|
-
VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T>::
|
484
|
-
call(
|
769
|
+
template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T>
|
770
|
+
VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T>::
|
771
|
+
call(int argc, VALUE* argv, VALUE self)
|
485
772
|
{
|
486
|
-
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T> * wrapper = 0;
|
773
|
+
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T> * wrapper = 0;
|
487
774
|
try
|
488
775
|
{
|
489
776
|
Data_Object<Wrapped_Function> data(detail::method_data());
|
490
777
|
wrapper =
|
491
|
-
(Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T> *)data.get();
|
778
|
+
(Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T> *)data.get();
|
779
|
+
Arguments* args = wrapper->arguments_;
|
780
|
+
|
781
|
+
VALUE varg0, varg1, varg2, varg3, varg4, varg5, varg6, varg7, varg8, varg9, varg10;
|
782
|
+
|
783
|
+
rb_scan_args(argc, argv, args->formatString(Num_Args),
|
784
|
+
&varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9, &varg10);
|
785
|
+
|
492
786
|
Self_T * obj = from_ruby<Self_T *>(self);
|
493
|
-
|
787
|
+
Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
|
788
|
+
Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
|
789
|
+
Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
|
790
|
+
Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
|
791
|
+
Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
|
792
|
+
Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
|
793
|
+
Arg6_T arg6 = args->getArgumentOrDefault<Arg6_T>(6, varg6);
|
794
|
+
Arg7_T arg7 = args->getArgumentOrDefault<Arg7_T>(7, varg7);
|
795
|
+
Arg8_T arg8 = args->getArgumentOrDefault<Arg8_T>(8, varg8);
|
796
|
+
Arg9_T arg9 = args->getArgumentOrDefault<Arg9_T>(9, varg9);
|
797
|
+
Arg10_T arg10 = args->getArgumentOrDefault<Arg10_T>(10, varg10);
|
798
|
+
|
494
799
|
Func func = wrapper->func_;
|
495
|
-
return to_ruby((*obj.*func)(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10));
|
800
|
+
return to_ruby((*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10));
|
496
801
|
}
|
497
802
|
catch(...)
|
498
803
|
{
|
@@ -511,32 +816,57 @@ call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_a
|
|
511
816
|
}
|
512
817
|
}
|
513
818
|
|
514
|
-
template<typename Func_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T>
|
515
|
-
Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T>::
|
819
|
+
template<typename Func_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T>
|
820
|
+
Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T>::
|
516
821
|
Auto_Member_Function_Wrapper(
|
517
822
|
Func func,
|
518
|
-
Data_Object<Exception_Handler> handler
|
823
|
+
Data_Object<Exception_Handler> handler,
|
824
|
+
Arguments* arguments)
|
519
825
|
: Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
|
520
826
|
, func_(func)
|
521
827
|
, handler_(handler)
|
522
828
|
, handler_guard_(&handler_)
|
829
|
+
, arguments_(arguments)
|
523
830
|
{
|
831
|
+
if(arguments == 0) {
|
832
|
+
arguments_ = new Arguments();
|
833
|
+
} else {
|
834
|
+
arguments_ = arguments;
|
835
|
+
}
|
524
836
|
}
|
525
837
|
|
526
|
-
template<typename Func_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T>
|
527
|
-
VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T>::
|
528
|
-
call(
|
838
|
+
template<typename Func_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T>
|
839
|
+
VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T>::
|
840
|
+
call(int argc, VALUE* argv, VALUE self)
|
529
841
|
{
|
530
|
-
Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T> * wrapper = 0;
|
842
|
+
Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T> * wrapper = 0;
|
531
843
|
try
|
532
844
|
{
|
533
845
|
Data_Object<Wrapped_Function> data(detail::method_data());
|
534
846
|
wrapper =
|
535
|
-
(Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T> *)data.get();
|
847
|
+
(Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T> *)data.get();
|
848
|
+
Arguments* args = wrapper->arguments_;
|
849
|
+
|
850
|
+
VALUE varg0, varg1, varg2, varg3, varg4, varg5, varg6, varg7, varg8, varg9, varg10;
|
851
|
+
|
852
|
+
rb_scan_args(argc, argv, args->formatString(Num_Args),
|
853
|
+
&varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9, &varg10);
|
854
|
+
|
536
855
|
Self_T * obj = from_ruby<Self_T *>(self);
|
537
|
-
|
856
|
+
Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
|
857
|
+
Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
|
858
|
+
Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
|
859
|
+
Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
|
860
|
+
Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
|
861
|
+
Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
|
862
|
+
Arg6_T arg6 = args->getArgumentOrDefault<Arg6_T>(6, varg6);
|
863
|
+
Arg7_T arg7 = args->getArgumentOrDefault<Arg7_T>(7, varg7);
|
864
|
+
Arg8_T arg8 = args->getArgumentOrDefault<Arg8_T>(8, varg8);
|
865
|
+
Arg9_T arg9 = args->getArgumentOrDefault<Arg9_T>(9, varg9);
|
866
|
+
Arg10_T arg10 = args->getArgumentOrDefault<Arg10_T>(10, varg10);
|
867
|
+
|
538
868
|
Func func = wrapper->func_;
|
539
|
-
(*obj.*func)(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10);
|
869
|
+
(*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10);
|
540
870
|
return Qnil;
|
541
871
|
}
|
542
872
|
catch(...)
|
@@ -557,32 +887,56 @@ call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_a
|
|
557
887
|
}
|
558
888
|
|
559
889
|
// ---------------------------------------------------------------------
|
560
|
-
template<typename Func_T, typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T>
|
561
|
-
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T>::
|
890
|
+
template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T>
|
891
|
+
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T>::
|
562
892
|
Auto_Member_Function_Wrapper(
|
563
893
|
Func func,
|
564
|
-
Data_Object<Exception_Handler> handler
|
894
|
+
Data_Object<Exception_Handler> handler,
|
895
|
+
Arguments* arguments)
|
565
896
|
: Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
|
566
897
|
, func_(func)
|
567
898
|
, handler_(handler)
|
568
899
|
, handler_guard_(&handler_)
|
900
|
+
, arguments_(arguments)
|
569
901
|
{
|
902
|
+
if(arguments == 0) {
|
903
|
+
arguments_ = new Arguments();
|
904
|
+
} else {
|
905
|
+
arguments_ = arguments;
|
906
|
+
}
|
570
907
|
}
|
571
908
|
|
572
|
-
template<typename Func_T, typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T>
|
573
|
-
VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T>::
|
574
|
-
call(
|
909
|
+
template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T>
|
910
|
+
VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T>::
|
911
|
+
call(int argc, VALUE* argv, VALUE self)
|
575
912
|
{
|
576
|
-
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T> * wrapper = 0;
|
913
|
+
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T> * wrapper = 0;
|
577
914
|
try
|
578
915
|
{
|
579
916
|
Data_Object<Wrapped_Function> data(detail::method_data());
|
580
917
|
wrapper =
|
581
|
-
(Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T> *)data.get();
|
918
|
+
(Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T> *)data.get();
|
919
|
+
Arguments* args = wrapper->arguments_;
|
920
|
+
|
921
|
+
VALUE varg0, varg1, varg2, varg3, varg4, varg5, varg6, varg7, varg8, varg9;
|
922
|
+
|
923
|
+
rb_scan_args(argc, argv, args->formatString(Num_Args),
|
924
|
+
&varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9);
|
925
|
+
|
582
926
|
Self_T * obj = from_ruby<Self_T *>(self);
|
583
|
-
|
927
|
+
Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
|
928
|
+
Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
|
929
|
+
Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
|
930
|
+
Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
|
931
|
+
Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
|
932
|
+
Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
|
933
|
+
Arg6_T arg6 = args->getArgumentOrDefault<Arg6_T>(6, varg6);
|
934
|
+
Arg7_T arg7 = args->getArgumentOrDefault<Arg7_T>(7, varg7);
|
935
|
+
Arg8_T arg8 = args->getArgumentOrDefault<Arg8_T>(8, varg8);
|
936
|
+
Arg9_T arg9 = args->getArgumentOrDefault<Arg9_T>(9, varg9);
|
937
|
+
|
584
938
|
Func func = wrapper->func_;
|
585
|
-
return to_ruby((*obj.*func)(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9));
|
939
|
+
return to_ruby((*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9));
|
586
940
|
}
|
587
941
|
catch(...)
|
588
942
|
{
|
@@ -601,32 +955,56 @@ call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_a
|
|
601
955
|
}
|
602
956
|
}
|
603
957
|
|
604
|
-
template<typename Func_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T>
|
605
|
-
Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T>::
|
958
|
+
template<typename Func_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T>
|
959
|
+
Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T>::
|
606
960
|
Auto_Member_Function_Wrapper(
|
607
961
|
Func func,
|
608
|
-
Data_Object<Exception_Handler> handler
|
962
|
+
Data_Object<Exception_Handler> handler,
|
963
|
+
Arguments* arguments)
|
609
964
|
: Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
|
610
965
|
, func_(func)
|
611
966
|
, handler_(handler)
|
612
967
|
, handler_guard_(&handler_)
|
968
|
+
, arguments_(arguments)
|
613
969
|
{
|
970
|
+
if(arguments == 0) {
|
971
|
+
arguments_ = new Arguments();
|
972
|
+
} else {
|
973
|
+
arguments_ = arguments;
|
974
|
+
}
|
614
975
|
}
|
615
976
|
|
616
|
-
template<typename Func_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T>
|
617
|
-
VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T>::
|
618
|
-
call(
|
977
|
+
template<typename Func_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T>
|
978
|
+
VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T>::
|
979
|
+
call(int argc, VALUE* argv, VALUE self)
|
619
980
|
{
|
620
|
-
Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T> * wrapper = 0;
|
981
|
+
Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T> * wrapper = 0;
|
621
982
|
try
|
622
983
|
{
|
623
984
|
Data_Object<Wrapped_Function> data(detail::method_data());
|
624
985
|
wrapper =
|
625
|
-
(Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T> *)data.get();
|
986
|
+
(Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T> *)data.get();
|
987
|
+
Arguments* args = wrapper->arguments_;
|
988
|
+
|
989
|
+
VALUE varg0, varg1, varg2, varg3, varg4, varg5, varg6, varg7, varg8, varg9;
|
990
|
+
|
991
|
+
rb_scan_args(argc, argv, args->formatString(Num_Args),
|
992
|
+
&varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9);
|
993
|
+
|
626
994
|
Self_T * obj = from_ruby<Self_T *>(self);
|
627
|
-
|
995
|
+
Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
|
996
|
+
Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
|
997
|
+
Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
|
998
|
+
Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
|
999
|
+
Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
|
1000
|
+
Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
|
1001
|
+
Arg6_T arg6 = args->getArgumentOrDefault<Arg6_T>(6, varg6);
|
1002
|
+
Arg7_T arg7 = args->getArgumentOrDefault<Arg7_T>(7, varg7);
|
1003
|
+
Arg8_T arg8 = args->getArgumentOrDefault<Arg8_T>(8, varg8);
|
1004
|
+
Arg9_T arg9 = args->getArgumentOrDefault<Arg9_T>(9, varg9);
|
1005
|
+
|
628
1006
|
Func func = wrapper->func_;
|
629
|
-
(*obj.*func)(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
|
1007
|
+
(*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
|
630
1008
|
return Qnil;
|
631
1009
|
}
|
632
1010
|
catch(...)
|
@@ -647,32 +1025,55 @@ call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_a
|
|
647
1025
|
}
|
648
1026
|
|
649
1027
|
// ---------------------------------------------------------------------
|
650
|
-
template<typename Func_T, typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T>
|
651
|
-
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T>::
|
1028
|
+
template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T>
|
1029
|
+
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T>::
|
652
1030
|
Auto_Member_Function_Wrapper(
|
653
1031
|
Func func,
|
654
|
-
Data_Object<Exception_Handler> handler
|
1032
|
+
Data_Object<Exception_Handler> handler,
|
1033
|
+
Arguments* arguments)
|
655
1034
|
: Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
|
656
1035
|
, func_(func)
|
657
1036
|
, handler_(handler)
|
658
1037
|
, handler_guard_(&handler_)
|
1038
|
+
, arguments_(arguments)
|
659
1039
|
{
|
1040
|
+
if(arguments == 0) {
|
1041
|
+
arguments_ = new Arguments();
|
1042
|
+
} else {
|
1043
|
+
arguments_ = arguments;
|
1044
|
+
}
|
660
1045
|
}
|
661
1046
|
|
662
|
-
template<typename Func_T, typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T>
|
663
|
-
VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T>::
|
664
|
-
call(
|
1047
|
+
template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T>
|
1048
|
+
VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T>::
|
1049
|
+
call(int argc, VALUE* argv, VALUE self)
|
665
1050
|
{
|
666
|
-
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T> * wrapper = 0;
|
1051
|
+
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T> * wrapper = 0;
|
667
1052
|
try
|
668
1053
|
{
|
669
1054
|
Data_Object<Wrapped_Function> data(detail::method_data());
|
670
1055
|
wrapper =
|
671
|
-
(Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T> *)data.get();
|
1056
|
+
(Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T> *)data.get();
|
1057
|
+
Arguments* args = wrapper->arguments_;
|
1058
|
+
|
1059
|
+
VALUE varg0, varg1, varg2, varg3, varg4, varg5, varg6, varg7, varg8;
|
1060
|
+
|
1061
|
+
rb_scan_args(argc, argv, args->formatString(Num_Args),
|
1062
|
+
&varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8);
|
1063
|
+
|
672
1064
|
Self_T * obj = from_ruby<Self_T *>(self);
|
673
|
-
|
1065
|
+
Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
|
1066
|
+
Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
|
1067
|
+
Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
|
1068
|
+
Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
|
1069
|
+
Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
|
1070
|
+
Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
|
1071
|
+
Arg6_T arg6 = args->getArgumentOrDefault<Arg6_T>(6, varg6);
|
1072
|
+
Arg7_T arg7 = args->getArgumentOrDefault<Arg7_T>(7, varg7);
|
1073
|
+
Arg8_T arg8 = args->getArgumentOrDefault<Arg8_T>(8, varg8);
|
1074
|
+
|
674
1075
|
Func func = wrapper->func_;
|
675
|
-
return to_ruby((*obj.*func)(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8));
|
1076
|
+
return to_ruby((*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8));
|
676
1077
|
}
|
677
1078
|
catch(...)
|
678
1079
|
{
|
@@ -691,32 +1092,55 @@ call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_a
|
|
691
1092
|
}
|
692
1093
|
}
|
693
1094
|
|
694
|
-
template<typename Func_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T>
|
695
|
-
Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T>::
|
1095
|
+
template<typename Func_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T>
|
1096
|
+
Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T>::
|
696
1097
|
Auto_Member_Function_Wrapper(
|
697
1098
|
Func func,
|
698
|
-
Data_Object<Exception_Handler> handler
|
1099
|
+
Data_Object<Exception_Handler> handler,
|
1100
|
+
Arguments* arguments)
|
699
1101
|
: Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
|
700
1102
|
, func_(func)
|
701
1103
|
, handler_(handler)
|
702
1104
|
, handler_guard_(&handler_)
|
1105
|
+
, arguments_(arguments)
|
703
1106
|
{
|
1107
|
+
if(arguments == 0) {
|
1108
|
+
arguments_ = new Arguments();
|
1109
|
+
} else {
|
1110
|
+
arguments_ = arguments;
|
1111
|
+
}
|
704
1112
|
}
|
705
1113
|
|
706
|
-
template<typename Func_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T>
|
707
|
-
VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T>::
|
708
|
-
call(
|
1114
|
+
template<typename Func_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T>
|
1115
|
+
VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T>::
|
1116
|
+
call(int argc, VALUE* argv, VALUE self)
|
709
1117
|
{
|
710
|
-
Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T> * wrapper = 0;
|
1118
|
+
Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T> * wrapper = 0;
|
711
1119
|
try
|
712
1120
|
{
|
713
1121
|
Data_Object<Wrapped_Function> data(detail::method_data());
|
714
1122
|
wrapper =
|
715
|
-
(Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T> *)data.get();
|
1123
|
+
(Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T> *)data.get();
|
1124
|
+
Arguments* args = wrapper->arguments_;
|
1125
|
+
|
1126
|
+
VALUE varg0, varg1, varg2, varg3, varg4, varg5, varg6, varg7, varg8;
|
1127
|
+
|
1128
|
+
rb_scan_args(argc, argv, args->formatString(Num_Args),
|
1129
|
+
&varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8);
|
1130
|
+
|
716
1131
|
Self_T * obj = from_ruby<Self_T *>(self);
|
717
|
-
|
1132
|
+
Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
|
1133
|
+
Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
|
1134
|
+
Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
|
1135
|
+
Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
|
1136
|
+
Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
|
1137
|
+
Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
|
1138
|
+
Arg6_T arg6 = args->getArgumentOrDefault<Arg6_T>(6, varg6);
|
1139
|
+
Arg7_T arg7 = args->getArgumentOrDefault<Arg7_T>(7, varg7);
|
1140
|
+
Arg8_T arg8 = args->getArgumentOrDefault<Arg8_T>(8, varg8);
|
1141
|
+
|
718
1142
|
Func func = wrapper->func_;
|
719
|
-
(*obj.*func)(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
|
1143
|
+
(*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
|
720
1144
|
return Qnil;
|
721
1145
|
}
|
722
1146
|
catch(...)
|
@@ -737,32 +1161,54 @@ call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_a
|
|
737
1161
|
}
|
738
1162
|
|
739
1163
|
// ---------------------------------------------------------------------
|
740
|
-
template<typename Func_T, typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T>
|
741
|
-
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T>::
|
1164
|
+
template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T>
|
1165
|
+
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T>::
|
742
1166
|
Auto_Member_Function_Wrapper(
|
743
1167
|
Func func,
|
744
|
-
Data_Object<Exception_Handler> handler
|
1168
|
+
Data_Object<Exception_Handler> handler,
|
1169
|
+
Arguments* arguments)
|
745
1170
|
: Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
|
746
1171
|
, func_(func)
|
747
1172
|
, handler_(handler)
|
748
1173
|
, handler_guard_(&handler_)
|
1174
|
+
, arguments_(arguments)
|
749
1175
|
{
|
1176
|
+
if(arguments == 0) {
|
1177
|
+
arguments_ = new Arguments();
|
1178
|
+
} else {
|
1179
|
+
arguments_ = arguments;
|
1180
|
+
}
|
750
1181
|
}
|
751
1182
|
|
752
|
-
template<typename Func_T, typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T>
|
753
|
-
VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T>::
|
754
|
-
call(
|
1183
|
+
template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T>
|
1184
|
+
VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T>::
|
1185
|
+
call(int argc, VALUE* argv, VALUE self)
|
755
1186
|
{
|
756
|
-
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T> * wrapper = 0;
|
1187
|
+
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T> * wrapper = 0;
|
757
1188
|
try
|
758
1189
|
{
|
759
1190
|
Data_Object<Wrapped_Function> data(detail::method_data());
|
760
1191
|
wrapper =
|
761
|
-
(Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T> *)data.get();
|
1192
|
+
(Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T> *)data.get();
|
1193
|
+
Arguments* args = wrapper->arguments_;
|
1194
|
+
|
1195
|
+
VALUE varg0, varg1, varg2, varg3, varg4, varg5, varg6, varg7;
|
1196
|
+
|
1197
|
+
rb_scan_args(argc, argv, args->formatString(Num_Args),
|
1198
|
+
&varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7);
|
1199
|
+
|
762
1200
|
Self_T * obj = from_ruby<Self_T *>(self);
|
763
|
-
|
1201
|
+
Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
|
1202
|
+
Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
|
1203
|
+
Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
|
1204
|
+
Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
|
1205
|
+
Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
|
1206
|
+
Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
|
1207
|
+
Arg6_T arg6 = args->getArgumentOrDefault<Arg6_T>(6, varg6);
|
1208
|
+
Arg7_T arg7 = args->getArgumentOrDefault<Arg7_T>(7, varg7);
|
1209
|
+
|
764
1210
|
Func func = wrapper->func_;
|
765
|
-
return to_ruby((*obj.*func)(arg1, arg2, arg3, arg4, arg5, arg6, arg7));
|
1211
|
+
return to_ruby((*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7));
|
766
1212
|
}
|
767
1213
|
catch(...)
|
768
1214
|
{
|
@@ -781,32 +1227,54 @@ call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_a
|
|
781
1227
|
}
|
782
1228
|
}
|
783
1229
|
|
784
|
-
template<typename Func_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T>
|
785
|
-
Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T>::
|
1230
|
+
template<typename Func_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T>
|
1231
|
+
Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T>::
|
786
1232
|
Auto_Member_Function_Wrapper(
|
787
1233
|
Func func,
|
788
|
-
Data_Object<Exception_Handler> handler
|
1234
|
+
Data_Object<Exception_Handler> handler,
|
1235
|
+
Arguments* arguments)
|
789
1236
|
: Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
|
790
1237
|
, func_(func)
|
791
1238
|
, handler_(handler)
|
792
1239
|
, handler_guard_(&handler_)
|
1240
|
+
, arguments_(arguments)
|
793
1241
|
{
|
1242
|
+
if(arguments == 0) {
|
1243
|
+
arguments_ = new Arguments();
|
1244
|
+
} else {
|
1245
|
+
arguments_ = arguments;
|
1246
|
+
}
|
794
1247
|
}
|
795
1248
|
|
796
|
-
template<typename Func_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T>
|
797
|
-
VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T>::
|
798
|
-
call(
|
1249
|
+
template<typename Func_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T>
|
1250
|
+
VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T>::
|
1251
|
+
call(int argc, VALUE* argv, VALUE self)
|
799
1252
|
{
|
800
|
-
Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T> * wrapper = 0;
|
1253
|
+
Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T> * wrapper = 0;
|
801
1254
|
try
|
802
1255
|
{
|
803
1256
|
Data_Object<Wrapped_Function> data(detail::method_data());
|
804
1257
|
wrapper =
|
805
|
-
(Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T> *)data.get();
|
1258
|
+
(Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T> *)data.get();
|
1259
|
+
Arguments* args = wrapper->arguments_;
|
1260
|
+
|
1261
|
+
VALUE varg0, varg1, varg2, varg3, varg4, varg5, varg6, varg7;
|
1262
|
+
|
1263
|
+
rb_scan_args(argc, argv, args->formatString(Num_Args),
|
1264
|
+
&varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7);
|
1265
|
+
|
806
1266
|
Self_T * obj = from_ruby<Self_T *>(self);
|
807
|
-
|
1267
|
+
Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
|
1268
|
+
Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
|
1269
|
+
Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
|
1270
|
+
Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
|
1271
|
+
Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
|
1272
|
+
Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
|
1273
|
+
Arg6_T arg6 = args->getArgumentOrDefault<Arg6_T>(6, varg6);
|
1274
|
+
Arg7_T arg7 = args->getArgumentOrDefault<Arg7_T>(7, varg7);
|
1275
|
+
|
808
1276
|
Func func = wrapper->func_;
|
809
|
-
(*obj.*func)(arg1, arg2, arg3, arg4, arg5, arg6, arg7);
|
1277
|
+
(*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
|
810
1278
|
return Qnil;
|
811
1279
|
}
|
812
1280
|
catch(...)
|
@@ -827,32 +1295,53 @@ call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_a
|
|
827
1295
|
}
|
828
1296
|
|
829
1297
|
// ---------------------------------------------------------------------
|
830
|
-
template<typename Func_T, typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T>
|
831
|
-
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T>::
|
1298
|
+
template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T>
|
1299
|
+
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T>::
|
832
1300
|
Auto_Member_Function_Wrapper(
|
833
1301
|
Func func,
|
834
|
-
Data_Object<Exception_Handler> handler
|
1302
|
+
Data_Object<Exception_Handler> handler,
|
1303
|
+
Arguments* arguments)
|
835
1304
|
: Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
|
836
1305
|
, func_(func)
|
837
1306
|
, handler_(handler)
|
838
1307
|
, handler_guard_(&handler_)
|
1308
|
+
, arguments_(arguments)
|
839
1309
|
{
|
1310
|
+
if(arguments == 0) {
|
1311
|
+
arguments_ = new Arguments();
|
1312
|
+
} else {
|
1313
|
+
arguments_ = arguments;
|
1314
|
+
}
|
840
1315
|
}
|
841
1316
|
|
842
|
-
template<typename Func_T, typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T>
|
843
|
-
VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T>::
|
844
|
-
call(
|
1317
|
+
template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T>
|
1318
|
+
VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T>::
|
1319
|
+
call(int argc, VALUE* argv, VALUE self)
|
845
1320
|
{
|
846
|
-
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T> * wrapper = 0;
|
1321
|
+
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T> * wrapper = 0;
|
847
1322
|
try
|
848
1323
|
{
|
849
1324
|
Data_Object<Wrapped_Function> data(detail::method_data());
|
850
1325
|
wrapper =
|
851
|
-
(Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T> *)data.get();
|
1326
|
+
(Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T> *)data.get();
|
1327
|
+
Arguments* args = wrapper->arguments_;
|
1328
|
+
|
1329
|
+
VALUE varg0, varg1, varg2, varg3, varg4, varg5, varg6;
|
1330
|
+
|
1331
|
+
rb_scan_args(argc, argv, args->formatString(Num_Args),
|
1332
|
+
&varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6);
|
1333
|
+
|
852
1334
|
Self_T * obj = from_ruby<Self_T *>(self);
|
853
|
-
|
1335
|
+
Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
|
1336
|
+
Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
|
1337
|
+
Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
|
1338
|
+
Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
|
1339
|
+
Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
|
1340
|
+
Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
|
1341
|
+
Arg6_T arg6 = args->getArgumentOrDefault<Arg6_T>(6, varg6);
|
1342
|
+
|
854
1343
|
Func func = wrapper->func_;
|
855
|
-
return to_ruby((*obj.*func)(arg1, arg2, arg3, arg4, arg5, arg6));
|
1344
|
+
return to_ruby((*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6));
|
856
1345
|
}
|
857
1346
|
catch(...)
|
858
1347
|
{
|
@@ -871,32 +1360,53 @@ call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_a
|
|
871
1360
|
}
|
872
1361
|
}
|
873
1362
|
|
874
|
-
template<typename Func_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T>
|
875
|
-
Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T>::
|
1363
|
+
template<typename Func_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T>
|
1364
|
+
Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T>::
|
876
1365
|
Auto_Member_Function_Wrapper(
|
877
1366
|
Func func,
|
878
|
-
Data_Object<Exception_Handler> handler
|
1367
|
+
Data_Object<Exception_Handler> handler,
|
1368
|
+
Arguments* arguments)
|
879
1369
|
: Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
|
880
1370
|
, func_(func)
|
881
1371
|
, handler_(handler)
|
882
1372
|
, handler_guard_(&handler_)
|
1373
|
+
, arguments_(arguments)
|
883
1374
|
{
|
1375
|
+
if(arguments == 0) {
|
1376
|
+
arguments_ = new Arguments();
|
1377
|
+
} else {
|
1378
|
+
arguments_ = arguments;
|
1379
|
+
}
|
884
1380
|
}
|
885
1381
|
|
886
|
-
template<typename Func_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T>
|
887
|
-
VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T>::
|
888
|
-
call(
|
1382
|
+
template<typename Func_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T>
|
1383
|
+
VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T>::
|
1384
|
+
call(int argc, VALUE* argv, VALUE self)
|
889
1385
|
{
|
890
|
-
Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T> * wrapper = 0;
|
1386
|
+
Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T> * wrapper = 0;
|
891
1387
|
try
|
892
1388
|
{
|
893
1389
|
Data_Object<Wrapped_Function> data(detail::method_data());
|
894
1390
|
wrapper =
|
895
|
-
(Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T> *)data.get();
|
1391
|
+
(Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T> *)data.get();
|
1392
|
+
Arguments* args = wrapper->arguments_;
|
1393
|
+
|
1394
|
+
VALUE varg0, varg1, varg2, varg3, varg4, varg5, varg6;
|
1395
|
+
|
1396
|
+
rb_scan_args(argc, argv, args->formatString(Num_Args),
|
1397
|
+
&varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6);
|
1398
|
+
|
896
1399
|
Self_T * obj = from_ruby<Self_T *>(self);
|
897
|
-
|
1400
|
+
Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
|
1401
|
+
Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
|
1402
|
+
Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
|
1403
|
+
Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
|
1404
|
+
Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
|
1405
|
+
Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
|
1406
|
+
Arg6_T arg6 = args->getArgumentOrDefault<Arg6_T>(6, varg6);
|
1407
|
+
|
898
1408
|
Func func = wrapper->func_;
|
899
|
-
(*obj.*func)(arg1, arg2, arg3, arg4, arg5, arg6);
|
1409
|
+
(*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6);
|
900
1410
|
return Qnil;
|
901
1411
|
}
|
902
1412
|
catch(...)
|
@@ -917,32 +1427,52 @@ call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_a
|
|
917
1427
|
}
|
918
1428
|
|
919
1429
|
// ---------------------------------------------------------------------
|
920
|
-
template<typename Func_T, typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T>
|
921
|
-
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T>::
|
1430
|
+
template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T>
|
1431
|
+
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T>::
|
922
1432
|
Auto_Member_Function_Wrapper(
|
923
1433
|
Func func,
|
924
|
-
Data_Object<Exception_Handler> handler
|
1434
|
+
Data_Object<Exception_Handler> handler,
|
1435
|
+
Arguments* arguments)
|
925
1436
|
: Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
|
926
1437
|
, func_(func)
|
927
1438
|
, handler_(handler)
|
928
1439
|
, handler_guard_(&handler_)
|
1440
|
+
, arguments_(arguments)
|
929
1441
|
{
|
1442
|
+
if(arguments == 0) {
|
1443
|
+
arguments_ = new Arguments();
|
1444
|
+
} else {
|
1445
|
+
arguments_ = arguments;
|
1446
|
+
}
|
930
1447
|
}
|
931
1448
|
|
932
|
-
template<typename Func_T, typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T>
|
933
|
-
VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T>::
|
934
|
-
call(
|
1449
|
+
template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T>
|
1450
|
+
VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T>::
|
1451
|
+
call(int argc, VALUE* argv, VALUE self)
|
935
1452
|
{
|
936
|
-
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T> * wrapper = 0;
|
1453
|
+
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T> * wrapper = 0;
|
937
1454
|
try
|
938
1455
|
{
|
939
1456
|
Data_Object<Wrapped_Function> data(detail::method_data());
|
940
1457
|
wrapper =
|
941
|
-
(Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T> *)data.get();
|
1458
|
+
(Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T> *)data.get();
|
1459
|
+
Arguments* args = wrapper->arguments_;
|
1460
|
+
|
1461
|
+
VALUE varg0, varg1, varg2, varg3, varg4, varg5;
|
1462
|
+
|
1463
|
+
rb_scan_args(argc, argv, args->formatString(Num_Args),
|
1464
|
+
&varg0, &varg1, &varg2, &varg3, &varg4, &varg5);
|
1465
|
+
|
942
1466
|
Self_T * obj = from_ruby<Self_T *>(self);
|
943
|
-
|
1467
|
+
Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
|
1468
|
+
Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
|
1469
|
+
Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
|
1470
|
+
Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
|
1471
|
+
Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
|
1472
|
+
Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
|
1473
|
+
|
944
1474
|
Func func = wrapper->func_;
|
945
|
-
return to_ruby((*obj.*func)(arg1, arg2, arg3, arg4, arg5));
|
1475
|
+
return to_ruby((*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5));
|
946
1476
|
}
|
947
1477
|
catch(...)
|
948
1478
|
{
|
@@ -961,32 +1491,52 @@ call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_a
|
|
961
1491
|
}
|
962
1492
|
}
|
963
1493
|
|
964
|
-
template<typename Func_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T>
|
965
|
-
Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T>::
|
1494
|
+
template<typename Func_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T>
|
1495
|
+
Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T>::
|
966
1496
|
Auto_Member_Function_Wrapper(
|
967
1497
|
Func func,
|
968
|
-
Data_Object<Exception_Handler> handler
|
1498
|
+
Data_Object<Exception_Handler> handler,
|
1499
|
+
Arguments* arguments)
|
969
1500
|
: Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
|
970
1501
|
, func_(func)
|
971
1502
|
, handler_(handler)
|
972
1503
|
, handler_guard_(&handler_)
|
1504
|
+
, arguments_(arguments)
|
973
1505
|
{
|
1506
|
+
if(arguments == 0) {
|
1507
|
+
arguments_ = new Arguments();
|
1508
|
+
} else {
|
1509
|
+
arguments_ = arguments;
|
1510
|
+
}
|
974
1511
|
}
|
975
1512
|
|
976
|
-
template<typename Func_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T>
|
977
|
-
VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T>::
|
978
|
-
call(
|
1513
|
+
template<typename Func_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T>
|
1514
|
+
VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T>::
|
1515
|
+
call(int argc, VALUE* argv, VALUE self)
|
979
1516
|
{
|
980
|
-
Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T> * wrapper = 0;
|
1517
|
+
Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T> * wrapper = 0;
|
981
1518
|
try
|
982
1519
|
{
|
983
1520
|
Data_Object<Wrapped_Function> data(detail::method_data());
|
984
1521
|
wrapper =
|
985
|
-
(Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T> *)data.get();
|
1522
|
+
(Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T> *)data.get();
|
1523
|
+
Arguments* args = wrapper->arguments_;
|
1524
|
+
|
1525
|
+
VALUE varg0, varg1, varg2, varg3, varg4, varg5;
|
1526
|
+
|
1527
|
+
rb_scan_args(argc, argv, args->formatString(Num_Args),
|
1528
|
+
&varg0, &varg1, &varg2, &varg3, &varg4, &varg5);
|
1529
|
+
|
986
1530
|
Self_T * obj = from_ruby<Self_T *>(self);
|
987
|
-
|
1531
|
+
Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
|
1532
|
+
Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
|
1533
|
+
Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
|
1534
|
+
Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
|
1535
|
+
Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
|
1536
|
+
Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
|
1537
|
+
|
988
1538
|
Func func = wrapper->func_;
|
989
|
-
(*obj.*func)(arg1, arg2, arg3, arg4, arg5);
|
1539
|
+
(*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5);
|
990
1540
|
return Qnil;
|
991
1541
|
}
|
992
1542
|
catch(...)
|
@@ -1007,32 +1557,51 @@ call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_a
|
|
1007
1557
|
}
|
1008
1558
|
|
1009
1559
|
// ---------------------------------------------------------------------
|
1010
|
-
template<typename Func_T, typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T>
|
1011
|
-
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T>::
|
1560
|
+
template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T>
|
1561
|
+
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T>::
|
1012
1562
|
Auto_Member_Function_Wrapper(
|
1013
1563
|
Func func,
|
1014
|
-
Data_Object<Exception_Handler> handler
|
1564
|
+
Data_Object<Exception_Handler> handler,
|
1565
|
+
Arguments* arguments)
|
1015
1566
|
: Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
|
1016
1567
|
, func_(func)
|
1017
1568
|
, handler_(handler)
|
1018
1569
|
, handler_guard_(&handler_)
|
1570
|
+
, arguments_(arguments)
|
1019
1571
|
{
|
1572
|
+
if(arguments == 0) {
|
1573
|
+
arguments_ = new Arguments();
|
1574
|
+
} else {
|
1575
|
+
arguments_ = arguments;
|
1576
|
+
}
|
1020
1577
|
}
|
1021
1578
|
|
1022
|
-
template<typename Func_T, typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T>
|
1023
|
-
VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T>::
|
1024
|
-
call(
|
1579
|
+
template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T>
|
1580
|
+
VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T>::
|
1581
|
+
call(int argc, VALUE* argv, VALUE self)
|
1025
1582
|
{
|
1026
|
-
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T> * wrapper = 0;
|
1583
|
+
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T> * wrapper = 0;
|
1027
1584
|
try
|
1028
1585
|
{
|
1029
1586
|
Data_Object<Wrapped_Function> data(detail::method_data());
|
1030
1587
|
wrapper =
|
1031
|
-
(Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T> *)data.get();
|
1588
|
+
(Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T> *)data.get();
|
1589
|
+
Arguments* args = wrapper->arguments_;
|
1590
|
+
|
1591
|
+
VALUE varg0, varg1, varg2, varg3, varg4;
|
1592
|
+
|
1593
|
+
rb_scan_args(argc, argv, args->formatString(Num_Args),
|
1594
|
+
&varg0, &varg1, &varg2, &varg3, &varg4);
|
1595
|
+
|
1032
1596
|
Self_T * obj = from_ruby<Self_T *>(self);
|
1033
|
-
|
1597
|
+
Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
|
1598
|
+
Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
|
1599
|
+
Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
|
1600
|
+
Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
|
1601
|
+
Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
|
1602
|
+
|
1034
1603
|
Func func = wrapper->func_;
|
1035
|
-
return to_ruby((*obj.*func)(arg1, arg2, arg3, arg4));
|
1604
|
+
return to_ruby((*obj.*func)(arg0, arg1, arg2, arg3, arg4));
|
1036
1605
|
}
|
1037
1606
|
catch(...)
|
1038
1607
|
{
|
@@ -1051,32 +1620,51 @@ call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_a
|
|
1051
1620
|
}
|
1052
1621
|
}
|
1053
1622
|
|
1054
|
-
template<typename Func_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T>
|
1055
|
-
Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T>::
|
1623
|
+
template<typename Func_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T>
|
1624
|
+
Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T>::
|
1056
1625
|
Auto_Member_Function_Wrapper(
|
1057
1626
|
Func func,
|
1058
|
-
Data_Object<Exception_Handler> handler
|
1627
|
+
Data_Object<Exception_Handler> handler,
|
1628
|
+
Arguments* arguments)
|
1059
1629
|
: Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
|
1060
1630
|
, func_(func)
|
1061
1631
|
, handler_(handler)
|
1062
1632
|
, handler_guard_(&handler_)
|
1633
|
+
, arguments_(arguments)
|
1063
1634
|
{
|
1635
|
+
if(arguments == 0) {
|
1636
|
+
arguments_ = new Arguments();
|
1637
|
+
} else {
|
1638
|
+
arguments_ = arguments;
|
1639
|
+
}
|
1064
1640
|
}
|
1065
1641
|
|
1066
|
-
template<typename Func_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T>
|
1067
|
-
VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T>::
|
1068
|
-
call(
|
1642
|
+
template<typename Func_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T>
|
1643
|
+
VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T>::
|
1644
|
+
call(int argc, VALUE* argv, VALUE self)
|
1069
1645
|
{
|
1070
|
-
Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T> * wrapper = 0;
|
1646
|
+
Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T> * wrapper = 0;
|
1071
1647
|
try
|
1072
1648
|
{
|
1073
1649
|
Data_Object<Wrapped_Function> data(detail::method_data());
|
1074
1650
|
wrapper =
|
1075
|
-
(Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T> *)data.get();
|
1651
|
+
(Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T> *)data.get();
|
1652
|
+
Arguments* args = wrapper->arguments_;
|
1653
|
+
|
1654
|
+
VALUE varg0, varg1, varg2, varg3, varg4;
|
1655
|
+
|
1656
|
+
rb_scan_args(argc, argv, args->formatString(Num_Args),
|
1657
|
+
&varg0, &varg1, &varg2, &varg3, &varg4);
|
1658
|
+
|
1076
1659
|
Self_T * obj = from_ruby<Self_T *>(self);
|
1077
|
-
|
1660
|
+
Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
|
1661
|
+
Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
|
1662
|
+
Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
|
1663
|
+
Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
|
1664
|
+
Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
|
1665
|
+
|
1078
1666
|
Func func = wrapper->func_;
|
1079
|
-
(*obj.*func)(arg1, arg2, arg3, arg4);
|
1667
|
+
(*obj.*func)(arg0, arg1, arg2, arg3, arg4);
|
1080
1668
|
return Qnil;
|
1081
1669
|
}
|
1082
1670
|
catch(...)
|
@@ -1097,32 +1685,50 @@ call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_a
|
|
1097
1685
|
}
|
1098
1686
|
|
1099
1687
|
// ---------------------------------------------------------------------
|
1100
|
-
template<typename Func_T, typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T>
|
1101
|
-
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T>::
|
1688
|
+
template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T>
|
1689
|
+
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T>::
|
1102
1690
|
Auto_Member_Function_Wrapper(
|
1103
1691
|
Func func,
|
1104
|
-
Data_Object<Exception_Handler> handler
|
1692
|
+
Data_Object<Exception_Handler> handler,
|
1693
|
+
Arguments* arguments)
|
1105
1694
|
: Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
|
1106
1695
|
, func_(func)
|
1107
1696
|
, handler_(handler)
|
1108
1697
|
, handler_guard_(&handler_)
|
1698
|
+
, arguments_(arguments)
|
1109
1699
|
{
|
1700
|
+
if(arguments == 0) {
|
1701
|
+
arguments_ = new Arguments();
|
1702
|
+
} else {
|
1703
|
+
arguments_ = arguments;
|
1704
|
+
}
|
1110
1705
|
}
|
1111
1706
|
|
1112
|
-
template<typename Func_T, typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T>
|
1113
|
-
VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T>::
|
1114
|
-
call(
|
1707
|
+
template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T>
|
1708
|
+
VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T>::
|
1709
|
+
call(int argc, VALUE* argv, VALUE self)
|
1115
1710
|
{
|
1116
|
-
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T> * wrapper = 0;
|
1711
|
+
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T> * wrapper = 0;
|
1117
1712
|
try
|
1118
1713
|
{
|
1119
1714
|
Data_Object<Wrapped_Function> data(detail::method_data());
|
1120
1715
|
wrapper =
|
1121
|
-
(Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T> *)data.get();
|
1716
|
+
(Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T> *)data.get();
|
1717
|
+
Arguments* args = wrapper->arguments_;
|
1718
|
+
|
1719
|
+
VALUE varg0, varg1, varg2, varg3;
|
1720
|
+
|
1721
|
+
rb_scan_args(argc, argv, args->formatString(Num_Args),
|
1722
|
+
&varg0, &varg1, &varg2, &varg3);
|
1723
|
+
|
1122
1724
|
Self_T * obj = from_ruby<Self_T *>(self);
|
1123
|
-
|
1725
|
+
Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
|
1726
|
+
Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
|
1727
|
+
Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
|
1728
|
+
Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
|
1729
|
+
|
1124
1730
|
Func func = wrapper->func_;
|
1125
|
-
return to_ruby((*obj.*func)(arg1, arg2, arg3));
|
1731
|
+
return to_ruby((*obj.*func)(arg0, arg1, arg2, arg3));
|
1126
1732
|
}
|
1127
1733
|
catch(...)
|
1128
1734
|
{
|
@@ -1141,32 +1747,50 @@ call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3)
|
|
1141
1747
|
}
|
1142
1748
|
}
|
1143
1749
|
|
1144
|
-
template<typename Func_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T>
|
1145
|
-
Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T, Arg2_T, Arg3_T>::
|
1750
|
+
template<typename Func_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T>
|
1751
|
+
Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T>::
|
1146
1752
|
Auto_Member_Function_Wrapper(
|
1147
1753
|
Func func,
|
1148
|
-
Data_Object<Exception_Handler> handler
|
1754
|
+
Data_Object<Exception_Handler> handler,
|
1755
|
+
Arguments* arguments)
|
1149
1756
|
: Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
|
1150
1757
|
, func_(func)
|
1151
1758
|
, handler_(handler)
|
1152
1759
|
, handler_guard_(&handler_)
|
1760
|
+
, arguments_(arguments)
|
1153
1761
|
{
|
1762
|
+
if(arguments == 0) {
|
1763
|
+
arguments_ = new Arguments();
|
1764
|
+
} else {
|
1765
|
+
arguments_ = arguments;
|
1766
|
+
}
|
1154
1767
|
}
|
1155
1768
|
|
1156
|
-
template<typename Func_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T>
|
1157
|
-
VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T, Arg2_T, Arg3_T>::
|
1158
|
-
call(
|
1769
|
+
template<typename Func_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T>
|
1770
|
+
VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T>::
|
1771
|
+
call(int argc, VALUE* argv, VALUE self)
|
1159
1772
|
{
|
1160
|
-
Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T, Arg2_T, Arg3_T> * wrapper = 0;
|
1773
|
+
Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T> * wrapper = 0;
|
1161
1774
|
try
|
1162
1775
|
{
|
1163
1776
|
Data_Object<Wrapped_Function> data(detail::method_data());
|
1164
1777
|
wrapper =
|
1165
|
-
(Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T, Arg2_T, Arg3_T> *)data.get();
|
1778
|
+
(Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T> *)data.get();
|
1779
|
+
Arguments* args = wrapper->arguments_;
|
1780
|
+
|
1781
|
+
VALUE varg0, varg1, varg2, varg3;
|
1782
|
+
|
1783
|
+
rb_scan_args(argc, argv, args->formatString(Num_Args),
|
1784
|
+
&varg0, &varg1, &varg2, &varg3);
|
1785
|
+
|
1166
1786
|
Self_T * obj = from_ruby<Self_T *>(self);
|
1167
|
-
|
1787
|
+
Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
|
1788
|
+
Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
|
1789
|
+
Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
|
1790
|
+
Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
|
1791
|
+
|
1168
1792
|
Func func = wrapper->func_;
|
1169
|
-
(*obj.*func)(arg1, arg2, arg3);
|
1793
|
+
(*obj.*func)(arg0, arg1, arg2, arg3);
|
1170
1794
|
return Qnil;
|
1171
1795
|
}
|
1172
1796
|
catch(...)
|
@@ -1187,32 +1811,49 @@ call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3)
|
|
1187
1811
|
}
|
1188
1812
|
|
1189
1813
|
// ---------------------------------------------------------------------
|
1190
|
-
template<typename Func_T, typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T>
|
1191
|
-
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T, Arg2_T>::
|
1814
|
+
template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T>
|
1815
|
+
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T>::
|
1192
1816
|
Auto_Member_Function_Wrapper(
|
1193
1817
|
Func func,
|
1194
|
-
Data_Object<Exception_Handler> handler
|
1818
|
+
Data_Object<Exception_Handler> handler,
|
1819
|
+
Arguments* arguments)
|
1195
1820
|
: Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
|
1196
1821
|
, func_(func)
|
1197
1822
|
, handler_(handler)
|
1198
1823
|
, handler_guard_(&handler_)
|
1824
|
+
, arguments_(arguments)
|
1199
1825
|
{
|
1826
|
+
if(arguments == 0) {
|
1827
|
+
arguments_ = new Arguments();
|
1828
|
+
} else {
|
1829
|
+
arguments_ = arguments;
|
1830
|
+
}
|
1200
1831
|
}
|
1201
1832
|
|
1202
|
-
template<typename Func_T, typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T>
|
1203
|
-
VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T, Arg2_T>::
|
1204
|
-
call(
|
1833
|
+
template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T>
|
1834
|
+
VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T>::
|
1835
|
+
call(int argc, VALUE* argv, VALUE self)
|
1205
1836
|
{
|
1206
|
-
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T, Arg2_T> * wrapper = 0;
|
1837
|
+
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T> * wrapper = 0;
|
1207
1838
|
try
|
1208
1839
|
{
|
1209
1840
|
Data_Object<Wrapped_Function> data(detail::method_data());
|
1210
1841
|
wrapper =
|
1211
|
-
(Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T, Arg2_T> *)data.get();
|
1842
|
+
(Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T> *)data.get();
|
1843
|
+
Arguments* args = wrapper->arguments_;
|
1844
|
+
|
1845
|
+
VALUE varg0, varg1, varg2;
|
1846
|
+
|
1847
|
+
rb_scan_args(argc, argv, args->formatString(Num_Args),
|
1848
|
+
&varg0, &varg1, &varg2);
|
1849
|
+
|
1212
1850
|
Self_T * obj = from_ruby<Self_T *>(self);
|
1213
|
-
|
1851
|
+
Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
|
1852
|
+
Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
|
1853
|
+
Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
|
1854
|
+
|
1214
1855
|
Func func = wrapper->func_;
|
1215
|
-
return to_ruby((*obj.*func)(arg1, arg2));
|
1856
|
+
return to_ruby((*obj.*func)(arg0, arg1, arg2));
|
1216
1857
|
}
|
1217
1858
|
catch(...)
|
1218
1859
|
{
|
@@ -1231,32 +1872,49 @@ call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2)
|
|
1231
1872
|
}
|
1232
1873
|
}
|
1233
1874
|
|
1234
|
-
template<typename Func_T, typename Self_T, typename Arg1_T, typename Arg2_T>
|
1235
|
-
Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T, Arg2_T>::
|
1875
|
+
template<typename Func_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T>
|
1876
|
+
Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T>::
|
1236
1877
|
Auto_Member_Function_Wrapper(
|
1237
1878
|
Func func,
|
1238
|
-
Data_Object<Exception_Handler> handler
|
1879
|
+
Data_Object<Exception_Handler> handler,
|
1880
|
+
Arguments* arguments)
|
1239
1881
|
: Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
|
1240
1882
|
, func_(func)
|
1241
1883
|
, handler_(handler)
|
1242
1884
|
, handler_guard_(&handler_)
|
1885
|
+
, arguments_(arguments)
|
1243
1886
|
{
|
1887
|
+
if(arguments == 0) {
|
1888
|
+
arguments_ = new Arguments();
|
1889
|
+
} else {
|
1890
|
+
arguments_ = arguments;
|
1891
|
+
}
|
1244
1892
|
}
|
1245
1893
|
|
1246
|
-
template<typename Func_T, typename Self_T, typename Arg1_T, typename Arg2_T>
|
1247
|
-
VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T, Arg2_T>::
|
1248
|
-
call(
|
1894
|
+
template<typename Func_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T>
|
1895
|
+
VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T>::
|
1896
|
+
call(int argc, VALUE* argv, VALUE self)
|
1249
1897
|
{
|
1250
|
-
Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T, Arg2_T> * wrapper = 0;
|
1898
|
+
Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T> * wrapper = 0;
|
1251
1899
|
try
|
1252
1900
|
{
|
1253
1901
|
Data_Object<Wrapped_Function> data(detail::method_data());
|
1254
1902
|
wrapper =
|
1255
|
-
(Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T, Arg2_T> *)data.get();
|
1903
|
+
(Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T> *)data.get();
|
1904
|
+
Arguments* args = wrapper->arguments_;
|
1905
|
+
|
1906
|
+
VALUE varg0, varg1, varg2;
|
1907
|
+
|
1908
|
+
rb_scan_args(argc, argv, args->formatString(Num_Args),
|
1909
|
+
&varg0, &varg1, &varg2);
|
1910
|
+
|
1256
1911
|
Self_T * obj = from_ruby<Self_T *>(self);
|
1257
|
-
|
1912
|
+
Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
|
1913
|
+
Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
|
1914
|
+
Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
|
1915
|
+
|
1258
1916
|
Func func = wrapper->func_;
|
1259
|
-
(*obj.*func)(arg1, arg2);
|
1917
|
+
(*obj.*func)(arg0, arg1, arg2);
|
1260
1918
|
return Qnil;
|
1261
1919
|
}
|
1262
1920
|
catch(...)
|
@@ -1277,32 +1935,48 @@ call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2)
|
|
1277
1935
|
}
|
1278
1936
|
|
1279
1937
|
// ---------------------------------------------------------------------
|
1280
|
-
template<typename Func_T, typename Ret_T, typename Self_T, typename Arg1_T>
|
1281
|
-
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T>::
|
1938
|
+
template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T>
|
1939
|
+
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T>::
|
1282
1940
|
Auto_Member_Function_Wrapper(
|
1283
1941
|
Func func,
|
1284
|
-
Data_Object<Exception_Handler> handler
|
1942
|
+
Data_Object<Exception_Handler> handler,
|
1943
|
+
Arguments* arguments)
|
1285
1944
|
: Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
|
1286
1945
|
, func_(func)
|
1287
1946
|
, handler_(handler)
|
1288
1947
|
, handler_guard_(&handler_)
|
1948
|
+
, arguments_(arguments)
|
1289
1949
|
{
|
1950
|
+
if(arguments == 0) {
|
1951
|
+
arguments_ = new Arguments();
|
1952
|
+
} else {
|
1953
|
+
arguments_ = arguments;
|
1954
|
+
}
|
1290
1955
|
}
|
1291
1956
|
|
1292
|
-
template<typename Func_T, typename Ret_T, typename Self_T, typename Arg1_T>
|
1293
|
-
VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T>::
|
1294
|
-
call(VALUE
|
1957
|
+
template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T>
|
1958
|
+
VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T>::
|
1959
|
+
call(int argc, VALUE* argv, VALUE self)
|
1295
1960
|
{
|
1296
|
-
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T> * wrapper = 0;
|
1961
|
+
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T> * wrapper = 0;
|
1297
1962
|
try
|
1298
1963
|
{
|
1299
1964
|
Data_Object<Wrapped_Function> data(detail::method_data());
|
1300
1965
|
wrapper =
|
1301
|
-
(Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T> *)data.get();
|
1966
|
+
(Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T> *)data.get();
|
1967
|
+
Arguments* args = wrapper->arguments_;
|
1968
|
+
|
1969
|
+
VALUE varg0, varg1;
|
1970
|
+
|
1971
|
+
rb_scan_args(argc, argv, args->formatString(Num_Args),
|
1972
|
+
&varg0, &varg1);
|
1973
|
+
|
1302
1974
|
Self_T * obj = from_ruby<Self_T *>(self);
|
1303
|
-
|
1975
|
+
Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
|
1976
|
+
Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
|
1977
|
+
|
1304
1978
|
Func func = wrapper->func_;
|
1305
|
-
return to_ruby((*obj.*func)(arg1));
|
1979
|
+
return to_ruby((*obj.*func)(arg0, arg1));
|
1306
1980
|
}
|
1307
1981
|
catch(...)
|
1308
1982
|
{
|
@@ -1321,32 +1995,168 @@ call(VALUE self, VALUE ruby_arg1)
|
|
1321
1995
|
}
|
1322
1996
|
}
|
1323
1997
|
|
1324
|
-
template<typename Func_T, typename Self_T, typename Arg1_T>
|
1325
|
-
Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T>::
|
1998
|
+
template<typename Func_T, typename Self_T, typename Arg0_T, typename Arg1_T>
|
1999
|
+
Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T>::
|
1326
2000
|
Auto_Member_Function_Wrapper(
|
1327
2001
|
Func func,
|
1328
|
-
Data_Object<Exception_Handler> handler
|
2002
|
+
Data_Object<Exception_Handler> handler,
|
2003
|
+
Arguments* arguments)
|
1329
2004
|
: Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
|
1330
2005
|
, func_(func)
|
1331
2006
|
, handler_(handler)
|
1332
2007
|
, handler_guard_(&handler_)
|
2008
|
+
, arguments_(arguments)
|
1333
2009
|
{
|
2010
|
+
if(arguments == 0) {
|
2011
|
+
arguments_ = new Arguments();
|
2012
|
+
} else {
|
2013
|
+
arguments_ = arguments;
|
2014
|
+
}
|
1334
2015
|
}
|
1335
2016
|
|
1336
|
-
template<typename Func_T, typename Self_T, typename Arg1_T>
|
1337
|
-
VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T>::
|
1338
|
-
call(VALUE
|
2017
|
+
template<typename Func_T, typename Self_T, typename Arg0_T, typename Arg1_T>
|
2018
|
+
VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T>::
|
2019
|
+
call(int argc, VALUE* argv, VALUE self)
|
1339
2020
|
{
|
1340
|
-
Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T> * wrapper = 0;
|
2021
|
+
Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T> * wrapper = 0;
|
1341
2022
|
try
|
1342
2023
|
{
|
1343
2024
|
Data_Object<Wrapped_Function> data(detail::method_data());
|
1344
2025
|
wrapper =
|
1345
|
-
(Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T> *)data.get();
|
2026
|
+
(Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T> *)data.get();
|
2027
|
+
Arguments* args = wrapper->arguments_;
|
2028
|
+
|
2029
|
+
VALUE varg0, varg1;
|
2030
|
+
|
2031
|
+
rb_scan_args(argc, argv, args->formatString(Num_Args),
|
2032
|
+
&varg0, &varg1);
|
2033
|
+
|
1346
2034
|
Self_T * obj = from_ruby<Self_T *>(self);
|
1347
|
-
|
2035
|
+
Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
|
2036
|
+
Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
|
2037
|
+
|
1348
2038
|
Func func = wrapper->func_;
|
1349
|
-
(*obj.*func)(arg1);
|
2039
|
+
(*obj.*func)(arg0, arg1);
|
2040
|
+
return Qnil;
|
2041
|
+
}
|
2042
|
+
catch(...)
|
2043
|
+
{
|
2044
|
+
RUBY_TRY
|
2045
|
+
{
|
2046
|
+
if(wrapper)
|
2047
|
+
{
|
2048
|
+
return wrapper->handler_->handle_exception();
|
2049
|
+
}
|
2050
|
+
else
|
2051
|
+
{
|
2052
|
+
throw;
|
2053
|
+
}
|
2054
|
+
}
|
2055
|
+
RUBY_CATCH
|
2056
|
+
}
|
2057
|
+
}
|
2058
|
+
|
2059
|
+
// ---------------------------------------------------------------------
|
2060
|
+
template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T>
|
2061
|
+
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T>::
|
2062
|
+
Auto_Member_Function_Wrapper(
|
2063
|
+
Func func,
|
2064
|
+
Data_Object<Exception_Handler> handler,
|
2065
|
+
Arguments* arguments)
|
2066
|
+
: Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
|
2067
|
+
, func_(func)
|
2068
|
+
, handler_(handler)
|
2069
|
+
, handler_guard_(&handler_)
|
2070
|
+
, arguments_(arguments)
|
2071
|
+
{
|
2072
|
+
if(arguments == 0) {
|
2073
|
+
arguments_ = new Arguments();
|
2074
|
+
} else {
|
2075
|
+
arguments_ = arguments;
|
2076
|
+
}
|
2077
|
+
}
|
2078
|
+
|
2079
|
+
template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T>
|
2080
|
+
VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T>::
|
2081
|
+
call(int argc, VALUE* argv, VALUE self)
|
2082
|
+
{
|
2083
|
+
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T> * wrapper = 0;
|
2084
|
+
try
|
2085
|
+
{
|
2086
|
+
Data_Object<Wrapped_Function> data(detail::method_data());
|
2087
|
+
wrapper =
|
2088
|
+
(Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T> *)data.get();
|
2089
|
+
Arguments* args = wrapper->arguments_;
|
2090
|
+
|
2091
|
+
VALUE varg0;
|
2092
|
+
|
2093
|
+
rb_scan_args(argc, argv, args->formatString(Num_Args),
|
2094
|
+
&varg0);
|
2095
|
+
|
2096
|
+
Self_T * obj = from_ruby<Self_T *>(self);
|
2097
|
+
Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
|
2098
|
+
|
2099
|
+
Func func = wrapper->func_;
|
2100
|
+
return to_ruby((*obj.*func)(arg0));
|
2101
|
+
}
|
2102
|
+
catch(...)
|
2103
|
+
{
|
2104
|
+
RUBY_TRY
|
2105
|
+
{
|
2106
|
+
if(wrapper)
|
2107
|
+
{
|
2108
|
+
return wrapper->handler_->handle_exception();
|
2109
|
+
}
|
2110
|
+
else
|
2111
|
+
{
|
2112
|
+
throw;
|
2113
|
+
}
|
2114
|
+
}
|
2115
|
+
RUBY_CATCH
|
2116
|
+
}
|
2117
|
+
}
|
2118
|
+
|
2119
|
+
template<typename Func_T, typename Self_T, typename Arg0_T>
|
2120
|
+
Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T>::
|
2121
|
+
Auto_Member_Function_Wrapper(
|
2122
|
+
Func func,
|
2123
|
+
Data_Object<Exception_Handler> handler,
|
2124
|
+
Arguments* arguments)
|
2125
|
+
: Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
|
2126
|
+
, func_(func)
|
2127
|
+
, handler_(handler)
|
2128
|
+
, handler_guard_(&handler_)
|
2129
|
+
, arguments_(arguments)
|
2130
|
+
{
|
2131
|
+
if(arguments == 0) {
|
2132
|
+
arguments_ = new Arguments();
|
2133
|
+
} else {
|
2134
|
+
arguments_ = arguments;
|
2135
|
+
}
|
2136
|
+
}
|
2137
|
+
|
2138
|
+
template<typename Func_T, typename Self_T, typename Arg0_T>
|
2139
|
+
VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T>::
|
2140
|
+
call(int argc, VALUE* argv, VALUE self)
|
2141
|
+
{
|
2142
|
+
Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T> * wrapper = 0;
|
2143
|
+
try
|
2144
|
+
{
|
2145
|
+
Data_Object<Wrapped_Function> data(detail::method_data());
|
2146
|
+
wrapper =
|
2147
|
+
(Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T> *)data.get();
|
2148
|
+
Arguments* args = wrapper->arguments_;
|
2149
|
+
|
2150
|
+
VALUE varg0;
|
2151
|
+
|
2152
|
+
rb_scan_args(argc, argv, args->formatString(Num_Args),
|
2153
|
+
&varg0);
|
2154
|
+
|
2155
|
+
Self_T * obj = from_ruby<Self_T *>(self);
|
2156
|
+
Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
|
2157
|
+
|
2158
|
+
Func func = wrapper->func_;
|
2159
|
+
(*obj.*func)(arg0);
|
1350
2160
|
return Qnil;
|
1351
2161
|
}
|
1352
2162
|
catch(...)
|
@@ -1371,17 +2181,24 @@ template<typename Func_T, typename Ret_T, typename Self_T>
|
|
1371
2181
|
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T>::
|
1372
2182
|
Auto_Member_Function_Wrapper(
|
1373
2183
|
Func func,
|
1374
|
-
Data_Object<Exception_Handler> handler
|
2184
|
+
Data_Object<Exception_Handler> handler,
|
2185
|
+
Arguments* arguments)
|
1375
2186
|
: Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
|
1376
2187
|
, func_(func)
|
1377
2188
|
, handler_(handler)
|
1378
2189
|
, handler_guard_(&handler_)
|
2190
|
+
, arguments_(arguments)
|
1379
2191
|
{
|
2192
|
+
if(arguments == 0) {
|
2193
|
+
arguments_ = new Arguments();
|
2194
|
+
} else {
|
2195
|
+
arguments_ = arguments;
|
2196
|
+
}
|
1380
2197
|
}
|
1381
2198
|
|
1382
2199
|
template<typename Func_T, typename Ret_T, typename Self_T>
|
1383
2200
|
VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T>::
|
1384
|
-
call(VALUE self)
|
2201
|
+
call(int argc, VALUE* argv, VALUE self)
|
1385
2202
|
{
|
1386
2203
|
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T> * wrapper = 0;
|
1387
2204
|
try
|
@@ -1389,8 +2206,10 @@ call(VALUE self)
|
|
1389
2206
|
Data_Object<Wrapped_Function> data(detail::method_data());
|
1390
2207
|
wrapper =
|
1391
2208
|
(Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T> *)data.get();
|
2209
|
+
|
2210
|
+
rb_scan_args(argc, argv, "0");
|
1392
2211
|
Self_T * obj = from_ruby<Self_T *>(self);
|
1393
|
-
|
2212
|
+
|
1394
2213
|
Func func = wrapper->func_;
|
1395
2214
|
return to_ruby((*obj.*func)());
|
1396
2215
|
}
|
@@ -1415,17 +2234,24 @@ template<typename Func_T, typename Self_T>
|
|
1415
2234
|
Auto_Member_Function_Wrapper<Func_T, void, Self_T>::
|
1416
2235
|
Auto_Member_Function_Wrapper(
|
1417
2236
|
Func func,
|
1418
|
-
Data_Object<Exception_Handler> handler
|
2237
|
+
Data_Object<Exception_Handler> handler,
|
2238
|
+
Arguments* arguments)
|
1419
2239
|
: Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
|
1420
2240
|
, func_(func)
|
1421
2241
|
, handler_(handler)
|
1422
2242
|
, handler_guard_(&handler_)
|
2243
|
+
, arguments_(arguments)
|
1423
2244
|
{
|
2245
|
+
if(arguments == 0) {
|
2246
|
+
arguments_ = new Arguments();
|
2247
|
+
} else {
|
2248
|
+
arguments_ = arguments;
|
2249
|
+
}
|
1424
2250
|
}
|
1425
2251
|
|
1426
2252
|
template<typename Func_T, typename Self_T>
|
1427
2253
|
VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T>::
|
1428
|
-
call(VALUE self)
|
2254
|
+
call(int argc, VALUE* argv, VALUE self)
|
1429
2255
|
{
|
1430
2256
|
Auto_Member_Function_Wrapper<Func_T, void, Self_T> * wrapper = 0;
|
1431
2257
|
try
|
@@ -1433,8 +2259,9 @@ call(VALUE self)
|
|
1433
2259
|
Data_Object<Wrapped_Function> data(detail::method_data());
|
1434
2260
|
wrapper =
|
1435
2261
|
(Auto_Member_Function_Wrapper<Func_T, void, Self_T> *)data.get();
|
2262
|
+
rb_scan_args(argc, argv, "0");
|
1436
2263
|
Self_T * obj = from_ruby<Self_T *>(self);
|
1437
|
-
|
2264
|
+
|
1438
2265
|
Func func = wrapper->func_;
|
1439
2266
|
(*obj.*func)();
|
1440
2267
|
return Qnil;
|