rice 1.0.2 → 1.1.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/COPYING +2 -2
- data/Doxyfile +1 -1
- data/Makefile.in +8 -3
- data/Rakefile +3 -3
- data/config.guess +30 -49
- data/config.sub +4 -22
- data/configure +319 -104
- data/configure.ac +6 -2
- data/doxygen.ac +2 -2
- data/extconf.rb +22 -0
- data/post-autoconf.rb +3 -3
- data/post-automake.rb +2 -2
- data/rice/Array.ipp +7 -6
- data/rice/Critical_Guard.hpp +6 -0
- data/rice/Critical_Guard.ipp +6 -0
- data/rice/Data_Object.hpp +1 -120
- data/rice/Data_Object.ipp +5 -1
- data/rice/Data_Object_defn.hpp +132 -0
- data/rice/Data_Type.ipp +18 -2
- data/rice/Enum.ipp +3 -3
- data/rice/Exception.hpp +1 -61
- data/rice/Exception_Base.hpp +2 -24
- data/rice/Exception_Base.ipp +2 -0
- data/rice/Exception_Base_defn.hpp +27 -0
- data/rice/Exception_defn.hpp +69 -0
- data/rice/Hash.hpp +5 -1
- data/rice/Hash.ipp +7 -7
- data/rice/Makefile.am +20 -3
- data/rice/Makefile.in +39 -4
- data/rice/Module.cpp +11 -3
- data/rice/Module_impl.hpp +20 -9
- data/rice/Module_impl.ipp +84 -87
- data/rice/Object.cpp +1 -1
- data/rice/VM.cpp +14 -1
- data/rice/VM.hpp +6 -1
- data/rice/config.hpp +24 -3
- data/rice/config.hpp.in +21 -0
- data/rice/detail/Auto_Function_Wrapper.hpp +97 -65
- data/rice/detail/Auto_Function_Wrapper.ipp +160 -128
- data/rice/detail/Auto_Member_Function_Wrapper.hpp +96 -64
- data/rice/detail/Auto_Member_Function_Wrapper.ipp +160 -128
- data/rice/detail/Exception_Handler.hpp +2 -112
- data/rice/detail/Exception_Handler.ipp +68 -0
- data/rice/detail/Exception_Handler_defn.hpp +96 -0
- data/rice/detail/Iterator.hpp +93 -0
- data/rice/detail/check_ruby_type.cpp +8 -2
- data/rice/detail/creation_funcs.ipp +2 -2
- data/rice/detail/define_method_and_auto_wrap.hpp +4 -2
- data/rice/detail/define_method_and_auto_wrap.ipp +14 -5
- data/rice/detail/env.hpp +4 -0
- data/rice/detail/method_data.cpp +362 -75
- data/rice/detail/method_data.cpp.rpp +301 -0
- data/rice/detail/method_data.hpp +6 -18
- data/rice/detail/mininode.cpp +1220 -0
- data/rice/detail/mininode.cpp.rpp +62 -0
- data/rice/detail/mininode.hpp +320 -0
- data/rice/detail/mininode.hpp.rpp +119 -0
- data/rice/detail/protect.cpp +4 -2
- data/rice/detail/ruby.hpp +44 -18
- data/rice/detail/ruby_version_code.hpp +6 -0
- data/rice/detail/ruby_version_code.hpp.in +6 -0
- data/rice/detail/rubysig.hpp +6 -0
- data/rice/detail/st.hpp +6 -2
- data/rice/detail/wrap_function.hpp +50 -48
- data/rice/detail/wrap_function.ipp +48 -48
- data/rice/generate_code.rb +43 -293
- data/rice/global_function.hpp +10 -4
- data/rice/global_function.ipp +1 -2
- data/rice/ruby_mark.hpp +13 -0
- data/rice/ruby_try_catch.hpp +1 -1
- data/rice/rubypp.rb +97 -0
- data/rice/to_from_ruby.ipp +3 -3
- data/ruby.ac +44 -8
- data/ruby/Makefile.in +2 -0
- data/ruby/lib/Makefile.in +2 -0
- data/ruby/lib/mkmf-rice.rb.in +4 -1
- data/ruby/lib/version.rb +3 -0
- data/sample/Makefile.am +2 -2
- data/sample/Makefile.in +4 -2
- data/test/Makefile.am +2 -1
- data/test/Makefile.in +7 -2
- data/test/test_Array.cpp +2 -2
- data/test/test_Class.cpp +4 -1
- data/test/test_Critical_Guard.cpp +4 -0
- data/test/test_Data_Object.cpp +43 -3
- data/test/test_Hash.cpp +3 -3
- data/test/test_String.cpp +8 -8
- data/test/test_VM.cpp +1 -1
- data/test/test_global_functions.cpp +45 -0
- data/test/test_rice.rb +5 -0
- metadata +115 -98
- data/rice/detail/Iterator_Definer.hpp +0 -98
@@ -18,7 +18,7 @@ namespace detail
|
|
18
18
|
template<typename Ret_T, typename Arg0_T>
|
19
19
|
Wrapped_Function * wrap_function(
|
20
20
|
Ret_T (*func)(Arg0_T),
|
21
|
-
Exception_Handler
|
21
|
+
Data_Object<Exception_Handler> handler)
|
22
22
|
{
|
23
23
|
typedef Ret_T (*Func)(Arg0_T);
|
24
24
|
return new Auto_Function_Wrapper<Func, Ret_T, Arg0_T>(func, handler);
|
@@ -27,7 +27,7 @@ Wrapped_Function * wrap_function(
|
|
27
27
|
template<typename Ret_T, typename Self_T>
|
28
28
|
Wrapped_Function * wrap_function(
|
29
29
|
Ret_T (Self_T::*func)(),
|
30
|
-
Exception_Handler
|
30
|
+
Data_Object<Exception_Handler> handler)
|
31
31
|
{
|
32
32
|
typedef Ret_T (Self_T::*Func)();
|
33
33
|
return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T>(func, handler);
|
@@ -36,7 +36,7 @@ Wrapped_Function * wrap_function(
|
|
36
36
|
template<typename Ret_T, typename Self_T>
|
37
37
|
Wrapped_Function * wrap_function(
|
38
38
|
Ret_T (Self_T::*func)() const,
|
39
|
-
Exception_Handler
|
39
|
+
Data_Object<Exception_Handler> handler)
|
40
40
|
{
|
41
41
|
typedef Ret_T (Self_T::*Func)() const;
|
42
42
|
return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T>(func, handler);
|
@@ -46,7 +46,7 @@ Wrapped_Function * wrap_function(
|
|
46
46
|
template<typename Ret_T, typename Arg0_T, typename Arg1_T>
|
47
47
|
Wrapped_Function * wrap_function(
|
48
48
|
Ret_T (*func)(Arg0_T, Arg1_T),
|
49
|
-
Exception_Handler
|
49
|
+
Data_Object<Exception_Handler> handler)
|
50
50
|
{
|
51
51
|
typedef Ret_T (*Func)(Arg0_T, Arg1_T);
|
52
52
|
return new Auto_Function_Wrapper<Func, Ret_T, Arg0_T, Arg1_T>(func, handler);
|
@@ -55,7 +55,7 @@ Wrapped_Function * wrap_function(
|
|
55
55
|
template<typename Ret_T, typename Self_T, typename Arg1_T>
|
56
56
|
Wrapped_Function * wrap_function(
|
57
57
|
Ret_T (Self_T::*func)(Arg1_T),
|
58
|
-
Exception_Handler
|
58
|
+
Data_Object<Exception_Handler> handler)
|
59
59
|
{
|
60
60
|
typedef Ret_T (Self_T::*Func)(Arg1_T);
|
61
61
|
return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T>(func, handler);
|
@@ -64,7 +64,7 @@ Wrapped_Function * wrap_function(
|
|
64
64
|
template<typename Ret_T, typename Self_T, typename Arg1_T>
|
65
65
|
Wrapped_Function * wrap_function(
|
66
66
|
Ret_T (Self_T::*func)(Arg1_T) const,
|
67
|
-
Exception_Handler
|
67
|
+
Data_Object<Exception_Handler> handler)
|
68
68
|
{
|
69
69
|
typedef Ret_T (Self_T::*Func)(Arg1_T) const;
|
70
70
|
return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T>(func, handler);
|
@@ -74,7 +74,7 @@ Wrapped_Function * wrap_function(
|
|
74
74
|
template<typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T>
|
75
75
|
Wrapped_Function * wrap_function(
|
76
76
|
Ret_T (*func)(Arg0_T, Arg1_T, Arg2_T),
|
77
|
-
Exception_Handler
|
77
|
+
Data_Object<Exception_Handler> handler)
|
78
78
|
{
|
79
79
|
typedef Ret_T (*Func)(Arg0_T, Arg1_T, Arg2_T);
|
80
80
|
return new Auto_Function_Wrapper<Func, Ret_T, Arg0_T, Arg1_T, Arg2_T>(func, handler);
|
@@ -83,7 +83,7 @@ Wrapped_Function * wrap_function(
|
|
83
83
|
template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T>
|
84
84
|
Wrapped_Function * wrap_function(
|
85
85
|
Ret_T (Self_T::*func)(Arg1_T, Arg2_T),
|
86
|
-
Exception_Handler
|
86
|
+
Data_Object<Exception_Handler> handler)
|
87
87
|
{
|
88
88
|
typedef Ret_T (Self_T::*Func)(Arg1_T, Arg2_T);
|
89
89
|
return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T>(func, handler);
|
@@ -92,7 +92,7 @@ Wrapped_Function * wrap_function(
|
|
92
92
|
template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T>
|
93
93
|
Wrapped_Function * wrap_function(
|
94
94
|
Ret_T (Self_T::*func)(Arg1_T, Arg2_T) const,
|
95
|
-
Exception_Handler
|
95
|
+
Data_Object<Exception_Handler> handler)
|
96
96
|
{
|
97
97
|
typedef Ret_T (Self_T::*Func)(Arg1_T, Arg2_T) const;
|
98
98
|
return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T>(func, handler);
|
@@ -102,7 +102,7 @@ Wrapped_Function * wrap_function(
|
|
102
102
|
template<typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T>
|
103
103
|
Wrapped_Function * wrap_function(
|
104
104
|
Ret_T (*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T),
|
105
|
-
Exception_Handler
|
105
|
+
Data_Object<Exception_Handler> handler)
|
106
106
|
{
|
107
107
|
typedef Ret_T (*Func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T);
|
108
108
|
return new Auto_Function_Wrapper<Func, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T>(func, handler);
|
@@ -111,7 +111,7 @@ Wrapped_Function * wrap_function(
|
|
111
111
|
template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T>
|
112
112
|
Wrapped_Function * wrap_function(
|
113
113
|
Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T),
|
114
|
-
Exception_Handler
|
114
|
+
Data_Object<Exception_Handler> handler)
|
115
115
|
{
|
116
116
|
typedef Ret_T (Self_T::*Func)(Arg1_T, Arg2_T, Arg3_T);
|
117
117
|
return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T>(func, handler);
|
@@ -120,7 +120,7 @@ Wrapped_Function * wrap_function(
|
|
120
120
|
template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T>
|
121
121
|
Wrapped_Function * wrap_function(
|
122
122
|
Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T) const,
|
123
|
-
Exception_Handler
|
123
|
+
Data_Object<Exception_Handler> handler)
|
124
124
|
{
|
125
125
|
typedef Ret_T (Self_T::*Func)(Arg1_T, Arg2_T, Arg3_T) const;
|
126
126
|
return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T>(func, handler);
|
@@ -130,7 +130,7 @@ Wrapped_Function * wrap_function(
|
|
130
130
|
template<typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T>
|
131
131
|
Wrapped_Function * wrap_function(
|
132
132
|
Ret_T (*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T),
|
133
|
-
Exception_Handler
|
133
|
+
Data_Object<Exception_Handler> handler)
|
134
134
|
{
|
135
135
|
typedef Ret_T (*Func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T);
|
136
136
|
return new Auto_Function_Wrapper<Func, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T>(func, handler);
|
@@ -139,7 +139,7 @@ Wrapped_Function * wrap_function(
|
|
139
139
|
template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T>
|
140
140
|
Wrapped_Function * wrap_function(
|
141
141
|
Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T),
|
142
|
-
Exception_Handler
|
142
|
+
Data_Object<Exception_Handler> handler)
|
143
143
|
{
|
144
144
|
typedef Ret_T (Self_T::*Func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T);
|
145
145
|
return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T>(func, handler);
|
@@ -148,7 +148,7 @@ Wrapped_Function * wrap_function(
|
|
148
148
|
template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T>
|
149
149
|
Wrapped_Function * wrap_function(
|
150
150
|
Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T) const,
|
151
|
-
Exception_Handler
|
151
|
+
Data_Object<Exception_Handler> handler)
|
152
152
|
{
|
153
153
|
typedef Ret_T (Self_T::*Func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T) const;
|
154
154
|
return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T>(func, handler);
|
@@ -158,7 +158,7 @@ Wrapped_Function * wrap_function(
|
|
158
158
|
template<typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T>
|
159
159
|
Wrapped_Function * wrap_function(
|
160
160
|
Ret_T (*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T),
|
161
|
-
Exception_Handler
|
161
|
+
Data_Object<Exception_Handler> handler)
|
162
162
|
{
|
163
163
|
typedef Ret_T (*Func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T);
|
164
164
|
return new Auto_Function_Wrapper<Func, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T>(func, handler);
|
@@ -167,7 +167,7 @@ Wrapped_Function * wrap_function(
|
|
167
167
|
template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T>
|
168
168
|
Wrapped_Function * wrap_function(
|
169
169
|
Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T),
|
170
|
-
Exception_Handler
|
170
|
+
Data_Object<Exception_Handler> handler)
|
171
171
|
{
|
172
172
|
typedef Ret_T (Self_T::*Func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T);
|
173
173
|
return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T>(func, handler);
|
@@ -176,7 +176,7 @@ Wrapped_Function * wrap_function(
|
|
176
176
|
template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T>
|
177
177
|
Wrapped_Function * wrap_function(
|
178
178
|
Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T) const,
|
179
|
-
Exception_Handler
|
179
|
+
Data_Object<Exception_Handler> handler)
|
180
180
|
{
|
181
181
|
typedef Ret_T (Self_T::*Func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T) const;
|
182
182
|
return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T>(func, handler);
|
@@ -186,7 +186,7 @@ Wrapped_Function * wrap_function(
|
|
186
186
|
template<typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T>
|
187
187
|
Wrapped_Function * wrap_function(
|
188
188
|
Ret_T (*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T),
|
189
|
-
Exception_Handler
|
189
|
+
Data_Object<Exception_Handler> handler)
|
190
190
|
{
|
191
191
|
typedef Ret_T (*Func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T);
|
192
192
|
return new Auto_Function_Wrapper<Func, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T>(func, handler);
|
@@ -195,7 +195,7 @@ Wrapped_Function * wrap_function(
|
|
195
195
|
template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T>
|
196
196
|
Wrapped_Function * wrap_function(
|
197
197
|
Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T),
|
198
|
-
Exception_Handler
|
198
|
+
Data_Object<Exception_Handler> handler)
|
199
199
|
{
|
200
200
|
typedef Ret_T (Self_T::*Func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T);
|
201
201
|
return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T>(func, handler);
|
@@ -204,7 +204,7 @@ Wrapped_Function * wrap_function(
|
|
204
204
|
template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T>
|
205
205
|
Wrapped_Function * wrap_function(
|
206
206
|
Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T) const,
|
207
|
-
Exception_Handler
|
207
|
+
Data_Object<Exception_Handler> handler)
|
208
208
|
{
|
209
209
|
typedef Ret_T (Self_T::*Func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T) const;
|
210
210
|
return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T>(func, handler);
|
@@ -214,7 +214,7 @@ Wrapped_Function * wrap_function(
|
|
214
214
|
template<typename Ret_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>
|
215
215
|
Wrapped_Function * wrap_function(
|
216
216
|
Ret_T (*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T),
|
217
|
-
Exception_Handler
|
217
|
+
Data_Object<Exception_Handler> handler)
|
218
218
|
{
|
219
219
|
typedef Ret_T (*Func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T);
|
220
220
|
return new Auto_Function_Wrapper<Func, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T>(func, handler);
|
@@ -223,7 +223,7 @@ Wrapped_Function * wrap_function(
|
|
223
223
|
template<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>
|
224
224
|
Wrapped_Function * wrap_function(
|
225
225
|
Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T),
|
226
|
-
Exception_Handler
|
226
|
+
Data_Object<Exception_Handler> handler)
|
227
227
|
{
|
228
228
|
typedef Ret_T (Self_T::*Func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T);
|
229
229
|
return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T>(func, handler);
|
@@ -232,7 +232,7 @@ Wrapped_Function * wrap_function(
|
|
232
232
|
template<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>
|
233
233
|
Wrapped_Function * wrap_function(
|
234
234
|
Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T) const,
|
235
|
-
Exception_Handler
|
235
|
+
Data_Object<Exception_Handler> handler)
|
236
236
|
{
|
237
237
|
typedef Ret_T (Self_T::*Func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T) const;
|
238
238
|
return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T>(func, handler);
|
@@ -242,7 +242,7 @@ Wrapped_Function * wrap_function(
|
|
242
242
|
template<typename Ret_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>
|
243
243
|
Wrapped_Function * wrap_function(
|
244
244
|
Ret_T (*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T),
|
245
|
-
Exception_Handler
|
245
|
+
Data_Object<Exception_Handler> handler)
|
246
246
|
{
|
247
247
|
typedef Ret_T (*Func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T);
|
248
248
|
return new Auto_Function_Wrapper<Func, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T>(func, handler);
|
@@ -251,7 +251,7 @@ Wrapped_Function * wrap_function(
|
|
251
251
|
template<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>
|
252
252
|
Wrapped_Function * wrap_function(
|
253
253
|
Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T),
|
254
|
-
Exception_Handler
|
254
|
+
Data_Object<Exception_Handler> handler)
|
255
255
|
{
|
256
256
|
typedef Ret_T (Self_T::*Func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T);
|
257
257
|
return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T>(func, handler);
|
@@ -260,7 +260,7 @@ Wrapped_Function * wrap_function(
|
|
260
260
|
template<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>
|
261
261
|
Wrapped_Function * wrap_function(
|
262
262
|
Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T) const,
|
263
|
-
Exception_Handler
|
263
|
+
Data_Object<Exception_Handler> handler)
|
264
264
|
{
|
265
265
|
typedef Ret_T (Self_T::*Func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T) const;
|
266
266
|
return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T>(func, handler);
|
@@ -270,7 +270,7 @@ Wrapped_Function * wrap_function(
|
|
270
270
|
template<typename Ret_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>
|
271
271
|
Wrapped_Function * wrap_function(
|
272
272
|
Ret_T (*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T),
|
273
|
-
Exception_Handler
|
273
|
+
Data_Object<Exception_Handler> handler)
|
274
274
|
{
|
275
275
|
typedef Ret_T (*Func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T);
|
276
276
|
return new Auto_Function_Wrapper<Func, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T>(func, handler);
|
@@ -279,7 +279,7 @@ Wrapped_Function * wrap_function(
|
|
279
279
|
template<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>
|
280
280
|
Wrapped_Function * wrap_function(
|
281
281
|
Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T),
|
282
|
-
Exception_Handler
|
282
|
+
Data_Object<Exception_Handler> handler)
|
283
283
|
{
|
284
284
|
typedef Ret_T (Self_T::*Func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T);
|
285
285
|
return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T>(func, handler);
|
@@ -288,7 +288,7 @@ Wrapped_Function * wrap_function(
|
|
288
288
|
template<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>
|
289
289
|
Wrapped_Function * wrap_function(
|
290
290
|
Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T) const,
|
291
|
-
Exception_Handler
|
291
|
+
Data_Object<Exception_Handler> handler)
|
292
292
|
{
|
293
293
|
typedef Ret_T (Self_T::*Func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T) const;
|
294
294
|
return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T>(func, handler);
|
@@ -298,7 +298,7 @@ Wrapped_Function * wrap_function(
|
|
298
298
|
template<typename Ret_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>
|
299
299
|
Wrapped_Function * wrap_function(
|
300
300
|
Ret_T (*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T),
|
301
|
-
Exception_Handler
|
301
|
+
Data_Object<Exception_Handler> handler)
|
302
302
|
{
|
303
303
|
typedef Ret_T (*Func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T);
|
304
304
|
return new Auto_Function_Wrapper<Func, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T>(func, handler);
|
@@ -307,7 +307,7 @@ Wrapped_Function * wrap_function(
|
|
307
307
|
template<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>
|
308
308
|
Wrapped_Function * wrap_function(
|
309
309
|
Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T),
|
310
|
-
Exception_Handler
|
310
|
+
Data_Object<Exception_Handler> handler)
|
311
311
|
{
|
312
312
|
typedef Ret_T (Self_T::*Func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T);
|
313
313
|
return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T>(func, handler);
|
@@ -316,7 +316,7 @@ Wrapped_Function * wrap_function(
|
|
316
316
|
template<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>
|
317
317
|
Wrapped_Function * wrap_function(
|
318
318
|
Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T) const,
|
319
|
-
Exception_Handler
|
319
|
+
Data_Object<Exception_Handler> handler)
|
320
320
|
{
|
321
321
|
typedef Ret_T (Self_T::*Func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T) const;
|
322
322
|
return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T>(func, handler);
|
@@ -326,7 +326,7 @@ Wrapped_Function * wrap_function(
|
|
326
326
|
template<typename Ret_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>
|
327
327
|
Wrapped_Function * wrap_function(
|
328
328
|
Ret_T (*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T),
|
329
|
-
Exception_Handler
|
329
|
+
Data_Object<Exception_Handler> handler)
|
330
330
|
{
|
331
331
|
typedef Ret_T (*Func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T);
|
332
332
|
return new Auto_Function_Wrapper<Func, Ret_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>(func, handler);
|
@@ -335,7 +335,7 @@ Wrapped_Function * wrap_function(
|
|
335
335
|
template<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>
|
336
336
|
Wrapped_Function * wrap_function(
|
337
337
|
Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T),
|
338
|
-
Exception_Handler
|
338
|
+
Data_Object<Exception_Handler> handler)
|
339
339
|
{
|
340
340
|
typedef Ret_T (Self_T::*Func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T);
|
341
341
|
return new Auto_Member_Function_Wrapper<Func, 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>(func, handler);
|
@@ -344,7 +344,7 @@ Wrapped_Function * wrap_function(
|
|
344
344
|
template<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>
|
345
345
|
Wrapped_Function * wrap_function(
|
346
346
|
Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T) const,
|
347
|
-
Exception_Handler
|
347
|
+
Data_Object<Exception_Handler> handler)
|
348
348
|
{
|
349
349
|
typedef Ret_T (Self_T::*Func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T) const;
|
350
350
|
return new Auto_Member_Function_Wrapper<Func, 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>(func, handler);
|
@@ -354,7 +354,7 @@ Wrapped_Function * wrap_function(
|
|
354
354
|
template<typename Ret_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>
|
355
355
|
Wrapped_Function * wrap_function(
|
356
356
|
Ret_T (*func)(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),
|
357
|
-
Exception_Handler
|
357
|
+
Data_Object<Exception_Handler> handler)
|
358
358
|
{
|
359
359
|
typedef Ret_T (*Func)(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);
|
360
360
|
return new Auto_Function_Wrapper<Func, Ret_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>(func, handler);
|
@@ -363,7 +363,7 @@ Wrapped_Function * wrap_function(
|
|
363
363
|
template<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>
|
364
364
|
Wrapped_Function * wrap_function(
|
365
365
|
Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T),
|
366
|
-
Exception_Handler
|
366
|
+
Data_Object<Exception_Handler> handler)
|
367
367
|
{
|
368
368
|
typedef Ret_T (Self_T::*Func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T);
|
369
369
|
return new Auto_Member_Function_Wrapper<Func, 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>(func, handler);
|
@@ -372,7 +372,7 @@ Wrapped_Function * wrap_function(
|
|
372
372
|
template<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>
|
373
373
|
Wrapped_Function * wrap_function(
|
374
374
|
Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T) const,
|
375
|
-
Exception_Handler
|
375
|
+
Data_Object<Exception_Handler> handler)
|
376
376
|
{
|
377
377
|
typedef Ret_T (Self_T::*Func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T) const;
|
378
378
|
return new Auto_Member_Function_Wrapper<Func, 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>(func, handler);
|
@@ -382,7 +382,7 @@ Wrapped_Function * wrap_function(
|
|
382
382
|
template<typename Ret_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>
|
383
383
|
Wrapped_Function * wrap_function(
|
384
384
|
Ret_T (*func)(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),
|
385
|
-
Exception_Handler
|
385
|
+
Data_Object<Exception_Handler> handler)
|
386
386
|
{
|
387
387
|
typedef Ret_T (*Func)(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);
|
388
388
|
return new Auto_Function_Wrapper<Func, Ret_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>(func, handler);
|
@@ -391,7 +391,7 @@ Wrapped_Function * wrap_function(
|
|
391
391
|
template<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>
|
392
392
|
Wrapped_Function * wrap_function(
|
393
393
|
Ret_T (Self_T::*func)(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),
|
394
|
-
Exception_Handler
|
394
|
+
Data_Object<Exception_Handler> handler)
|
395
395
|
{
|
396
396
|
typedef Ret_T (Self_T::*Func)(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);
|
397
397
|
return new Auto_Member_Function_Wrapper<Func, 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>(func, handler);
|
@@ -400,7 +400,7 @@ Wrapped_Function * wrap_function(
|
|
400
400
|
template<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>
|
401
401
|
Wrapped_Function * wrap_function(
|
402
402
|
Ret_T (Self_T::*func)(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) const,
|
403
|
-
Exception_Handler
|
403
|
+
Data_Object<Exception_Handler> handler)
|
404
404
|
{
|
405
405
|
typedef Ret_T (Self_T::*Func)(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) const;
|
406
406
|
return new Auto_Member_Function_Wrapper<Func, 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>(func, handler);
|
@@ -410,7 +410,7 @@ Wrapped_Function * wrap_function(
|
|
410
410
|
template<typename Ret_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>
|
411
411
|
Wrapped_Function * wrap_function(
|
412
412
|
Ret_T (*func)(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),
|
413
|
-
Exception_Handler
|
413
|
+
Data_Object<Exception_Handler> handler)
|
414
414
|
{
|
415
415
|
typedef Ret_T (*Func)(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);
|
416
416
|
return new Auto_Function_Wrapper<Func, Ret_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>(func, handler);
|
@@ -419,7 +419,7 @@ Wrapped_Function * wrap_function(
|
|
419
419
|
template<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>
|
420
420
|
Wrapped_Function * wrap_function(
|
421
421
|
Ret_T (Self_T::*func)(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),
|
422
|
-
Exception_Handler
|
422
|
+
Data_Object<Exception_Handler> handler)
|
423
423
|
{
|
424
424
|
typedef Ret_T (Self_T::*Func)(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);
|
425
425
|
return new Auto_Member_Function_Wrapper<Func, 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>(func, handler);
|
@@ -428,7 +428,7 @@ Wrapped_Function * wrap_function(
|
|
428
428
|
template<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>
|
429
429
|
Wrapped_Function * wrap_function(
|
430
430
|
Ret_T (Self_T::*func)(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) const,
|
431
|
-
Exception_Handler
|
431
|
+
Data_Object<Exception_Handler> handler)
|
432
432
|
{
|
433
433
|
typedef Ret_T (Self_T::*Func)(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) const;
|
434
434
|
return new Auto_Member_Function_Wrapper<Func, 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>(func, handler);
|
@@ -438,7 +438,7 @@ Wrapped_Function * wrap_function(
|
|
438
438
|
template<typename Ret_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>
|
439
439
|
Wrapped_Function * wrap_function(
|
440
440
|
Ret_T (*func)(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),
|
441
|
-
Exception_Handler
|
441
|
+
Data_Object<Exception_Handler> handler)
|
442
442
|
{
|
443
443
|
typedef Ret_T (*Func)(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);
|
444
444
|
return new Auto_Function_Wrapper<Func, Ret_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>(func, handler);
|
@@ -447,7 +447,7 @@ Wrapped_Function * wrap_function(
|
|
447
447
|
template<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>
|
448
448
|
Wrapped_Function * wrap_function(
|
449
449
|
Ret_T (Self_T::*func)(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),
|
450
|
-
Exception_Handler
|
450
|
+
Data_Object<Exception_Handler> handler)
|
451
451
|
{
|
452
452
|
typedef Ret_T (Self_T::*Func)(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);
|
453
453
|
return new Auto_Member_Function_Wrapper<Func, 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>(func, handler);
|
@@ -456,7 +456,7 @@ Wrapped_Function * wrap_function(
|
|
456
456
|
template<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>
|
457
457
|
Wrapped_Function * wrap_function(
|
458
458
|
Ret_T (Self_T::*func)(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) const,
|
459
|
-
Exception_Handler
|
459
|
+
Data_Object<Exception_Handler> handler)
|
460
460
|
{
|
461
461
|
typedef Ret_T (Self_T::*Func)(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) const;
|
462
462
|
return new Auto_Member_Function_Wrapper<Func, 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>(func, handler);
|
data/rice/generate_code.rb
CHANGED
@@ -85,7 +85,7 @@ def wrap_header(
|
|
85
85
|
end
|
86
86
|
|
87
87
|
def null_wrap(*args)
|
88
|
-
yield
|
88
|
+
yield(*args)
|
89
89
|
end
|
90
90
|
|
91
91
|
def wrap_docstring(out, docstring)
|
@@ -304,97 +304,7 @@ wrap_header(hpp_filename, nil, docstring, false, nil, nil, GENERATED_FILE_WARNIN
|
|
304
304
|
end
|
305
305
|
end
|
306
306
|
end
|
307
|
-
|
308
|
-
# # ======================================================================
|
309
|
-
# method_types = [
|
310
|
-
# 'method', 'module_function', 'protected_method',
|
311
|
-
# 'private_method', 'singleton_method'
|
312
|
-
# ]
|
313
|
-
# method_docstring = <<END
|
314
|
-
# //! Define a %s method. Like rb_define_%s, but automatically calculates
|
315
|
-
# //! the number of arguments based on the prototype of the supplied
|
316
|
-
# //! function f.
|
317
|
-
# VALUE define_%s(
|
318
|
-
# VALUE klass,
|
319
|
-
# char const * name,
|
320
|
-
# VALUE (*f)(VALUE arg1, VALUE arg2, ...));
|
321
|
-
# END
|
322
|
-
# docstring = <<END
|
323
|
-
# /*! \\file
|
324
|
-
# * \\brief Helpers for defining ruby methods, overloaded on the
|
325
|
-
# * signature of the function being wrapped.
|
326
|
-
# */
|
327
|
-
# #{method_types.map do |t| method_docstring % [ t, t, t ] end}
|
328
|
-
# //! Define a global function. Like rb_define_global_function, but
|
329
|
-
# //! automatically calculates the number of arguments based on the
|
330
|
-
# //! prototype of the supplied function f.
|
331
|
-
# void define_global_function(
|
332
|
-
# char const * name,
|
333
|
-
# VALUE (*f)(VALUE arg1, VALUE arg2, ...));
|
334
|
-
# END
|
335
|
-
# method_def = <<END
|
336
|
-
# inline void define_%s(
|
337
|
-
# VALUE klass,
|
338
|
-
# char const * name,
|
339
|
-
# VALUE(*f)(%%(args)))
|
340
|
-
# {
|
341
|
-
# rb_define_%s(klass, name, RUBY_METHOD_FUNC(f), %%(j));
|
342
|
-
# }
|
343
|
-
# END
|
344
|
-
# method_decl = <<END
|
345
|
-
# void define_%s(
|
346
|
-
# VALUE klass,
|
347
|
-
# char const * name,
|
348
|
-
# VALUE(*f)(%%(args)));
|
349
|
-
# END
|
350
|
-
# ipp_template = <<END
|
351
|
-
# #{method_types.map do |t| method_def % [ t, t ] end }\
|
352
|
-
# inline void define_global_function(
|
353
|
-
# char const * name,
|
354
|
-
# VALUE(*f)(%(args)))
|
355
|
-
# {
|
356
|
-
# rb_define_global_function(name, RUBY_METHOD_FUNC(f), %(j));
|
357
|
-
# }
|
358
|
-
#
|
359
|
-
# // ---------------------------------------------------------------------
|
360
|
-
# END
|
361
|
-
# hpp_template = <<END
|
362
|
-
# #{method_types.map do |t| method_decl % t end }\
|
363
|
-
# void define_global_function(
|
364
|
-
# char const * name,
|
365
|
-
# VALUE(*f)(%(args)));
|
366
|
-
#
|
367
|
-
# // ---------------------------------------------------------------------
|
368
|
-
# END
|
369
|
-
# ipp_filename = 'define_method.ipp'
|
370
|
-
# hpp_filename = 'define_method.hpp'
|
371
|
-
# wrap_header(ipp_filename, 'Rice') do |ipp|
|
372
|
-
# wrap_header(hpp_filename, 'Rice', docstring, true) do |hpp|
|
373
|
-
# for j in 0..MAX_ARGS do
|
374
|
-
# t_array = (0..j).to_a
|
375
|
-
# arg_list = t_array.map { |x| "VALUE" }.join(', ')
|
376
|
-
# ipp.puts fill_template(ipp_template, {
|
377
|
-
# :args => arg_list,
|
378
|
-
# :j => j
|
379
|
-
# })
|
380
|
-
# ipp.puts ""
|
381
|
-
# hpp.puts fill_template(hpp_template, {
|
382
|
-
# :args => arg_list
|
383
|
-
# })
|
384
|
-
# hpp.puts ""
|
385
|
-
# end
|
386
|
-
# arg_list = "int, VALUE*, VALUE";
|
387
|
-
# ipp.puts fill_template(ipp_template, {
|
388
|
-
# :args => arg_list,
|
389
|
-
# :j => -1
|
390
|
-
# })
|
391
|
-
# ipp.puts ""
|
392
|
-
# hpp.puts fill_template(hpp_template, {
|
393
|
-
# :args => arg_list
|
394
|
-
# })
|
395
|
-
# end
|
396
|
-
# end
|
397
|
-
#
|
307
|
+
|
398
308
|
# ======================================================================
|
399
309
|
docstring = <<END
|
400
310
|
END
|
@@ -403,10 +313,11 @@ template<typename Func_T, typename Ret_T, %(typename_list)>
|
|
403
313
|
Auto_Function_Wrapper<Func_T, Ret_T, %(typenames)>::
|
404
314
|
Auto_Function_Wrapper(
|
405
315
|
Func func,
|
406
|
-
Exception_Handler
|
316
|
+
Data_Object<Exception_Handler> handler)
|
407
317
|
: Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
|
408
318
|
, func_(func)
|
409
|
-
, handler_(handler
|
319
|
+
, handler_(handler)
|
320
|
+
, handler_guard_(&handler_)
|
410
321
|
{
|
411
322
|
}
|
412
323
|
|
@@ -417,8 +328,8 @@ call(%(value_args))
|
|
417
328
|
Auto_Function_Wrapper<Func_T, Ret_T, %(typenames)> * wrapper = 0;
|
418
329
|
try
|
419
330
|
{
|
420
|
-
|
421
|
-
wrapper = (Auto_Function_Wrapper<Func_T, Ret_T, %(typenames)> *)data;
|
331
|
+
Data_Object<Wrapped_Function> data(detail::method_data());
|
332
|
+
wrapper = (Auto_Function_Wrapper<Func_T, Ret_T, %(typenames)> *)data.get();
|
422
333
|
%(arg_convert_list)
|
423
334
|
return to_ruby(wrapper->func_(%(arg_list)));
|
424
335
|
}
|
@@ -443,10 +354,11 @@ template<typename Func_T, %(typename_list)>
|
|
443
354
|
Auto_Function_Wrapper<Func_T, void, %(typenames)>::
|
444
355
|
Auto_Function_Wrapper(
|
445
356
|
Func func,
|
446
|
-
Exception_Handler
|
357
|
+
Data_Object<Exception_Handler> handler)
|
447
358
|
: Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
|
448
359
|
, func_(func)
|
449
|
-
, handler_(handler
|
360
|
+
, handler_(handler)
|
361
|
+
, handler_guard_(&handler_)
|
450
362
|
{
|
451
363
|
}
|
452
364
|
|
@@ -457,9 +369,9 @@ call(%(value_args))
|
|
457
369
|
Auto_Function_Wrapper<Func_T, void, %(typenames)> * wrapper = 0;
|
458
370
|
try
|
459
371
|
{
|
460
|
-
|
372
|
+
Data_Object<Wrapped_Function> data(detail::method_data());
|
461
373
|
wrapper =
|
462
|
-
(Auto_Function_Wrapper<Func_T, void, %(typenames)> *)data;
|
374
|
+
(Auto_Function_Wrapper<Func_T, void, %(typenames)> *)data.get();
|
463
375
|
%(arg_convert_list)
|
464
376
|
wrapper->func_(%(arg_list));
|
465
377
|
return Qnil;
|
@@ -500,13 +412,14 @@ public:
|
|
500
412
|
|
501
413
|
Auto_Function_Wrapper(
|
502
414
|
Func func,
|
503
|
-
Exception_Handler
|
415
|
+
Data_Object<Exception_Handler> handler);
|
504
416
|
|
505
417
|
static VALUE call(%(value_args));
|
506
418
|
|
507
419
|
private:
|
508
420
|
Func func_;
|
509
|
-
Exception_Handler
|
421
|
+
Data_Object<Exception_Handler> handler_;
|
422
|
+
Address_Registration_Guard handler_guard_;
|
510
423
|
};
|
511
424
|
|
512
425
|
template<typename Func_T, %(typename_list)>
|
@@ -521,19 +434,20 @@ public:
|
|
521
434
|
|
522
435
|
Auto_Function_Wrapper(
|
523
436
|
Func func,
|
524
|
-
Exception_Handler
|
437
|
+
Data_Object<Exception_Handler> handler);
|
525
438
|
|
526
439
|
static VALUE call(%(value_args));
|
527
440
|
|
528
441
|
private:
|
529
442
|
Func func_;
|
530
|
-
Exception_Handler
|
443
|
+
Data_Object<Exception_Handler> handler_;
|
444
|
+
Address_Registration_Guard handler_guard_;
|
531
445
|
};
|
532
446
|
|
533
447
|
// ---------------------------------------------------------------------
|
534
448
|
END
|
535
449
|
hpp_head = <<END
|
536
|
-
#include "
|
450
|
+
#include "Exception_Handler_defn.hpp"
|
537
451
|
|
538
452
|
END
|
539
453
|
ipp_head = <<END
|
@@ -594,10 +508,11 @@ template<typename Func_T, typename Ret_T, typename Self_T%(typename_list)>
|
|
594
508
|
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T%(typenames)>::
|
595
509
|
Auto_Member_Function_Wrapper(
|
596
510
|
Func func,
|
597
|
-
Exception_Handler
|
511
|
+
Data_Object<Exception_Handler> handler)
|
598
512
|
: Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
|
599
513
|
, func_(func)
|
600
|
-
, handler_(handler
|
514
|
+
, handler_(handler)
|
515
|
+
, handler_guard_(&handler_)
|
601
516
|
{
|
602
517
|
}
|
603
518
|
|
@@ -608,9 +523,9 @@ call(VALUE self%(value_args))
|
|
608
523
|
Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T%(typenames)> * wrapper = 0;
|
609
524
|
try
|
610
525
|
{
|
611
|
-
|
526
|
+
Data_Object<Wrapped_Function> data(detail::method_data());
|
612
527
|
wrapper =
|
613
|
-
(Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T%(typenames)> *)data;
|
528
|
+
(Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T%(typenames)> *)data.get();
|
614
529
|
Self_T * obj = from_ruby<Self_T *>(self);
|
615
530
|
%(arg_convert_list)
|
616
531
|
Func func = wrapper->func_;
|
@@ -637,10 +552,11 @@ template<typename Func_T, typename Self_T%(typename_list)>
|
|
637
552
|
Auto_Member_Function_Wrapper<Func_T, void, Self_T%(typenames)>::
|
638
553
|
Auto_Member_Function_Wrapper(
|
639
554
|
Func func,
|
640
|
-
Exception_Handler
|
555
|
+
Data_Object<Exception_Handler> handler)
|
641
556
|
: Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
|
642
557
|
, func_(func)
|
643
|
-
, handler_(handler
|
558
|
+
, handler_(handler)
|
559
|
+
, handler_guard_(&handler_)
|
644
560
|
{
|
645
561
|
}
|
646
562
|
|
@@ -651,9 +567,9 @@ call(VALUE self%(value_args))
|
|
651
567
|
Auto_Member_Function_Wrapper<Func_T, void, Self_T%(typenames)> * wrapper = 0;
|
652
568
|
try
|
653
569
|
{
|
654
|
-
|
570
|
+
Data_Object<Wrapped_Function> data(detail::method_data());
|
655
571
|
wrapper =
|
656
|
-
(Auto_Member_Function_Wrapper<Func_T, void, Self_T%(typenames)> *)data;
|
572
|
+
(Auto_Member_Function_Wrapper<Func_T, void, Self_T%(typenames)> *)data.get();
|
657
573
|
Self_T * obj = from_ruby<Self_T *>(self);
|
658
574
|
%(arg_convert_list)
|
659
575
|
Func func = wrapper->func_;
|
@@ -691,13 +607,14 @@ public:
|
|
691
607
|
|
692
608
|
Auto_Member_Function_Wrapper(
|
693
609
|
Func func,
|
694
|
-
Exception_Handler
|
610
|
+
Data_Object<Exception_Handler> handler);
|
695
611
|
|
696
612
|
static VALUE call(VALUE self%(value_args));
|
697
613
|
|
698
614
|
private:
|
699
615
|
Func func_;
|
700
|
-
Exception_Handler
|
616
|
+
Data_Object<Exception_Handler> handler_;
|
617
|
+
Address_Registration_Guard handler_guard_;
|
701
618
|
};
|
702
619
|
|
703
620
|
template<typename Func_T, typename Self_T%(typename_list)>
|
@@ -711,13 +628,14 @@ public:
|
|
711
628
|
|
712
629
|
Auto_Member_Function_Wrapper(
|
713
630
|
Func func,
|
714
|
-
Exception_Handler
|
631
|
+
Data_Object<Exception_Handler> handler);
|
715
632
|
|
716
633
|
static VALUE call(VALUE self%(value_args));
|
717
634
|
|
718
635
|
private:
|
719
636
|
Func func_;
|
720
|
-
Exception_Handler
|
637
|
+
Data_Object<Exception_Handler> handler_;
|
638
|
+
Address_Registration_Guard handler_guard_;
|
721
639
|
};
|
722
640
|
|
723
641
|
// ---------------------------------------------------------------------
|
@@ -772,112 +690,13 @@ wrap_header(hpp_filename, 'Rice::detail', docstring, true) do |hpp|
|
|
772
690
|
end
|
773
691
|
end
|
774
692
|
|
775
|
-
=begin
|
776
|
-
# ======================================================================
|
777
|
-
docstring = <<END
|
778
|
-
END
|
779
|
-
ipp_template = <<END
|
780
|
-
template<typename Ret_T, %(typename_list)>
|
781
|
-
void define_method_and_auto_wrap(
|
782
|
-
VALUE klass,
|
783
|
-
char const * name,
|
784
|
-
Ret_T (*func)(%(typenames)),
|
785
|
-
Exception_Handler const * handler)
|
786
|
-
{
|
787
|
-
// TODO: Register this wrapper with the GC?
|
788
|
-
Auto_Function_Wrapper<Ret_T, %(typenames)> * wrapper = new
|
789
|
-
Auto_Function_Wrapper<Ret_T, %(typenames)>(func, handler);
|
790
|
-
define_method_with_data(
|
791
|
-
klass,
|
792
|
-
name,
|
793
|
-
(RUBY_METHOD_FUNC)Auto_Function_Wrapper<Ret_T, %(typenames)>::call,
|
794
|
-
(RUBY_METHOD_FUNC)Auto_Function_Wrapper<Ret_T, %(typenames)>::Num_Args,
|
795
|
-
wrapper);
|
796
|
-
}
|
797
|
-
|
798
|
-
template<typename Ret_T, typename Self_T%(typename_list_no_self)>
|
799
|
-
void define_method_and_auto_wrap(
|
800
|
-
VALUE klass,
|
801
|
-
char const * name,
|
802
|
-
Ret_T (Self_T::*func)(%(typenames_no_self_no_comma)),
|
803
|
-
Exception_Handler const * handler)
|
804
|
-
{
|
805
|
-
// TODO: Register this wrapper with the GC?
|
806
|
-
Auto_Member_Function_Wrapper<Ret_T, Self_T%(typenames_no_self)> * wrapper = new
|
807
|
-
Auto_Member_Function_Wrapper<Ret_T, Self_T%(typenames_no_self)>(func, handler);
|
808
|
-
define_method_with_data(
|
809
|
-
klass,
|
810
|
-
name,
|
811
|
-
(RUBY_METHOD_FUNC)Auto_Member_Function_Wrapper<Ret_T, Self_T%(typenames_no_self)>::call,
|
812
|
-
%(j),
|
813
|
-
wrapper);
|
814
|
-
}
|
815
|
-
|
816
|
-
// ---------------------------------------------------------------------
|
817
|
-
END
|
818
|
-
hpp_template = <<END
|
819
|
-
template<typename Ret_T, %(typename_list)>
|
820
|
-
void define_method_and_auto_wrap(
|
821
|
-
VALUE klass,
|
822
|
-
char const * name,
|
823
|
-
Ret_T (*func)(%(typenames)),
|
824
|
-
Exception_Handler const * handler = 0);
|
825
|
-
|
826
|
-
template<typename Ret_T, typename Self_T%(typename_list_no_self)>
|
827
|
-
void define_method_and_auto_wrap(
|
828
|
-
VALUE klass,
|
829
|
-
char const * name,
|
830
|
-
Ret_T (Self_T::*func)(%(typenames_no_self_no_comma)),
|
831
|
-
Exception_Handler const * handler = 0);
|
832
|
-
|
833
|
-
// ---------------------------------------------------------------------
|
834
|
-
END
|
835
|
-
hpp_head = <<END
|
836
|
-
#include "Exception_Handler.hpp"
|
837
|
-
END
|
838
|
-
ipp_head = <<END
|
839
|
-
#include "Auto_Function_Wrapper.hpp"
|
840
|
-
#include "Auto_Member_Function_Wrapper.hpp"
|
841
|
-
END
|
842
|
-
ipp_filename = 'detail/define_method_and_auto_wrap.ipp'
|
843
|
-
hpp_filename = 'detail/define_method_and_auto_wrap.hpp'
|
844
|
-
wrap_header(hpp_filename, 'Rice::detail', docstring, true, hpp_head) do |hpp|
|
845
|
-
wrap_header(ipp_filename, 'Rice::detail', nil, false, ipp_head) do |ipp|
|
846
|
-
for j in 0..MAX_ARGS do
|
847
|
-
t_array = (0..j).to_a
|
848
|
-
typenames = t_array.map { |x| "Arg#{x}_T" }.join(', ')
|
849
|
-
typename_list = t_array.map { |x| "typename Arg#{x}_T" }.join(', ')
|
850
|
-
t_array.shift
|
851
|
-
typenames_no_self = t_array.map { |x| ", Arg#{x}_T" }
|
852
|
-
typename_list_no_self = t_array.map { |x| ", typename Arg#{x}_T" }
|
853
|
-
typenames_no_self_no_comma = typenames_no_self.to_s.sub(', ', '')
|
854
|
-
ipp.puts fill_template(ipp_template, {
|
855
|
-
:typenames => typenames,
|
856
|
-
:typename_list => typename_list,
|
857
|
-
:typenames_no_self => typenames_no_self,
|
858
|
-
:typename_list_no_self => typename_list_no_self,
|
859
|
-
:typenames_no_self_no_comma => typenames_no_self_no_comma,
|
860
|
-
:j => j,
|
861
|
-
})
|
862
|
-
hpp.puts fill_template(hpp_template, {
|
863
|
-
:typenames => typenames,
|
864
|
-
:typename_list => typename_list,
|
865
|
-
:typename_list_no_self => typename_list_no_self,
|
866
|
-
:typenames_no_self_no_comma => typenames_no_self_no_comma,
|
867
|
-
})
|
868
|
-
end
|
869
|
-
end
|
870
|
-
end
|
871
|
-
# ======================================================================
|
872
|
-
=end
|
873
|
-
|
874
693
|
docstring = <<END
|
875
694
|
END
|
876
695
|
ipp_template = <<END
|
877
696
|
template<typename Ret_T, %(typename_list)>
|
878
697
|
Wrapped_Function * wrap_function(
|
879
698
|
Ret_T (*func)(%(typenames)),
|
880
|
-
Exception_Handler
|
699
|
+
Data_Object<Exception_Handler> handler)
|
881
700
|
{
|
882
701
|
typedef Ret_T (*Func)(%(typenames));
|
883
702
|
return new Auto_Function_Wrapper<Func, Ret_T, %(typenames)>(func, handler);
|
@@ -886,7 +705,7 @@ Wrapped_Function * wrap_function(
|
|
886
705
|
template<typename Ret_T, typename Self_T%(typename_list_no_self)>
|
887
706
|
Wrapped_Function * wrap_function(
|
888
707
|
Ret_T (Self_T::*func)(%(typenames_no_self_no_comma)),
|
889
|
-
Exception_Handler
|
708
|
+
Data_Object<Exception_Handler> handler)
|
890
709
|
{
|
891
710
|
typedef Ret_T (Self_T::*Func)(%(typenames_no_self_no_comma));
|
892
711
|
return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T%(typenames_no_self)>(func, handler);
|
@@ -895,7 +714,7 @@ Wrapped_Function * wrap_function(
|
|
895
714
|
template<typename Ret_T, typename Self_T%(typename_list_no_self)>
|
896
715
|
Wrapped_Function * wrap_function(
|
897
716
|
Ret_T (Self_T::*func)(%(typenames_no_self_no_comma)) const,
|
898
|
-
Exception_Handler
|
717
|
+
Data_Object<Exception_Handler> handler)
|
899
718
|
{
|
900
719
|
typedef Ret_T (Self_T::*Func)(%(typenames_no_self_no_comma)) const;
|
901
720
|
return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T%(typenames_no_self)>(func, handler);
|
@@ -907,23 +726,25 @@ hpp_template = <<END
|
|
907
726
|
template<typename Ret_T, %(typename_list)>
|
908
727
|
Wrapped_Function * wrap_function(
|
909
728
|
Ret_T (*func)(%(typenames)),
|
910
|
-
Exception_Handler
|
729
|
+
Data_Object<Exception_Handler> handler = Rice::Nil);
|
911
730
|
|
912
731
|
template<typename Ret_T, typename Self_T%(typename_list_no_self)>
|
913
732
|
Wrapped_Function * wrap_function(
|
914
733
|
Ret_T (Self_T::*func)(%(typenames_no_self_no_comma)),
|
915
|
-
Exception_Handler
|
734
|
+
Data_Object<Exception_Handler> handler = Rice::Nil);
|
916
735
|
|
917
736
|
template<typename Ret_T, typename Self_T%(typename_list_no_self)>
|
918
737
|
Wrapped_Function * wrap_function(
|
919
738
|
Ret_T (Self_T::*func)(%(typenames_no_self_no_comma)) const,
|
920
|
-
Exception_Handler
|
739
|
+
Data_Object<Exception_Handler> handler = Rice::Nil);
|
921
740
|
|
922
741
|
// ---------------------------------------------------------------------
|
923
742
|
END
|
924
743
|
hpp_head = <<END
|
925
744
|
#include "Exception_Handler.hpp"
|
926
745
|
#include "Wrapped_Function.hpp"
|
746
|
+
#include "../Object_defn.hpp"
|
747
|
+
#include "../Data_Object.hpp"
|
927
748
|
|
928
749
|
END
|
929
750
|
ipp_head = <<END
|
@@ -1017,76 +838,5 @@ if ARGV[0] == '--clean' then
|
|
1017
838
|
end
|
1018
839
|
end
|
1019
840
|
|
1020
|
-
=begin
|
1021
|
-
# ======================================================================
|
1022
|
-
docstring = <<END
|
1023
|
-
END
|
1024
|
-
hpp_template = <<END
|
1025
|
-
struct Function_Traits<Ret_T, %(typenames)>
|
1026
|
-
{
|
1027
|
-
typedef Ret_T Result_Type;
|
1028
|
-
typedef
|
1029
|
-
}
|
1030
|
-
|
1031
|
-
template<typename Ret_T, %(typename_list)>
|
1032
|
-
Function_Traits<Ret_T, %(typenames)> functor_traits(
|
1033
|
-
Ret_T (*func)(%(typenames)),
|
1034
|
-
Exception_Handler const * handler = 0);
|
1035
|
-
|
1036
|
-
template<typename Ret_T, typename Self_T%(typename_list_no_self)>
|
1037
|
-
Function_Traits<Ret_T, %(typenames)> functor_traits(
|
1038
|
-
Ret_T (Self_T::*func)(%(typenames_no_self_no_comma)),
|
1039
|
-
Exception_Handler const * handler = 0);
|
1040
|
-
|
1041
|
-
template<typename Ret_T, typename Self_T%(typename_list_no_self)>
|
1042
|
-
Member_Function_Traits<Ret_T, Self_T%(typenames_no_self) > functor_traits(
|
1043
|
-
Ret_T (Self_T::*func)(%(typenames_no_self_no_comma)) const,
|
1044
|
-
Exception_Handler const * handler = 0);
|
1045
|
-
|
1046
|
-
// ---------------------------------------------------------------------
|
1047
|
-
END
|
1048
|
-
hpp_head = <<END
|
1049
|
-
#include "Exception_Handler.hpp"
|
1050
|
-
#include "Wrapped_Function.hpp"
|
1051
|
-
|
1052
|
-
END
|
1053
|
-
hpp_tail = <<END
|
1054
|
-
|
1055
|
-
template<typename T>
|
1056
|
-
functor_traits(&T::operator())
|
1057
|
-
|
1058
|
-
END
|
1059
|
-
ipp_head = <<END
|
1060
|
-
#include "Auto_Function_Wrapper.hpp"
|
1061
|
-
#include "Auto_Member_Function_Wrapper.hpp"
|
1062
|
-
END
|
1063
|
-
ipp_filename = 'detail/function_traits.ipp'
|
1064
|
-
hpp_filename = 'detail/function_traits.hpp'
|
1065
|
-
wrap_header(hpp_filename, 'Rice::detail', docstring, true, hpp_head, hpp_tail) do |hpp|
|
1066
|
-
for j in 0..MAX_ARGS do
|
1067
|
-
t_array = (0..j).to_a
|
1068
|
-
typenames = t_array.map { |x| "Arg#{x}_T" }.join(', ')
|
1069
|
-
typename_list = t_array.map { |x| "typename Arg#{x}_T" }.join(', ')
|
1070
|
-
t_array.shift
|
1071
|
-
typenames_no_self = t_array.map { |x| ", Arg#{x}_T" }
|
1072
|
-
typename_list_no_self = t_array.map { |x| ", typename Arg#{x}_T" }
|
1073
|
-
typenames_no_self_no_comma = typenames_no_self.to_s.sub(', ', '')
|
1074
|
-
ipp.puts fill_template(ipp_template, {
|
1075
|
-
:typenames => typenames,
|
1076
|
-
:typename_list => typename_list,
|
1077
|
-
:typenames_no_self => typenames_no_self,
|
1078
|
-
:typename_list_no_self => typename_list_no_self,
|
1079
|
-
:typenames_no_self_no_comma => typenames_no_self_no_comma,
|
1080
|
-
})
|
1081
|
-
hpp.puts fill_template(hpp_template, {
|
1082
|
-
:typenames => typenames,
|
1083
|
-
:typename_list => typename_list,
|
1084
|
-
:typename_list_no_self => typename_list_no_self,
|
1085
|
-
:typenames_no_self_no_comma => typenames_no_self_no_comma,
|
1086
|
-
})
|
1087
|
-
end
|
1088
|
-
end
|
1089
|
-
=end
|
1090
|
-
|
1091
841
|
end # if __FILE__ == $0 then
|
1092
842
|
|