rice 1.1.0 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
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
  // ---------------------------------------------------------------------