rice2 2.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (190) hide show
  1. checksums.yaml +7 -0
  2. data/COPYING +23 -0
  3. data/Doxyfile +2268 -0
  4. data/Makefile.am +26 -0
  5. data/Makefile.in +929 -0
  6. data/README.md +1054 -0
  7. data/README.mingw +8 -0
  8. data/Rakefile +24 -0
  9. data/aclocal.m4 +1090 -0
  10. data/bootstrap +8 -0
  11. data/config.guess +1667 -0
  12. data/config.sub +1793 -0
  13. data/configure +8209 -0
  14. data/configure.ac +55 -0
  15. data/depcomp +791 -0
  16. data/doxygen.ac +314 -0
  17. data/doxygen.am +186 -0
  18. data/extconf.rb +66 -0
  19. data/install-sh +529 -0
  20. data/missing +215 -0
  21. data/post-autoconf.rb +22 -0
  22. data/post-automake.rb +28 -0
  23. data/rice/Address_Registration_Guard.cpp +22 -0
  24. data/rice/Address_Registration_Guard.hpp +7 -0
  25. data/rice/Address_Registration_Guard.ipp +37 -0
  26. data/rice/Address_Registration_Guard_defn.hpp +75 -0
  27. data/rice/Arg.hpp +8 -0
  28. data/rice/Arg_impl.hpp +129 -0
  29. data/rice/Arg_operators.cpp +21 -0
  30. data/rice/Arg_operators.hpp +19 -0
  31. data/rice/Array.hpp +214 -0
  32. data/rice/Array.ipp +256 -0
  33. data/rice/Builtin_Object.hpp +8 -0
  34. data/rice/Builtin_Object.ipp +50 -0
  35. data/rice/Builtin_Object_defn.hpp +50 -0
  36. data/rice/Class.cpp +57 -0
  37. data/rice/Class.hpp +8 -0
  38. data/rice/Class.ipp +6 -0
  39. data/rice/Class_defn.hpp +83 -0
  40. data/rice/Constructor.hpp +47 -0
  41. data/rice/Data_Object.hpp +8 -0
  42. data/rice/Data_Object.ipp +133 -0
  43. data/rice/Data_Object_defn.hpp +138 -0
  44. data/rice/Data_Type.cpp +54 -0
  45. data/rice/Data_Type.hpp +8 -0
  46. data/rice/Data_Type.ipp +365 -0
  47. data/rice/Data_Type_defn.hpp +261 -0
  48. data/rice/Data_Type_fwd.hpp +12 -0
  49. data/rice/Director.cpp +13 -0
  50. data/rice/Director.hpp +39 -0
  51. data/rice/Enum.hpp +117 -0
  52. data/rice/Enum.ipp +246 -0
  53. data/rice/Exception.cpp +59 -0
  54. data/rice/Exception.hpp +13 -0
  55. data/rice/Exception_Base.hpp +8 -0
  56. data/rice/Exception_Base.ipp +13 -0
  57. data/rice/Exception_Base_defn.hpp +27 -0
  58. data/rice/Exception_defn.hpp +69 -0
  59. data/rice/Hash.hpp +227 -0
  60. data/rice/Hash.ipp +329 -0
  61. data/rice/Identifier.cpp +8 -0
  62. data/rice/Identifier.hpp +50 -0
  63. data/rice/Identifier.ipp +33 -0
  64. data/rice/Jump_Tag.hpp +24 -0
  65. data/rice/Makefile.am +122 -0
  66. data/rice/Makefile.in +885 -0
  67. data/rice/Module.cpp +84 -0
  68. data/rice/Module.hpp +8 -0
  69. data/rice/Module.ipp +6 -0
  70. data/rice/Module_defn.hpp +88 -0
  71. data/rice/Module_impl.hpp +281 -0
  72. data/rice/Module_impl.ipp +345 -0
  73. data/rice/Object.cpp +169 -0
  74. data/rice/Object.hpp +8 -0
  75. data/rice/Object.ipp +33 -0
  76. data/rice/Object_defn.hpp +214 -0
  77. data/rice/Require_Guard.hpp +21 -0
  78. data/rice/String.cpp +94 -0
  79. data/rice/String.hpp +91 -0
  80. data/rice/Struct.cpp +117 -0
  81. data/rice/Struct.hpp +162 -0
  82. data/rice/Struct.ipp +26 -0
  83. data/rice/Symbol.cpp +25 -0
  84. data/rice/Symbol.hpp +66 -0
  85. data/rice/Symbol.ipp +44 -0
  86. data/rice/config.hpp +47 -0
  87. data/rice/config.hpp.in +46 -0
  88. data/rice/detail/Arguments.hpp +118 -0
  89. data/rice/detail/Auto_Function_Wrapper.hpp +898 -0
  90. data/rice/detail/Auto_Function_Wrapper.ipp +3694 -0
  91. data/rice/detail/Auto_Member_Function_Wrapper.hpp +897 -0
  92. data/rice/detail/Auto_Member_Function_Wrapper.ipp +2774 -0
  93. data/rice/detail/Caster.hpp +103 -0
  94. data/rice/detail/Exception_Handler.hpp +8 -0
  95. data/rice/detail/Exception_Handler.ipp +68 -0
  96. data/rice/detail/Exception_Handler_defn.hpp +96 -0
  97. data/rice/detail/Iterator.hpp +93 -0
  98. data/rice/detail/Not_Copyable.hpp +25 -0
  99. data/rice/detail/Wrapped_Function.hpp +33 -0
  100. data/rice/detail/cfp.hpp +24 -0
  101. data/rice/detail/cfp.ipp +51 -0
  102. data/rice/detail/check_ruby_type.cpp +27 -0
  103. data/rice/detail/check_ruby_type.hpp +23 -0
  104. data/rice/detail/creation_funcs.hpp +37 -0
  105. data/rice/detail/creation_funcs.ipp +36 -0
  106. data/rice/detail/default_allocation_func.hpp +23 -0
  107. data/rice/detail/default_allocation_func.ipp +11 -0
  108. data/rice/detail/define_method_and_auto_wrap.hpp +31 -0
  109. data/rice/detail/define_method_and_auto_wrap.ipp +30 -0
  110. data/rice/detail/demangle.cpp +56 -0
  111. data/rice/detail/demangle.hpp +19 -0
  112. data/rice/detail/env.hpp +11 -0
  113. data/rice/detail/from_ruby.hpp +43 -0
  114. data/rice/detail/from_ruby.ipp +60 -0
  115. data/rice/detail/method_data.cpp +92 -0
  116. data/rice/detail/method_data.hpp +21 -0
  117. data/rice/detail/node.hpp +13 -0
  118. data/rice/detail/protect.cpp +29 -0
  119. data/rice/detail/protect.hpp +34 -0
  120. data/rice/detail/ruby.hpp +74 -0
  121. data/rice/detail/ruby_version_code.hpp +6 -0
  122. data/rice/detail/ruby_version_code.hpp.in +6 -0
  123. data/rice/detail/st.hpp +22 -0
  124. data/rice/detail/to_ruby.hpp +22 -0
  125. data/rice/detail/to_ruby.ipp +36 -0
  126. data/rice/detail/traits.hpp +43 -0
  127. data/rice/detail/win32.hpp +16 -0
  128. data/rice/detail/wrap_function.hpp +66 -0
  129. data/rice/global_function.hpp +33 -0
  130. data/rice/global_function.ipp +22 -0
  131. data/rice/protect.hpp +38 -0
  132. data/rice/protect.ipp +1134 -0
  133. data/rice/ruby_mark.hpp +13 -0
  134. data/rice/ruby_try_catch.hpp +86 -0
  135. data/rice/rubypp.rb +97 -0
  136. data/rice/to_from_ruby.hpp +8 -0
  137. data/rice/to_from_ruby.ipp +418 -0
  138. data/rice/to_from_ruby_defn.hpp +70 -0
  139. data/ruby.ac +135 -0
  140. data/ruby/Makefile.am +1 -0
  141. data/ruby/Makefile.in +628 -0
  142. data/ruby/lib/Makefile.am +3 -0
  143. data/ruby/lib/Makefile.in +506 -0
  144. data/ruby/lib/mkmf-rice.rb.in +217 -0
  145. data/ruby/lib/version.rb +3 -0
  146. data/sample/Makefile.am +47 -0
  147. data/sample/Makefile.in +489 -0
  148. data/sample/enum/extconf.rb +3 -0
  149. data/sample/enum/sample_enum.cpp +54 -0
  150. data/sample/enum/test.rb +8 -0
  151. data/sample/inheritance/animals.cpp +98 -0
  152. data/sample/inheritance/extconf.rb +3 -0
  153. data/sample/inheritance/test.rb +7 -0
  154. data/sample/map/extconf.rb +3 -0
  155. data/sample/map/map.cpp +81 -0
  156. data/sample/map/test.rb +7 -0
  157. data/test/Makefile.am +72 -0
  158. data/test/Makefile.in +1213 -0
  159. data/test/ext/Makefile.am +41 -0
  160. data/test/ext/Makefile.in +483 -0
  161. data/test/ext/t1/Foo.hpp +10 -0
  162. data/test/ext/t1/extconf.rb +2 -0
  163. data/test/ext/t1/t1.cpp +15 -0
  164. data/test/ext/t2/extconf.rb +2 -0
  165. data/test/ext/t2/t2.cpp +11 -0
  166. data/test/test_Address_Registration_Guard.cpp +43 -0
  167. data/test/test_Array.cpp +248 -0
  168. data/test/test_Builtin_Object.cpp +71 -0
  169. data/test/test_Class.cpp +496 -0
  170. data/test/test_Constructor.cpp +128 -0
  171. data/test/test_Data_Object.cpp +275 -0
  172. data/test/test_Data_Type.cpp +348 -0
  173. data/test/test_Director.cpp +308 -0
  174. data/test/test_Enum.cpp +215 -0
  175. data/test/test_Exception.cpp +47 -0
  176. data/test/test_Hash.cpp +212 -0
  177. data/test/test_Identifier.cpp +70 -0
  178. data/test/test_Jump_Tag.cpp +17 -0
  179. data/test/test_Memory_Management.cpp +50 -0
  180. data/test/test_Module.cpp +497 -0
  181. data/test/test_Object.cpp +159 -0
  182. data/test/test_String.cpp +107 -0
  183. data/test/test_Struct.cpp +205 -0
  184. data/test/test_Symbol.cpp +63 -0
  185. data/test/test_To_From_Ruby.cpp +428 -0
  186. data/test/test_global_functions.cpp +114 -0
  187. data/test/test_rice.rb +41 -0
  188. data/test/unittest.cpp +136 -0
  189. data/test/unittest.hpp +294 -0
  190. metadata +297 -0
@@ -0,0 +1,46 @@
1
+ /* rice/config.hpp.in. Generated from configure.ac by autoheader. */
2
+
3
+ /* define if the compiler supports basic C++14 syntax */
4
+ #undef HAVE_CXX14
5
+
6
+ /* Define to 1 if you have the <env.h> header file. */
7
+ #undef HAVE_ENV_H
8
+
9
+ /* Define to 1 if you have the <node.h> header file. */
10
+ #undef HAVE_NODE_H
11
+
12
+ /* Define to 1 if you have the <ruby.h> header file. */
13
+ #undef HAVE_RUBY_H
14
+
15
+ /* Define to 1 if you have the <ruby/node.h> header file. */
16
+ #undef HAVE_RUBY_NODE_H
17
+
18
+ /* Define to 1 if you have the <version.h> header file. */
19
+ #undef HAVE_VERSION_H
20
+
21
+ /* Name of package */
22
+ #undef PACKAGE
23
+
24
+ /* Define to the address where bug reports for this package should be sent. */
25
+ #undef PACKAGE_BUGREPORT
26
+
27
+ /* Define to the full name of this package. */
28
+ #undef PACKAGE_NAME
29
+
30
+ /* Define to the full name and version of this package. */
31
+ #undef PACKAGE_STRING
32
+
33
+ /* Define to the one symbol short name of this package. */
34
+ #undef PACKAGE_TARNAME
35
+
36
+ /* Define to the home page for this package. */
37
+ #undef PACKAGE_URL
38
+
39
+ /* Define to the version of this package. */
40
+ #undef PACKAGE_VERSION
41
+
42
+ /* Define this macro to use ruby/node.h */
43
+ #undef REALLY_HAVE_RUBY_NODE_H
44
+
45
+ /* Version number of package */
46
+ #undef VERSION
@@ -0,0 +1,118 @@
1
+ #ifndef Rice__Arguments__hpp_
2
+ #define Rice__Arguments__hpp_
3
+
4
+ #include "../Arg_impl.hpp"
5
+ #include <sstream>
6
+ #include <vector>
7
+ #include "../to_from_ruby_defn.hpp"
8
+
9
+ namespace Rice {
10
+
11
+ class Arguments
12
+ {
13
+ public:
14
+ Arguments() {
15
+ required_ = 0;
16
+ optional_ = 0;
17
+ }
18
+
19
+ ~Arguments() {
20
+ }
21
+
22
+ /**
23
+ * Get the full argument count of this
24
+ * list of arguments.
25
+ * Returns -1 no defined arguments
26
+ */
27
+ int count() {
28
+ if(required_ == 0 && optional_ == 0) {
29
+ return -1;
30
+ } else {
31
+ return required_ + optional_;
32
+ }
33
+ }
34
+
35
+ /**
36
+ * Get the rb_scan_args format string for this
37
+ * list of arguments.
38
+ * In the case of no Args (default case), this
39
+ * method uses the passed in full argument count
40
+ */
41
+ std::string formatString(int fullArgCount)
42
+ {
43
+ std::stringstream s;
44
+ if(required_ == 0 && optional_ == 0)
45
+ {
46
+ s << fullArgCount << 0;
47
+ }
48
+ else
49
+ {
50
+ s << required_ << optional_;
51
+ }
52
+
53
+ return s.str();
54
+ }
55
+
56
+ /**
57
+ * Add a defined Arg to this list of Arguments
58
+ */
59
+ void add(const Arg& arg)
60
+ {
61
+ args_.push_back(arg);
62
+
63
+ if(arg.hasDefaultValue())
64
+ {
65
+ optional_++;
66
+ }
67
+ else
68
+ {
69
+ required_++;
70
+ }
71
+ }
72
+
73
+ /**
74
+ * Is the argument at the request location an optional
75
+ * argument?
76
+ */
77
+ bool isOptional(unsigned int pos)
78
+ {
79
+ if(required_ == 0 && optional_ == 0)
80
+ {
81
+ return false;
82
+ }
83
+ if(pos >= args_.size())
84
+ {
85
+ return false;
86
+ }
87
+ return args_[pos].hasDefaultValue();
88
+ }
89
+
90
+ /**
91
+ * Given a position, a type, and a ruby VALUE, figure out
92
+ * what argument value we need to return according to
93
+ * defaults and if that VALUE is nil or not
94
+ */
95
+ template<typename Arg_T>
96
+ Arg_T getArgumentOrDefault(int pos, VALUE in)
97
+ {
98
+ if(isOptional(pos) && NIL_P(in))
99
+ {
100
+ return args_[pos].getDefaultValue<Arg_T>();
101
+ }
102
+ else
103
+ {
104
+ return from_ruby<Arg_T>(in);
105
+ }
106
+ }
107
+
108
+ private:
109
+ std::vector<Arg> args_;
110
+
111
+ /** Keep counts of required and optional parameters */
112
+ int required_;
113
+ int optional_;
114
+ };
115
+
116
+ }
117
+
118
+ #endif // Rice__Arguments__hpp_
@@ -0,0 +1,898 @@
1
+ #ifndef Rice__detail__Auto_Function_Wrapper__hpp_
2
+ #define Rice__detail__Auto_Function_Wrapper__hpp_
3
+
4
+ // This is a generated file. DO NOT EDIT!!
5
+
6
+
7
+ // This causes problems with certain C++ libraries
8
+ #undef TYPE
9
+
10
+ #include "Exception_Handler_defn.hpp"
11
+
12
+ namespace Rice
13
+ {
14
+
15
+ namespace detail
16
+ {
17
+
18
+ #ifdef DOXYGEN
19
+
20
+ #else
21
+
22
+ template<typename Func_T, typename Ret_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>
23
+ class Auto_Function_Wrapper
24
+ : public Wrapped_Function
25
+ {
26
+ public:
27
+ typedef Func_T Func;
28
+
29
+ static const int Num_Args = 16;
30
+
31
+ Auto_Function_Wrapper(
32
+ Func func,
33
+ Data_Object<Exception_Handler> handler,
34
+ Arguments* arguments = 0);
35
+
36
+ ~Auto_Function_Wrapper();
37
+
38
+ static VALUE call(int argc, VALUE* args, VALUE self);
39
+
40
+ private:
41
+ Func func_;
42
+ Data_Object<Exception_Handler> handler_;
43
+ Address_Registration_Guard handler_guard_;
44
+ Arguments* arguments_;
45
+ };
46
+
47
+ template<typename Func_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>
48
+ class Auto_Function_Wrapper<Func_T, void, 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>
49
+ : public Wrapped_Function
50
+ {
51
+ public:
52
+ typedef Func_T Func;
53
+
54
+ static const int Num_Args = 16;
55
+
56
+ Auto_Function_Wrapper(
57
+ Func func,
58
+ Data_Object<Exception_Handler> handler,
59
+ Arguments* arguments = 0);
60
+
61
+ ~Auto_Function_Wrapper();
62
+
63
+ static VALUE call(int argc, VALUE* args, VALUE self);
64
+
65
+ private:
66
+ Func func_;
67
+ Data_Object<Exception_Handler> handler_;
68
+ Address_Registration_Guard handler_guard_;
69
+ Arguments* arguments_;
70
+ };
71
+
72
+ // ---------------------------------------------------------------------
73
+ template<typename Func_T, typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T, typename Arg13_T, typename Arg14_T>
74
+ class Auto_Function_Wrapper<Func_T, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T>
75
+ : public Wrapped_Function
76
+ {
77
+ public:
78
+ typedef Func_T Func;
79
+
80
+ static const int Num_Args = 15;
81
+
82
+ Auto_Function_Wrapper(
83
+ Func func,
84
+ Data_Object<Exception_Handler> handler,
85
+ Arguments* arguments = 0);
86
+
87
+ ~Auto_Function_Wrapper();
88
+
89
+ static VALUE call(int argc, VALUE* args, VALUE self);
90
+
91
+ private:
92
+ Func func_;
93
+ Data_Object<Exception_Handler> handler_;
94
+ Address_Registration_Guard handler_guard_;
95
+ Arguments* arguments_;
96
+ };
97
+
98
+ template<typename Func_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>
99
+ class Auto_Function_Wrapper<Func_T, void, 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>
100
+ : public Wrapped_Function
101
+ {
102
+ public:
103
+ typedef Func_T Func;
104
+
105
+ static const int Num_Args = 15;
106
+
107
+ Auto_Function_Wrapper(
108
+ Func func,
109
+ Data_Object<Exception_Handler> handler,
110
+ Arguments* arguments = 0);
111
+
112
+ ~Auto_Function_Wrapper();
113
+
114
+ static VALUE call(int argc, VALUE* args, VALUE self);
115
+
116
+ private:
117
+ Func func_;
118
+ Data_Object<Exception_Handler> handler_;
119
+ Address_Registration_Guard handler_guard_;
120
+ Arguments* arguments_;
121
+ };
122
+
123
+ // ---------------------------------------------------------------------
124
+ template<typename Func_T, typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T, typename Arg13_T>
125
+ class Auto_Function_Wrapper<Func_T, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T>
126
+ : public Wrapped_Function
127
+ {
128
+ public:
129
+ typedef Func_T Func;
130
+
131
+ static const int Num_Args = 14;
132
+
133
+ Auto_Function_Wrapper(
134
+ Func func,
135
+ Data_Object<Exception_Handler> handler,
136
+ Arguments* arguments = 0);
137
+
138
+ ~Auto_Function_Wrapper();
139
+
140
+ static VALUE call(int argc, VALUE* args, VALUE self);
141
+
142
+ private:
143
+ Func func_;
144
+ Data_Object<Exception_Handler> handler_;
145
+ Address_Registration_Guard handler_guard_;
146
+ Arguments* arguments_;
147
+ };
148
+
149
+ template<typename Func_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>
150
+ class Auto_Function_Wrapper<Func_T, void, 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>
151
+ : public Wrapped_Function
152
+ {
153
+ public:
154
+ typedef Func_T Func;
155
+
156
+ static const int Num_Args = 14;
157
+
158
+ Auto_Function_Wrapper(
159
+ Func func,
160
+ Data_Object<Exception_Handler> handler,
161
+ Arguments* arguments = 0);
162
+
163
+ ~Auto_Function_Wrapper();
164
+
165
+ static VALUE call(int argc, VALUE* args, VALUE self);
166
+
167
+ private:
168
+ Func func_;
169
+ Data_Object<Exception_Handler> handler_;
170
+ Address_Registration_Guard handler_guard_;
171
+ Arguments* arguments_;
172
+ };
173
+
174
+ // ---------------------------------------------------------------------
175
+ template<typename Func_T, typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T>
176
+ class Auto_Function_Wrapper<Func_T, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T>
177
+ : public Wrapped_Function
178
+ {
179
+ public:
180
+ typedef Func_T Func;
181
+
182
+ static const int Num_Args = 13;
183
+
184
+ Auto_Function_Wrapper(
185
+ Func func,
186
+ Data_Object<Exception_Handler> handler,
187
+ Arguments* arguments = 0);
188
+
189
+ ~Auto_Function_Wrapper();
190
+
191
+ static VALUE call(int argc, VALUE* args, VALUE self);
192
+
193
+ private:
194
+ Func func_;
195
+ Data_Object<Exception_Handler> handler_;
196
+ Address_Registration_Guard handler_guard_;
197
+ Arguments* arguments_;
198
+ };
199
+
200
+ template<typename Func_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>
201
+ class Auto_Function_Wrapper<Func_T, void, 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>
202
+ : public Wrapped_Function
203
+ {
204
+ public:
205
+ typedef Func_T Func;
206
+
207
+ static const int Num_Args = 13;
208
+
209
+ Auto_Function_Wrapper(
210
+ Func func,
211
+ Data_Object<Exception_Handler> handler,
212
+ Arguments* arguments = 0);
213
+
214
+ ~Auto_Function_Wrapper();
215
+
216
+ static VALUE call(int argc, VALUE* args, VALUE self);
217
+
218
+ private:
219
+ Func func_;
220
+ Data_Object<Exception_Handler> handler_;
221
+ Address_Registration_Guard handler_guard_;
222
+ Arguments* arguments_;
223
+ };
224
+
225
+ // ---------------------------------------------------------------------
226
+ template<typename Func_T, typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T>
227
+ class Auto_Function_Wrapper<Func_T, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T>
228
+ : public Wrapped_Function
229
+ {
230
+ public:
231
+ typedef Func_T Func;
232
+
233
+ static const int Num_Args = 12;
234
+
235
+ Auto_Function_Wrapper(
236
+ Func func,
237
+ Data_Object<Exception_Handler> handler,
238
+ Arguments* arguments = 0);
239
+
240
+ ~Auto_Function_Wrapper();
241
+
242
+ static VALUE call(int argc, VALUE* args, VALUE self);
243
+
244
+ private:
245
+ Func func_;
246
+ Data_Object<Exception_Handler> handler_;
247
+ Address_Registration_Guard handler_guard_;
248
+ Arguments* arguments_;
249
+ };
250
+
251
+ template<typename Func_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>
252
+ class Auto_Function_Wrapper<Func_T, void, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T>
253
+ : public Wrapped_Function
254
+ {
255
+ public:
256
+ typedef Func_T Func;
257
+
258
+ static const int Num_Args = 12;
259
+
260
+ Auto_Function_Wrapper(
261
+ Func func,
262
+ Data_Object<Exception_Handler> handler,
263
+ Arguments* arguments = 0);
264
+
265
+ ~Auto_Function_Wrapper();
266
+
267
+ static VALUE call(int argc, VALUE* args, VALUE self);
268
+
269
+ private:
270
+ Func func_;
271
+ Data_Object<Exception_Handler> handler_;
272
+ Address_Registration_Guard handler_guard_;
273
+ Arguments* arguments_;
274
+ };
275
+
276
+ // ---------------------------------------------------------------------
277
+ template<typename Func_T, typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T>
278
+ class Auto_Function_Wrapper<Func_T, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T>
279
+ : public Wrapped_Function
280
+ {
281
+ public:
282
+ typedef Func_T Func;
283
+
284
+ static const int Num_Args = 11;
285
+
286
+ Auto_Function_Wrapper(
287
+ Func func,
288
+ Data_Object<Exception_Handler> handler,
289
+ Arguments* arguments = 0);
290
+
291
+ ~Auto_Function_Wrapper();
292
+
293
+ static VALUE call(int argc, VALUE* args, VALUE self);
294
+
295
+ private:
296
+ Func func_;
297
+ Data_Object<Exception_Handler> handler_;
298
+ Address_Registration_Guard handler_guard_;
299
+ Arguments* arguments_;
300
+ };
301
+
302
+ template<typename Func_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>
303
+ class Auto_Function_Wrapper<Func_T, void, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T>
304
+ : public Wrapped_Function
305
+ {
306
+ public:
307
+ typedef Func_T Func;
308
+
309
+ static const int Num_Args = 11;
310
+
311
+ Auto_Function_Wrapper(
312
+ Func func,
313
+ Data_Object<Exception_Handler> handler,
314
+ Arguments* arguments = 0);
315
+
316
+ ~Auto_Function_Wrapper();
317
+
318
+ static VALUE call(int argc, VALUE* args, VALUE self);
319
+
320
+ private:
321
+ Func func_;
322
+ Data_Object<Exception_Handler> handler_;
323
+ Address_Registration_Guard handler_guard_;
324
+ Arguments* arguments_;
325
+ };
326
+
327
+ // ---------------------------------------------------------------------
328
+ template<typename Func_T, typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T>
329
+ class Auto_Function_Wrapper<Func_T, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T>
330
+ : public Wrapped_Function
331
+ {
332
+ public:
333
+ typedef Func_T Func;
334
+
335
+ static const int Num_Args = 10;
336
+
337
+ Auto_Function_Wrapper(
338
+ Func func,
339
+ Data_Object<Exception_Handler> handler,
340
+ Arguments* arguments = 0);
341
+
342
+ ~Auto_Function_Wrapper();
343
+
344
+ static VALUE call(int argc, VALUE* args, VALUE self);
345
+
346
+ private:
347
+ Func func_;
348
+ Data_Object<Exception_Handler> handler_;
349
+ Address_Registration_Guard handler_guard_;
350
+ Arguments* arguments_;
351
+ };
352
+
353
+ template<typename Func_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>
354
+ class Auto_Function_Wrapper<Func_T, void, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T>
355
+ : public Wrapped_Function
356
+ {
357
+ public:
358
+ typedef Func_T Func;
359
+
360
+ static const int Num_Args = 10;
361
+
362
+ Auto_Function_Wrapper(
363
+ Func func,
364
+ Data_Object<Exception_Handler> handler,
365
+ Arguments* arguments = 0);
366
+
367
+ ~Auto_Function_Wrapper();
368
+
369
+ static VALUE call(int argc, VALUE* args, VALUE self);
370
+
371
+ private:
372
+ Func func_;
373
+ Data_Object<Exception_Handler> handler_;
374
+ Address_Registration_Guard handler_guard_;
375
+ Arguments* arguments_;
376
+ };
377
+
378
+ // ---------------------------------------------------------------------
379
+ template<typename Func_T, typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T>
380
+ class Auto_Function_Wrapper<Func_T, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T>
381
+ : public Wrapped_Function
382
+ {
383
+ public:
384
+ typedef Func_T Func;
385
+
386
+ static const int Num_Args = 9;
387
+
388
+ Auto_Function_Wrapper(
389
+ Func func,
390
+ Data_Object<Exception_Handler> handler,
391
+ Arguments* arguments = 0);
392
+
393
+ ~Auto_Function_Wrapper();
394
+
395
+ static VALUE call(int argc, VALUE* args, VALUE self);
396
+
397
+ private:
398
+ Func func_;
399
+ Data_Object<Exception_Handler> handler_;
400
+ Address_Registration_Guard handler_guard_;
401
+ Arguments* arguments_;
402
+ };
403
+
404
+ template<typename Func_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>
405
+ class Auto_Function_Wrapper<Func_T, void, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T>
406
+ : public Wrapped_Function
407
+ {
408
+ public:
409
+ typedef Func_T Func;
410
+
411
+ static const int Num_Args = 9;
412
+
413
+ Auto_Function_Wrapper(
414
+ Func func,
415
+ Data_Object<Exception_Handler> handler,
416
+ Arguments* arguments = 0);
417
+
418
+ ~Auto_Function_Wrapper();
419
+
420
+ static VALUE call(int argc, VALUE* args, VALUE self);
421
+
422
+ private:
423
+ Func func_;
424
+ Data_Object<Exception_Handler> handler_;
425
+ Address_Registration_Guard handler_guard_;
426
+ Arguments* arguments_;
427
+ };
428
+
429
+ // ---------------------------------------------------------------------
430
+ template<typename Func_T, typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T>
431
+ class Auto_Function_Wrapper<Func_T, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T>
432
+ : public Wrapped_Function
433
+ {
434
+ public:
435
+ typedef Func_T Func;
436
+
437
+ static const int Num_Args = 8;
438
+
439
+ Auto_Function_Wrapper(
440
+ Func func,
441
+ Data_Object<Exception_Handler> handler,
442
+ Arguments* arguments = 0);
443
+
444
+ ~Auto_Function_Wrapper();
445
+
446
+ static VALUE call(int argc, VALUE* args, VALUE self);
447
+
448
+ private:
449
+ Func func_;
450
+ Data_Object<Exception_Handler> handler_;
451
+ Address_Registration_Guard handler_guard_;
452
+ Arguments* arguments_;
453
+ };
454
+
455
+ template<typename Func_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>
456
+ class Auto_Function_Wrapper<Func_T, void, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T>
457
+ : public Wrapped_Function
458
+ {
459
+ public:
460
+ typedef Func_T Func;
461
+
462
+ static const int Num_Args = 8;
463
+
464
+ Auto_Function_Wrapper(
465
+ Func func,
466
+ Data_Object<Exception_Handler> handler,
467
+ Arguments* arguments = 0);
468
+
469
+ ~Auto_Function_Wrapper();
470
+
471
+ static VALUE call(int argc, VALUE* args, VALUE self);
472
+
473
+ private:
474
+ Func func_;
475
+ Data_Object<Exception_Handler> handler_;
476
+ Address_Registration_Guard handler_guard_;
477
+ Arguments* arguments_;
478
+ };
479
+
480
+ // ---------------------------------------------------------------------
481
+ template<typename Func_T, typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T>
482
+ class Auto_Function_Wrapper<Func_T, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T>
483
+ : public Wrapped_Function
484
+ {
485
+ public:
486
+ typedef Func_T Func;
487
+
488
+ static const int Num_Args = 7;
489
+
490
+ Auto_Function_Wrapper(
491
+ Func func,
492
+ Data_Object<Exception_Handler> handler,
493
+ Arguments* arguments = 0);
494
+
495
+ ~Auto_Function_Wrapper();
496
+
497
+ static VALUE call(int argc, VALUE* args, VALUE self);
498
+
499
+ private:
500
+ Func func_;
501
+ Data_Object<Exception_Handler> handler_;
502
+ Address_Registration_Guard handler_guard_;
503
+ Arguments* arguments_;
504
+ };
505
+
506
+ template<typename Func_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T>
507
+ class Auto_Function_Wrapper<Func_T, void, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T>
508
+ : public Wrapped_Function
509
+ {
510
+ public:
511
+ typedef Func_T Func;
512
+
513
+ static const int Num_Args = 7;
514
+
515
+ Auto_Function_Wrapper(
516
+ Func func,
517
+ Data_Object<Exception_Handler> handler,
518
+ Arguments* arguments = 0);
519
+
520
+ ~Auto_Function_Wrapper();
521
+
522
+ static VALUE call(int argc, VALUE* args, VALUE self);
523
+
524
+ private:
525
+ Func func_;
526
+ Data_Object<Exception_Handler> handler_;
527
+ Address_Registration_Guard handler_guard_;
528
+ Arguments* arguments_;
529
+ };
530
+
531
+ // ---------------------------------------------------------------------
532
+ template<typename Func_T, typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T>
533
+ class Auto_Function_Wrapper<Func_T, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T>
534
+ : public Wrapped_Function
535
+ {
536
+ public:
537
+ typedef Func_T Func;
538
+
539
+ static const int Num_Args = 6;
540
+
541
+ Auto_Function_Wrapper(
542
+ Func func,
543
+ Data_Object<Exception_Handler> handler,
544
+ Arguments* arguments = 0);
545
+
546
+ ~Auto_Function_Wrapper();
547
+
548
+ static VALUE call(int argc, VALUE* args, VALUE self);
549
+
550
+ private:
551
+ Func func_;
552
+ Data_Object<Exception_Handler> handler_;
553
+ Address_Registration_Guard handler_guard_;
554
+ Arguments* arguments_;
555
+ };
556
+
557
+ template<typename Func_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T>
558
+ class Auto_Function_Wrapper<Func_T, void, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T>
559
+ : public Wrapped_Function
560
+ {
561
+ public:
562
+ typedef Func_T Func;
563
+
564
+ static const int Num_Args = 6;
565
+
566
+ Auto_Function_Wrapper(
567
+ Func func,
568
+ Data_Object<Exception_Handler> handler,
569
+ Arguments* arguments = 0);
570
+
571
+ ~Auto_Function_Wrapper();
572
+
573
+ static VALUE call(int argc, VALUE* args, VALUE self);
574
+
575
+ private:
576
+ Func func_;
577
+ Data_Object<Exception_Handler> handler_;
578
+ Address_Registration_Guard handler_guard_;
579
+ Arguments* arguments_;
580
+ };
581
+
582
+ // ---------------------------------------------------------------------
583
+ template<typename Func_T, typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T>
584
+ class Auto_Function_Wrapper<Func_T, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T>
585
+ : public Wrapped_Function
586
+ {
587
+ public:
588
+ typedef Func_T Func;
589
+
590
+ static const int Num_Args = 5;
591
+
592
+ Auto_Function_Wrapper(
593
+ Func func,
594
+ Data_Object<Exception_Handler> handler,
595
+ Arguments* arguments = 0);
596
+
597
+ ~Auto_Function_Wrapper();
598
+
599
+ static VALUE call(int argc, VALUE* args, VALUE self);
600
+
601
+ private:
602
+ Func func_;
603
+ Data_Object<Exception_Handler> handler_;
604
+ Address_Registration_Guard handler_guard_;
605
+ Arguments* arguments_;
606
+ };
607
+
608
+ template<typename Func_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T>
609
+ class Auto_Function_Wrapper<Func_T, void, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T>
610
+ : public Wrapped_Function
611
+ {
612
+ public:
613
+ typedef Func_T Func;
614
+
615
+ static const int Num_Args = 5;
616
+
617
+ Auto_Function_Wrapper(
618
+ Func func,
619
+ Data_Object<Exception_Handler> handler,
620
+ Arguments* arguments = 0);
621
+
622
+ ~Auto_Function_Wrapper();
623
+
624
+ static VALUE call(int argc, VALUE* args, VALUE self);
625
+
626
+ private:
627
+ Func func_;
628
+ Data_Object<Exception_Handler> handler_;
629
+ Address_Registration_Guard handler_guard_;
630
+ Arguments* arguments_;
631
+ };
632
+
633
+ // ---------------------------------------------------------------------
634
+ template<typename Func_T, typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T>
635
+ class Auto_Function_Wrapper<Func_T, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T>
636
+ : public Wrapped_Function
637
+ {
638
+ public:
639
+ typedef Func_T Func;
640
+
641
+ static const int Num_Args = 4;
642
+
643
+ Auto_Function_Wrapper(
644
+ Func func,
645
+ Data_Object<Exception_Handler> handler,
646
+ Arguments* arguments = 0);
647
+
648
+ ~Auto_Function_Wrapper();
649
+
650
+ static VALUE call(int argc, VALUE* args, VALUE self);
651
+
652
+ private:
653
+ Func func_;
654
+ Data_Object<Exception_Handler> handler_;
655
+ Address_Registration_Guard handler_guard_;
656
+ Arguments* arguments_;
657
+ };
658
+
659
+ template<typename Func_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T>
660
+ class Auto_Function_Wrapper<Func_T, void, Arg0_T, Arg1_T, Arg2_T, Arg3_T>
661
+ : public Wrapped_Function
662
+ {
663
+ public:
664
+ typedef Func_T Func;
665
+
666
+ static const int Num_Args = 4;
667
+
668
+ Auto_Function_Wrapper(
669
+ Func func,
670
+ Data_Object<Exception_Handler> handler,
671
+ Arguments* arguments = 0);
672
+
673
+ ~Auto_Function_Wrapper();
674
+
675
+ static VALUE call(int argc, VALUE* args, VALUE self);
676
+
677
+ private:
678
+ Func func_;
679
+ Data_Object<Exception_Handler> handler_;
680
+ Address_Registration_Guard handler_guard_;
681
+ Arguments* arguments_;
682
+ };
683
+
684
+ // ---------------------------------------------------------------------
685
+ template<typename Func_T, typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T>
686
+ class Auto_Function_Wrapper<Func_T, Ret_T, Arg0_T, Arg1_T, Arg2_T>
687
+ : public Wrapped_Function
688
+ {
689
+ public:
690
+ typedef Func_T Func;
691
+
692
+ static const int Num_Args = 3;
693
+
694
+ Auto_Function_Wrapper(
695
+ Func func,
696
+ Data_Object<Exception_Handler> handler,
697
+ Arguments* arguments = 0);
698
+
699
+ ~Auto_Function_Wrapper();
700
+
701
+ static VALUE call(int argc, VALUE* args, VALUE self);
702
+
703
+ private:
704
+ Func func_;
705
+ Data_Object<Exception_Handler> handler_;
706
+ Address_Registration_Guard handler_guard_;
707
+ Arguments* arguments_;
708
+ };
709
+
710
+ template<typename Func_T, typename Arg0_T, typename Arg1_T, typename Arg2_T>
711
+ class Auto_Function_Wrapper<Func_T, void, Arg0_T, Arg1_T, Arg2_T>
712
+ : public Wrapped_Function
713
+ {
714
+ public:
715
+ typedef Func_T Func;
716
+
717
+ static const int Num_Args = 3;
718
+
719
+ Auto_Function_Wrapper(
720
+ Func func,
721
+ Data_Object<Exception_Handler> handler,
722
+ Arguments* arguments = 0);
723
+
724
+ ~Auto_Function_Wrapper();
725
+
726
+ static VALUE call(int argc, VALUE* args, VALUE self);
727
+
728
+ private:
729
+ Func func_;
730
+ Data_Object<Exception_Handler> handler_;
731
+ Address_Registration_Guard handler_guard_;
732
+ Arguments* arguments_;
733
+ };
734
+
735
+ // ---------------------------------------------------------------------
736
+ template<typename Func_T, typename Ret_T, typename Arg0_T, typename Arg1_T>
737
+ class Auto_Function_Wrapper<Func_T, Ret_T, Arg0_T, Arg1_T>
738
+ : public Wrapped_Function
739
+ {
740
+ public:
741
+ typedef Func_T Func;
742
+
743
+ static const int Num_Args = 2;
744
+
745
+ Auto_Function_Wrapper(
746
+ Func func,
747
+ Data_Object<Exception_Handler> handler,
748
+ Arguments* arguments = 0);
749
+
750
+ ~Auto_Function_Wrapper();
751
+
752
+ static VALUE call(int argc, VALUE* args, VALUE self);
753
+
754
+ private:
755
+ Func func_;
756
+ Data_Object<Exception_Handler> handler_;
757
+ Address_Registration_Guard handler_guard_;
758
+ Arguments* arguments_;
759
+ };
760
+
761
+ template<typename Func_T, typename Arg0_T, typename Arg1_T>
762
+ class Auto_Function_Wrapper<Func_T, void, Arg0_T, Arg1_T>
763
+ : public Wrapped_Function
764
+ {
765
+ public:
766
+ typedef Func_T Func;
767
+
768
+ static const int Num_Args = 2;
769
+
770
+ Auto_Function_Wrapper(
771
+ Func func,
772
+ Data_Object<Exception_Handler> handler,
773
+ Arguments* arguments = 0);
774
+
775
+ ~Auto_Function_Wrapper();
776
+
777
+ static VALUE call(int argc, VALUE* args, VALUE self);
778
+
779
+ private:
780
+ Func func_;
781
+ Data_Object<Exception_Handler> handler_;
782
+ Address_Registration_Guard handler_guard_;
783
+ Arguments* arguments_;
784
+ };
785
+
786
+ // ---------------------------------------------------------------------
787
+ template<typename Func_T, typename Ret_T, typename Arg0_T>
788
+ class Auto_Function_Wrapper<Func_T, Ret_T, Arg0_T>
789
+ : public Wrapped_Function
790
+ {
791
+ public:
792
+ typedef Func_T Func;
793
+
794
+ static const int Num_Args = 1;
795
+
796
+ Auto_Function_Wrapper(
797
+ Func func,
798
+ Data_Object<Exception_Handler> handler,
799
+ Arguments* arguments = 0);
800
+
801
+ ~Auto_Function_Wrapper();
802
+
803
+ static VALUE call(int argc, VALUE* args, VALUE self);
804
+
805
+ private:
806
+ Func func_;
807
+ Data_Object<Exception_Handler> handler_;
808
+ Address_Registration_Guard handler_guard_;
809
+ Arguments* arguments_;
810
+ };
811
+
812
+ template<typename Func_T, typename Arg0_T>
813
+ class Auto_Function_Wrapper<Func_T, void, Arg0_T>
814
+ : public Wrapped_Function
815
+ {
816
+ public:
817
+ typedef Func_T Func;
818
+
819
+ static const int Num_Args = 1;
820
+
821
+ Auto_Function_Wrapper(
822
+ Func func,
823
+ Data_Object<Exception_Handler> handler,
824
+ Arguments* arguments = 0);
825
+
826
+ ~Auto_Function_Wrapper();
827
+
828
+ static VALUE call(int argc, VALUE* args, VALUE self);
829
+
830
+ private:
831
+ Func func_;
832
+ Data_Object<Exception_Handler> handler_;
833
+ Address_Registration_Guard handler_guard_;
834
+ Arguments* arguments_;
835
+ };
836
+
837
+ // ---------------------------------------------------------------------
838
+
839
+ template<typename Func_T, typename Ret_T>
840
+ class Auto_Function_Wrapper<Func_T, Ret_T>
841
+ : public Wrapped_Function
842
+ {
843
+ public:
844
+ // typedef void (*Func)();
845
+ typedef Func_T Func;
846
+
847
+ static const int Num_Args = 0;
848
+
849
+ Auto_Function_Wrapper(
850
+ Func func,
851
+ Data_Object<Exception_Handler> handler,
852
+ Arguments* arguments = new Arguments());
853
+
854
+ ~Auto_Function_Wrapper();
855
+
856
+ static VALUE call();
857
+
858
+ private:
859
+ Func func_;
860
+ Data_Object<Exception_Handler> handler_;
861
+ Arguments* arguments_;
862
+ };
863
+
864
+ template<typename Func_T>
865
+ class Auto_Function_Wrapper<Func_T, void>
866
+ : public Wrapped_Function
867
+ {
868
+ public:
869
+ // typedef void (*Func)();
870
+ typedef Func_T Func;
871
+
872
+ static const int Num_Args = 0;
873
+
874
+ Auto_Function_Wrapper(
875
+ Func func,
876
+ Data_Object<Exception_Handler> handler,
877
+ Arguments* arguments = new Arguments());
878
+
879
+ ~Auto_Function_Wrapper();
880
+
881
+ static VALUE call();
882
+
883
+ private:
884
+ Func func_;
885
+ Data_Object<Exception_Handler> handler_;
886
+ Arguments* arguments_;
887
+ };
888
+
889
+ #endif // DOXYGEN
890
+
891
+ } // namespace detail
892
+
893
+ } // namespace Rice
894
+
895
+ #include "Auto_Function_Wrapper.ipp"
896
+
897
+ #endif // Rice__detail__Auto_Function_Wrapper__hpp_
898
+