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.
Files changed (54) hide show
  1. data/Doxyfile +1 -1
  2. data/Makefile.in +3 -2
  3. data/README +247 -16
  4. data/aclocal.m4 +62 -51
  5. data/configure +1585 -1456
  6. data/extconf.rb +9 -1
  7. data/rice/Arg.hpp +8 -0
  8. data/rice/Arg_impl.hpp +124 -0
  9. data/rice/Arg_operators.cpp +21 -0
  10. data/rice/Arg_operators.hpp +19 -0
  11. data/rice/Constructor.hpp +150 -0
  12. data/rice/Data_Type.ipp +51 -6
  13. data/rice/Director.cpp +19 -0
  14. data/rice/Director.hpp +47 -0
  15. data/rice/Enum.hpp +2 -3
  16. data/rice/Enum.ipp +1 -1
  17. data/rice/Hash.hpp +1 -1
  18. data/rice/Makefile.am +7 -0
  19. data/rice/Makefile.in +18 -7
  20. data/rice/Module_impl.hpp +36 -3
  21. data/rice/Module_impl.ipp +56 -7
  22. data/rice/VM.cpp +2 -2
  23. data/rice/config.hpp +1 -1
  24. data/rice/detail/Arguments.hpp +118 -0
  25. data/rice/detail/Auto_Function_Wrapper.hpp +206 -96
  26. data/rice/detail/Auto_Function_Wrapper.ipp +1687 -144
  27. data/rice/detail/Auto_Member_Function_Wrapper.hpp +234 -123
  28. data/rice/detail/Auto_Member_Function_Wrapper.ipp +1133 -306
  29. data/rice/detail/Caster.hpp +3 -1
  30. data/rice/detail/creation_funcs.hpp +0 -8
  31. data/rice/detail/creation_funcs.ipp +1 -27
  32. data/rice/detail/define_method_and_auto_wrap.hpp +3 -1
  33. data/rice/detail/define_method_and_auto_wrap.ipp +4 -3
  34. data/rice/detail/object_call.ipp +1 -1
  35. data/rice/detail/ruby.hpp +1 -33
  36. data/rice/detail/wrap_function.hpp +103 -48
  37. data/rice/detail/wrap_function.ipp +154 -96
  38. data/rice/generate_code.rb +520 -55
  39. data/rice/global_function.hpp +12 -1
  40. data/rice/global_function.ipp +14 -2
  41. data/ruby/Makefile.in +5 -4
  42. data/ruby/lib/Makefile.in +4 -3
  43. data/ruby/lib/version.rb +1 -1
  44. data/sample/Makefile.in +4 -3
  45. data/test/Makefile.am +2 -0
  46. data/test/Makefile.in +32 -13
  47. data/test/test_Class.cpp +36 -14
  48. data/test/test_Constructor.cpp +176 -1
  49. data/test/test_Data_Type.cpp +121 -0
  50. data/test/test_Director.cpp +225 -0
  51. data/test/test_Enum.cpp +33 -0
  52. data/test/test_Module.cpp +175 -0
  53. data/test/test_global_functions.cpp +70 -1
  54. metadata +27 -7
@@ -17,29 +17,78 @@ namespace detail
17
17
 
18
18
  #else
19
19
 
20
- template<typename Func_T, typename Ret_T, typename Self_T, typename Arg1_T = void, typename Arg2_T = void, typename Arg3_T = void, typename Arg4_T = void, typename Arg5_T = void, typename Arg6_T = void, typename Arg7_T = void, typename Arg8_T = void, typename Arg9_T = void, typename Arg10_T = void, typename Arg11_T = void, typename Arg12_T = void, typename Arg13_T = void, typename Arg14_T = void, typename Arg15_T = void>
20
+ template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T = void, typename Arg1_T = void, typename Arg2_T = void, typename Arg3_T = void, typename Arg4_T = void, typename Arg5_T = void, typename Arg6_T = void, typename Arg7_T = void, typename Arg8_T = void, typename Arg9_T = void, typename Arg10_T = void, typename Arg11_T = void, typename Arg12_T = void, typename Arg13_T = void, typename Arg14_T = void, typename Arg15_T = void>
21
21
  class Auto_Member_Function_Wrapper
22
22
  : public Wrapped_Function
23
23
  {
24
24
  public:
25
25
  typedef Func_T Func;
26
26
 
27
+ static const int Num_Args = 16;
28
+
29
+ Auto_Member_Function_Wrapper(
30
+ Func func,
31
+ Data_Object<Exception_Handler> handler,
32
+ Arguments* arguments = 0);
33
+
34
+ static VALUE call(int argc, VALUE* argv, VALUE self);
35
+
36
+ private:
37
+ Func func_;
38
+ Data_Object<Exception_Handler> handler_;
39
+ Address_Registration_Guard handler_guard_;
40
+ Arguments* arguments_;
41
+ };
42
+
43
+ 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>
44
+ class 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>
45
+ : public Wrapped_Function
46
+ {
47
+ public:
48
+ typedef Func_T Func;
49
+
50
+ static const int Num_Args = 16;
51
+
52
+ Auto_Member_Function_Wrapper(
53
+ Func func,
54
+ Data_Object<Exception_Handler> handler,
55
+ Arguments* arguments = 0);
56
+
57
+ static VALUE call(int argc, VALUE* argv, VALUE self);
58
+
59
+ private:
60
+ Func func_;
61
+ Data_Object<Exception_Handler> handler_;
62
+ Address_Registration_Guard handler_guard_;
63
+ Arguments* arguments_;
64
+ };
65
+
66
+ // ---------------------------------------------------------------------
67
+ 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>
68
+ class 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>
69
+ : public Wrapped_Function
70
+ {
71
+ public:
72
+ typedef Func_T Func;
73
+
27
74
  static const int Num_Args = 15;
28
75
 
29
76
  Auto_Member_Function_Wrapper(
30
77
  Func func,
31
- Data_Object<Exception_Handler> handler);
78
+ Data_Object<Exception_Handler> handler,
79
+ Arguments* arguments = 0);
32
80
 
33
- static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8, VALUE ruby_arg9, VALUE ruby_arg10, VALUE ruby_arg11, VALUE ruby_arg12, VALUE ruby_arg13, VALUE ruby_arg14, VALUE ruby_arg15);
81
+ static VALUE call(int argc, VALUE* argv, VALUE self);
34
82
 
35
83
  private:
36
84
  Func func_;
37
85
  Data_Object<Exception_Handler> handler_;
38
86
  Address_Registration_Guard handler_guard_;
87
+ Arguments* arguments_;
39
88
  };
40
89
 
41
- 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>
42
- class 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>
90
+ 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>
91
+ class 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>
43
92
  : public Wrapped_Function
44
93
  {
45
94
  public:
@@ -49,19 +98,21 @@ public:
49
98
 
50
99
  Auto_Member_Function_Wrapper(
51
100
  Func func,
52
- Data_Object<Exception_Handler> handler);
101
+ Data_Object<Exception_Handler> handler,
102
+ Arguments* arguments = 0);
53
103
 
54
- static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8, VALUE ruby_arg9, VALUE ruby_arg10, VALUE ruby_arg11, VALUE ruby_arg12, VALUE ruby_arg13, VALUE ruby_arg14, VALUE ruby_arg15);
104
+ static VALUE call(int argc, VALUE* argv, VALUE self);
55
105
 
56
106
  private:
57
107
  Func func_;
58
108
  Data_Object<Exception_Handler> handler_;
59
109
  Address_Registration_Guard handler_guard_;
110
+ Arguments* arguments_;
60
111
  };
61
112
 
62
113
  // ---------------------------------------------------------------------
63
- 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>
64
- class 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>
114
+ 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>
115
+ class 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>
65
116
  : public Wrapped_Function
66
117
  {
67
118
  public:
@@ -71,18 +122,20 @@ public:
71
122
 
72
123
  Auto_Member_Function_Wrapper(
73
124
  Func func,
74
- Data_Object<Exception_Handler> handler);
125
+ Data_Object<Exception_Handler> handler,
126
+ Arguments* arguments = 0);
75
127
 
76
- static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8, VALUE ruby_arg9, VALUE ruby_arg10, VALUE ruby_arg11, VALUE ruby_arg12, VALUE ruby_arg13, VALUE ruby_arg14);
128
+ static VALUE call(int argc, VALUE* argv, VALUE self);
77
129
 
78
130
  private:
79
131
  Func func_;
80
132
  Data_Object<Exception_Handler> handler_;
81
133
  Address_Registration_Guard handler_guard_;
134
+ Arguments* arguments_;
82
135
  };
83
136
 
84
- 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>
85
- class 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>
137
+ 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>
138
+ class 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>
86
139
  : public Wrapped_Function
87
140
  {
88
141
  public:
@@ -92,19 +145,21 @@ public:
92
145
 
93
146
  Auto_Member_Function_Wrapper(
94
147
  Func func,
95
- Data_Object<Exception_Handler> handler);
148
+ Data_Object<Exception_Handler> handler,
149
+ Arguments* arguments = 0);
96
150
 
97
- static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8, VALUE ruby_arg9, VALUE ruby_arg10, VALUE ruby_arg11, VALUE ruby_arg12, VALUE ruby_arg13, VALUE ruby_arg14);
151
+ static VALUE call(int argc, VALUE* argv, VALUE self);
98
152
 
99
153
  private:
100
154
  Func func_;
101
155
  Data_Object<Exception_Handler> handler_;
102
156
  Address_Registration_Guard handler_guard_;
157
+ Arguments* arguments_;
103
158
  };
104
159
 
105
160
  // ---------------------------------------------------------------------
106
- 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>
107
- class 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>
161
+ 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>
162
+ class 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>
108
163
  : public Wrapped_Function
109
164
  {
110
165
  public:
@@ -114,18 +169,20 @@ public:
114
169
 
115
170
  Auto_Member_Function_Wrapper(
116
171
  Func func,
117
- Data_Object<Exception_Handler> handler);
172
+ Data_Object<Exception_Handler> handler,
173
+ Arguments* arguments = 0);
118
174
 
119
- static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8, VALUE ruby_arg9, VALUE ruby_arg10, VALUE ruby_arg11, VALUE ruby_arg12, VALUE ruby_arg13);
175
+ static VALUE call(int argc, VALUE* argv, VALUE self);
120
176
 
121
177
  private:
122
178
  Func func_;
123
179
  Data_Object<Exception_Handler> handler_;
124
180
  Address_Registration_Guard handler_guard_;
181
+ Arguments* arguments_;
125
182
  };
126
183
 
127
- 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>
128
- class 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>
184
+ 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>
185
+ class 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>
129
186
  : public Wrapped_Function
130
187
  {
131
188
  public:
@@ -135,19 +192,21 @@ public:
135
192
 
136
193
  Auto_Member_Function_Wrapper(
137
194
  Func func,
138
- Data_Object<Exception_Handler> handler);
195
+ Data_Object<Exception_Handler> handler,
196
+ Arguments* arguments = 0);
139
197
 
140
- static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8, VALUE ruby_arg9, VALUE ruby_arg10, VALUE ruby_arg11, VALUE ruby_arg12, VALUE ruby_arg13);
198
+ static VALUE call(int argc, VALUE* argv, VALUE self);
141
199
 
142
200
  private:
143
201
  Func func_;
144
202
  Data_Object<Exception_Handler> handler_;
145
203
  Address_Registration_Guard handler_guard_;
204
+ Arguments* arguments_;
146
205
  };
147
206
 
148
207
  // ---------------------------------------------------------------------
149
- 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>
150
- class 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>
208
+ 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>
209
+ class 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>
151
210
  : public Wrapped_Function
152
211
  {
153
212
  public:
@@ -157,18 +216,20 @@ public:
157
216
 
158
217
  Auto_Member_Function_Wrapper(
159
218
  Func func,
160
- Data_Object<Exception_Handler> handler);
219
+ Data_Object<Exception_Handler> handler,
220
+ Arguments* arguments = 0);
161
221
 
162
- static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8, VALUE ruby_arg9, VALUE ruby_arg10, VALUE ruby_arg11, VALUE ruby_arg12);
222
+ static VALUE call(int argc, VALUE* argv, VALUE self);
163
223
 
164
224
  private:
165
225
  Func func_;
166
226
  Data_Object<Exception_Handler> handler_;
167
227
  Address_Registration_Guard handler_guard_;
228
+ Arguments* arguments_;
168
229
  };
169
230
 
170
- 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>
171
- class 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>
231
+ 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>
232
+ class 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>
172
233
  : public Wrapped_Function
173
234
  {
174
235
  public:
@@ -178,19 +239,21 @@ public:
178
239
 
179
240
  Auto_Member_Function_Wrapper(
180
241
  Func func,
181
- Data_Object<Exception_Handler> handler);
242
+ Data_Object<Exception_Handler> handler,
243
+ Arguments* arguments = 0);
182
244
 
183
- static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8, VALUE ruby_arg9, VALUE ruby_arg10, VALUE ruby_arg11, VALUE ruby_arg12);
245
+ static VALUE call(int argc, VALUE* argv, VALUE self);
184
246
 
185
247
  private:
186
248
  Func func_;
187
249
  Data_Object<Exception_Handler> handler_;
188
250
  Address_Registration_Guard handler_guard_;
251
+ Arguments* arguments_;
189
252
  };
190
253
 
191
254
  // ---------------------------------------------------------------------
192
- 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>
193
- class 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>
255
+ 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>
256
+ class 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>
194
257
  : public Wrapped_Function
195
258
  {
196
259
  public:
@@ -200,18 +263,20 @@ public:
200
263
 
201
264
  Auto_Member_Function_Wrapper(
202
265
  Func func,
203
- Data_Object<Exception_Handler> handler);
266
+ Data_Object<Exception_Handler> handler,
267
+ Arguments* arguments = 0);
204
268
 
205
- static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8, VALUE ruby_arg9, VALUE ruby_arg10, VALUE ruby_arg11);
269
+ static VALUE call(int argc, VALUE* argv, VALUE self);
206
270
 
207
271
  private:
208
272
  Func func_;
209
273
  Data_Object<Exception_Handler> handler_;
210
274
  Address_Registration_Guard handler_guard_;
275
+ Arguments* arguments_;
211
276
  };
212
277
 
213
- 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>
214
- class 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>
278
+ 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>
279
+ class 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>
215
280
  : public Wrapped_Function
216
281
  {
217
282
  public:
@@ -221,19 +286,21 @@ public:
221
286
 
222
287
  Auto_Member_Function_Wrapper(
223
288
  Func func,
224
- Data_Object<Exception_Handler> handler);
289
+ Data_Object<Exception_Handler> handler,
290
+ Arguments* arguments = 0);
225
291
 
226
- static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8, VALUE ruby_arg9, VALUE ruby_arg10, VALUE ruby_arg11);
292
+ static VALUE call(int argc, VALUE* argv, VALUE self);
227
293
 
228
294
  private:
229
295
  Func func_;
230
296
  Data_Object<Exception_Handler> handler_;
231
297
  Address_Registration_Guard handler_guard_;
298
+ Arguments* arguments_;
232
299
  };
233
300
 
234
301
  // ---------------------------------------------------------------------
235
- 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>
236
- class 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>
302
+ 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>
303
+ class 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>
237
304
  : public Wrapped_Function
238
305
  {
239
306
  public:
@@ -243,18 +310,20 @@ public:
243
310
 
244
311
  Auto_Member_Function_Wrapper(
245
312
  Func func,
246
- Data_Object<Exception_Handler> handler);
313
+ Data_Object<Exception_Handler> handler,
314
+ Arguments* arguments = 0);
247
315
 
248
- static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8, VALUE ruby_arg9, VALUE ruby_arg10);
316
+ static VALUE call(int argc, VALUE* argv, VALUE self);
249
317
 
250
318
  private:
251
319
  Func func_;
252
320
  Data_Object<Exception_Handler> handler_;
253
321
  Address_Registration_Guard handler_guard_;
322
+ Arguments* arguments_;
254
323
  };
255
324
 
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>
257
- class 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>
325
+ 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>
326
+ class 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>
258
327
  : public Wrapped_Function
259
328
  {
260
329
  public:
@@ -264,19 +333,21 @@ public:
264
333
 
265
334
  Auto_Member_Function_Wrapper(
266
335
  Func func,
267
- Data_Object<Exception_Handler> handler);
336
+ Data_Object<Exception_Handler> handler,
337
+ Arguments* arguments = 0);
268
338
 
269
- static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8, VALUE ruby_arg9, VALUE ruby_arg10);
339
+ static VALUE call(int argc, VALUE* argv, VALUE self);
270
340
 
271
341
  private:
272
342
  Func func_;
273
343
  Data_Object<Exception_Handler> handler_;
274
344
  Address_Registration_Guard handler_guard_;
345
+ Arguments* arguments_;
275
346
  };
276
347
 
277
348
  // ---------------------------------------------------------------------
278
- 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>
279
- class 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>
349
+ 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>
350
+ class 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>
280
351
  : public Wrapped_Function
281
352
  {
282
353
  public:
@@ -286,18 +357,20 @@ public:
286
357
 
287
358
  Auto_Member_Function_Wrapper(
288
359
  Func func,
289
- Data_Object<Exception_Handler> handler);
360
+ Data_Object<Exception_Handler> handler,
361
+ Arguments* arguments = 0);
290
362
 
291
- static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8, VALUE ruby_arg9);
363
+ static VALUE call(int argc, VALUE* argv, VALUE self);
292
364
 
293
365
  private:
294
366
  Func func_;
295
367
  Data_Object<Exception_Handler> handler_;
296
368
  Address_Registration_Guard handler_guard_;
369
+ Arguments* arguments_;
297
370
  };
298
371
 
299
- 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>
300
- class 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>
372
+ 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>
373
+ class 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>
301
374
  : public Wrapped_Function
302
375
  {
303
376
  public:
@@ -307,19 +380,21 @@ public:
307
380
 
308
381
  Auto_Member_Function_Wrapper(
309
382
  Func func,
310
- Data_Object<Exception_Handler> handler);
383
+ Data_Object<Exception_Handler> handler,
384
+ Arguments* arguments = 0);
311
385
 
312
- static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8, VALUE ruby_arg9);
386
+ static VALUE call(int argc, VALUE* argv, VALUE self);
313
387
 
314
388
  private:
315
389
  Func func_;
316
390
  Data_Object<Exception_Handler> handler_;
317
391
  Address_Registration_Guard handler_guard_;
392
+ Arguments* arguments_;
318
393
  };
319
394
 
320
395
  // ---------------------------------------------------------------------
321
- 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>
322
- class 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>
396
+ 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>
397
+ class 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>
323
398
  : public Wrapped_Function
324
399
  {
325
400
  public:
@@ -329,18 +404,20 @@ public:
329
404
 
330
405
  Auto_Member_Function_Wrapper(
331
406
  Func func,
332
- Data_Object<Exception_Handler> handler);
407
+ Data_Object<Exception_Handler> handler,
408
+ Arguments* arguments = 0);
333
409
 
334
- static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8);
410
+ static VALUE call(int argc, VALUE* argv, VALUE self);
335
411
 
336
412
  private:
337
413
  Func func_;
338
414
  Data_Object<Exception_Handler> handler_;
339
415
  Address_Registration_Guard handler_guard_;
416
+ Arguments* arguments_;
340
417
  };
341
418
 
342
- 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>
343
- class 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>
419
+ 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>
420
+ class 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>
344
421
  : public Wrapped_Function
345
422
  {
346
423
  public:
@@ -350,19 +427,21 @@ public:
350
427
 
351
428
  Auto_Member_Function_Wrapper(
352
429
  Func func,
353
- Data_Object<Exception_Handler> handler);
430
+ Data_Object<Exception_Handler> handler,
431
+ Arguments* arguments = 0);
354
432
 
355
- static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8);
433
+ static VALUE call(int argc, VALUE* argv, VALUE self);
356
434
 
357
435
  private:
358
436
  Func func_;
359
437
  Data_Object<Exception_Handler> handler_;
360
438
  Address_Registration_Guard handler_guard_;
439
+ Arguments* arguments_;
361
440
  };
362
441
 
363
442
  // ---------------------------------------------------------------------
364
- 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>
365
- class Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T>
443
+ 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>
444
+ class Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T>
366
445
  : public Wrapped_Function
367
446
  {
368
447
  public:
@@ -372,18 +451,20 @@ public:
372
451
 
373
452
  Auto_Member_Function_Wrapper(
374
453
  Func func,
375
- Data_Object<Exception_Handler> handler);
454
+ Data_Object<Exception_Handler> handler,
455
+ Arguments* arguments = 0);
376
456
 
377
- static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7);
457
+ static VALUE call(int argc, VALUE* argv, VALUE self);
378
458
 
379
459
  private:
380
460
  Func func_;
381
461
  Data_Object<Exception_Handler> handler_;
382
462
  Address_Registration_Guard handler_guard_;
463
+ Arguments* arguments_;
383
464
  };
384
465
 
385
- 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>
386
- class Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T>
466
+ 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>
467
+ class Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T>
387
468
  : public Wrapped_Function
388
469
  {
389
470
  public:
@@ -393,19 +474,21 @@ public:
393
474
 
394
475
  Auto_Member_Function_Wrapper(
395
476
  Func func,
396
- Data_Object<Exception_Handler> handler);
477
+ Data_Object<Exception_Handler> handler,
478
+ Arguments* arguments = 0);
397
479
 
398
- static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7);
480
+ static VALUE call(int argc, VALUE* argv, VALUE self);
399
481
 
400
482
  private:
401
483
  Func func_;
402
484
  Data_Object<Exception_Handler> handler_;
403
485
  Address_Registration_Guard handler_guard_;
486
+ Arguments* arguments_;
404
487
  };
405
488
 
406
489
  // ---------------------------------------------------------------------
407
- 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>
408
- class Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T>
490
+ 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>
491
+ class Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T>
409
492
  : public Wrapped_Function
410
493
  {
411
494
  public:
@@ -415,18 +498,20 @@ public:
415
498
 
416
499
  Auto_Member_Function_Wrapper(
417
500
  Func func,
418
- Data_Object<Exception_Handler> handler);
501
+ Data_Object<Exception_Handler> handler,
502
+ Arguments* arguments = 0);
419
503
 
420
- static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6);
504
+ static VALUE call(int argc, VALUE* argv, VALUE self);
421
505
 
422
506
  private:
423
507
  Func func_;
424
508
  Data_Object<Exception_Handler> handler_;
425
509
  Address_Registration_Guard handler_guard_;
510
+ Arguments* arguments_;
426
511
  };
427
512
 
428
- 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>
429
- class Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T>
513
+ 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>
514
+ class Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T>
430
515
  : public Wrapped_Function
431
516
  {
432
517
  public:
@@ -436,19 +521,21 @@ public:
436
521
 
437
522
  Auto_Member_Function_Wrapper(
438
523
  Func func,
439
- Data_Object<Exception_Handler> handler);
524
+ Data_Object<Exception_Handler> handler,
525
+ Arguments* arguments = 0);
440
526
 
441
- static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6);
527
+ static VALUE call(int argc, VALUE* argv, VALUE self);
442
528
 
443
529
  private:
444
530
  Func func_;
445
531
  Data_Object<Exception_Handler> handler_;
446
532
  Address_Registration_Guard handler_guard_;
533
+ Arguments* arguments_;
447
534
  };
448
535
 
449
536
  // ---------------------------------------------------------------------
450
- 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>
451
- class Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T>
537
+ 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>
538
+ class Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T>
452
539
  : public Wrapped_Function
453
540
  {
454
541
  public:
@@ -458,18 +545,20 @@ public:
458
545
 
459
546
  Auto_Member_Function_Wrapper(
460
547
  Func func,
461
- Data_Object<Exception_Handler> handler);
548
+ Data_Object<Exception_Handler> handler,
549
+ Arguments* arguments = 0);
462
550
 
463
- static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5);
551
+ static VALUE call(int argc, VALUE* argv, VALUE self);
464
552
 
465
553
  private:
466
554
  Func func_;
467
555
  Data_Object<Exception_Handler> handler_;
468
556
  Address_Registration_Guard handler_guard_;
557
+ Arguments* arguments_;
469
558
  };
470
559
 
471
- template<typename Func_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T>
472
- class Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T>
560
+ template<typename Func_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T>
561
+ class Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T>
473
562
  : public Wrapped_Function
474
563
  {
475
564
  public:
@@ -479,19 +568,21 @@ public:
479
568
 
480
569
  Auto_Member_Function_Wrapper(
481
570
  Func func,
482
- Data_Object<Exception_Handler> handler);
571
+ Data_Object<Exception_Handler> handler,
572
+ Arguments* arguments = 0);
483
573
 
484
- static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5);
574
+ static VALUE call(int argc, VALUE* argv, VALUE self);
485
575
 
486
576
  private:
487
577
  Func func_;
488
578
  Data_Object<Exception_Handler> handler_;
489
579
  Address_Registration_Guard handler_guard_;
580
+ Arguments* arguments_;
490
581
  };
491
582
 
492
583
  // ---------------------------------------------------------------------
493
- template<typename Func_T, typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T>
494
- class Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T>
584
+ template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T>
585
+ class Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T>
495
586
  : public Wrapped_Function
496
587
  {
497
588
  public:
@@ -501,18 +592,20 @@ public:
501
592
 
502
593
  Auto_Member_Function_Wrapper(
503
594
  Func func,
504
- Data_Object<Exception_Handler> handler);
595
+ Data_Object<Exception_Handler> handler,
596
+ Arguments* arguments = 0);
505
597
 
506
- static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4);
598
+ static VALUE call(int argc, VALUE* argv, VALUE self);
507
599
 
508
600
  private:
509
601
  Func func_;
510
602
  Data_Object<Exception_Handler> handler_;
511
603
  Address_Registration_Guard handler_guard_;
604
+ Arguments* arguments_;
512
605
  };
513
606
 
514
- template<typename Func_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T>
515
- class Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T>
607
+ template<typename Func_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T>
608
+ class Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T>
516
609
  : public Wrapped_Function
517
610
  {
518
611
  public:
@@ -522,19 +615,21 @@ public:
522
615
 
523
616
  Auto_Member_Function_Wrapper(
524
617
  Func func,
525
- Data_Object<Exception_Handler> handler);
618
+ Data_Object<Exception_Handler> handler,
619
+ Arguments* arguments = 0);
526
620
 
527
- static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4);
621
+ static VALUE call(int argc, VALUE* argv, VALUE self);
528
622
 
529
623
  private:
530
624
  Func func_;
531
625
  Data_Object<Exception_Handler> handler_;
532
626
  Address_Registration_Guard handler_guard_;
627
+ Arguments* arguments_;
533
628
  };
534
629
 
535
630
  // ---------------------------------------------------------------------
536
- template<typename Func_T, typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T>
537
- class Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T>
631
+ template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T>
632
+ class Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T>
538
633
  : public Wrapped_Function
539
634
  {
540
635
  public:
@@ -544,18 +639,20 @@ public:
544
639
 
545
640
  Auto_Member_Function_Wrapper(
546
641
  Func func,
547
- Data_Object<Exception_Handler> handler);
642
+ Data_Object<Exception_Handler> handler,
643
+ Arguments* arguments = 0);
548
644
 
549
- static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3);
645
+ static VALUE call(int argc, VALUE* argv, VALUE self);
550
646
 
551
647
  private:
552
648
  Func func_;
553
649
  Data_Object<Exception_Handler> handler_;
554
650
  Address_Registration_Guard handler_guard_;
651
+ Arguments* arguments_;
555
652
  };
556
653
 
557
- template<typename Func_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T>
558
- class Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T, Arg2_T, Arg3_T>
654
+ template<typename Func_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T>
655
+ class Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T>
559
656
  : public Wrapped_Function
560
657
  {
561
658
  public:
@@ -565,19 +662,21 @@ public:
565
662
 
566
663
  Auto_Member_Function_Wrapper(
567
664
  Func func,
568
- Data_Object<Exception_Handler> handler);
665
+ Data_Object<Exception_Handler> handler,
666
+ Arguments* arguments = 0);
569
667
 
570
- static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3);
668
+ static VALUE call(int argc, VALUE* argv, VALUE self);
571
669
 
572
670
  private:
573
671
  Func func_;
574
672
  Data_Object<Exception_Handler> handler_;
575
673
  Address_Registration_Guard handler_guard_;
674
+ Arguments* arguments_;
576
675
  };
577
676
 
578
677
  // ---------------------------------------------------------------------
579
- template<typename Func_T, typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T>
580
- class Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T, Arg2_T>
678
+ template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T>
679
+ class Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T>
581
680
  : public Wrapped_Function
582
681
  {
583
682
  public:
@@ -587,18 +686,20 @@ public:
587
686
 
588
687
  Auto_Member_Function_Wrapper(
589
688
  Func func,
590
- Data_Object<Exception_Handler> handler);
689
+ Data_Object<Exception_Handler> handler,
690
+ Arguments* arguments = 0);
591
691
 
592
- static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2);
692
+ static VALUE call(int argc, VALUE* argv, VALUE self);
593
693
 
594
694
  private:
595
695
  Func func_;
596
696
  Data_Object<Exception_Handler> handler_;
597
697
  Address_Registration_Guard handler_guard_;
698
+ Arguments* arguments_;
598
699
  };
599
700
 
600
- template<typename Func_T, typename Self_T, typename Arg1_T, typename Arg2_T>
601
- class Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T, Arg2_T>
701
+ template<typename Func_T, typename Self_T, typename Arg0_T, typename Arg1_T>
702
+ class Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T>
602
703
  : public Wrapped_Function
603
704
  {
604
705
  public:
@@ -608,19 +709,21 @@ public:
608
709
 
609
710
  Auto_Member_Function_Wrapper(
610
711
  Func func,
611
- Data_Object<Exception_Handler> handler);
712
+ Data_Object<Exception_Handler> handler,
713
+ Arguments* arguments = 0);
612
714
 
613
- static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2);
715
+ static VALUE call(int argc, VALUE* argv, VALUE self);
614
716
 
615
717
  private:
616
718
  Func func_;
617
719
  Data_Object<Exception_Handler> handler_;
618
720
  Address_Registration_Guard handler_guard_;
721
+ Arguments* arguments_;
619
722
  };
620
723
 
621
724
  // ---------------------------------------------------------------------
622
- template<typename Func_T, typename Ret_T, typename Self_T, typename Arg1_T>
623
- class Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg1_T>
725
+ template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T>
726
+ class Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T>
624
727
  : public Wrapped_Function
625
728
  {
626
729
  public:
@@ -630,18 +733,20 @@ public:
630
733
 
631
734
  Auto_Member_Function_Wrapper(
632
735
  Func func,
633
- Data_Object<Exception_Handler> handler);
736
+ Data_Object<Exception_Handler> handler,
737
+ Arguments* arguments = 0);
634
738
 
635
- static VALUE call(VALUE self, VALUE ruby_arg1);
739
+ static VALUE call(int argc, VALUE* argv, VALUE self);
636
740
 
637
741
  private:
638
742
  Func func_;
639
743
  Data_Object<Exception_Handler> handler_;
640
744
  Address_Registration_Guard handler_guard_;
745
+ Arguments* arguments_;
641
746
  };
642
747
 
643
- template<typename Func_T, typename Self_T, typename Arg1_T>
644
- class Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg1_T>
748
+ template<typename Func_T, typename Self_T, typename Arg0_T>
749
+ class Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T>
645
750
  : public Wrapped_Function
646
751
  {
647
752
  public:
@@ -651,14 +756,16 @@ public:
651
756
 
652
757
  Auto_Member_Function_Wrapper(
653
758
  Func func,
654
- Data_Object<Exception_Handler> handler);
759
+ Data_Object<Exception_Handler> handler,
760
+ Arguments* arguments = 0);
655
761
 
656
- static VALUE call(VALUE self, VALUE ruby_arg1);
762
+ static VALUE call(int argc, VALUE* argv, VALUE self);
657
763
 
658
764
  private:
659
765
  Func func_;
660
766
  Data_Object<Exception_Handler> handler_;
661
767
  Address_Registration_Guard handler_guard_;
768
+ Arguments* arguments_;
662
769
  };
663
770
 
664
771
  // ---------------------------------------------------------------------
@@ -673,14 +780,16 @@ public:
673
780
 
674
781
  Auto_Member_Function_Wrapper(
675
782
  Func func,
676
- Data_Object<Exception_Handler> handler);
783
+ Data_Object<Exception_Handler> handler,
784
+ Arguments* arguments = 0);
677
785
 
678
- static VALUE call(VALUE self);
786
+ static VALUE call(int argc, VALUE* argv, VALUE self);
679
787
 
680
788
  private:
681
789
  Func func_;
682
790
  Data_Object<Exception_Handler> handler_;
683
791
  Address_Registration_Guard handler_guard_;
792
+ Arguments* arguments_;
684
793
  };
685
794
 
686
795
  template<typename Func_T, typename Self_T>
@@ -694,14 +803,16 @@ public:
694
803
 
695
804
  Auto_Member_Function_Wrapper(
696
805
  Func func,
697
- Data_Object<Exception_Handler> handler);
806
+ Data_Object<Exception_Handler> handler,
807
+ Arguments* arguments = 0);
698
808
 
699
- static VALUE call(VALUE self);
809
+ static VALUE call(int argc, VALUE* argv, VALUE self);
700
810
 
701
811
  private:
702
812
  Func func_;
703
813
  Data_Object<Exception_Handler> handler_;
704
814
  Address_Registration_Guard handler_guard_;
815
+ Arguments* arguments_;
705
816
  };
706
817
 
707
818
  // ---------------------------------------------------------------------