rice 3.0.0 → 4.0.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 (237) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +121 -0
  3. data/CONTRIBUTORS.md +19 -0
  4. data/Gemfile +3 -0
  5. data/README.md +44 -1025
  6. data/Rakefile +95 -12
  7. data/include/rice/rice.hpp +7766 -0
  8. data/lib/mkmf-rice.rb +127 -0
  9. data/lib/version.rb +3 -0
  10. data/rice/Address_Registration_Guard.ipp +75 -32
  11. data/rice/Address_Registration_Guard_defn.hpp +60 -56
  12. data/rice/Arg.hpp +80 -4
  13. data/rice/Arg.ipp +51 -0
  14. data/rice/Constructor.hpp +12 -14
  15. data/rice/Data_Object.ipp +234 -107
  16. data/rice/Data_Object_defn.hpp +77 -117
  17. data/rice/Data_Type.hpp +1 -2
  18. data/rice/Data_Type.ipp +251 -295
  19. data/rice/Data_Type_defn.hpp +175 -243
  20. data/rice/Director.hpp +11 -6
  21. data/rice/Enum.hpp +54 -104
  22. data/rice/Enum.ipp +104 -230
  23. data/rice/Exception.hpp +2 -8
  24. data/rice/Exception.ipp +65 -0
  25. data/rice/Exception_defn.hpp +46 -47
  26. data/rice/Identifier.hpp +28 -28
  27. data/rice/Identifier.ipp +23 -27
  28. data/rice/Return.hpp +39 -0
  29. data/rice/Return.ipp +33 -0
  30. data/rice/detail/Exception_Handler.ipp +22 -62
  31. data/rice/detail/Exception_Handler_defn.hpp +76 -91
  32. data/rice/detail/Iterator.hpp +18 -88
  33. data/rice/detail/Iterator.ipp +47 -0
  34. data/rice/detail/Jump_Tag.hpp +21 -0
  35. data/rice/detail/MethodInfo.hpp +44 -0
  36. data/rice/detail/MethodInfo.ipp +78 -0
  37. data/rice/detail/NativeAttribute.hpp +53 -0
  38. data/rice/detail/NativeAttribute.ipp +83 -0
  39. data/rice/detail/NativeFunction.hpp +69 -0
  40. data/rice/detail/NativeFunction.ipp +248 -0
  41. data/rice/detail/RubyFunction.hpp +39 -0
  42. data/rice/detail/RubyFunction.ipp +92 -0
  43. data/rice/detail/Type.hpp +29 -0
  44. data/rice/detail/Type.ipp +138 -0
  45. data/rice/detail/TypeRegistry.hpp +50 -0
  46. data/rice/detail/TypeRegistry.ipp +106 -0
  47. data/rice/detail/Wrapper.hpp +51 -0
  48. data/rice/detail/Wrapper.ipp +151 -0
  49. data/rice/detail/default_allocation_func.hpp +8 -19
  50. data/rice/detail/default_allocation_func.ipp +9 -8
  51. data/rice/detail/from_ruby.hpp +2 -37
  52. data/rice/detail/from_ruby.ipp +1020 -46
  53. data/rice/detail/from_ruby_defn.hpp +38 -0
  54. data/rice/detail/function_traits.hpp +124 -0
  55. data/rice/detail/method_data.hpp +23 -15
  56. data/rice/detail/method_data.ipp +53 -0
  57. data/rice/detail/rice_traits.hpp +116 -0
  58. data/rice/detail/ruby.hpp +9 -46
  59. data/rice/detail/to_ruby.hpp +3 -17
  60. data/rice/detail/to_ruby.ipp +409 -31
  61. data/rice/detail/to_ruby_defn.hpp +48 -0
  62. data/rice/forward_declares.ipp +82 -0
  63. data/rice/global_function.hpp +16 -20
  64. data/rice/global_function.ipp +8 -17
  65. data/rice/rice.hpp +59 -0
  66. data/rice/ruby_mark.hpp +5 -3
  67. data/rice/ruby_try_catch.hpp +4 -4
  68. data/rice/stl.hpp +11 -0
  69. data/sample/callbacks/extconf.rb +3 -0
  70. data/sample/callbacks/sample_callbacks.cpp +10 -13
  71. data/sample/enum/extconf.rb +3 -0
  72. data/sample/enum/sample_enum.cpp +3 -17
  73. data/sample/enum/test.rb +2 -2
  74. data/sample/inheritance/animals.cpp +8 -24
  75. data/sample/inheritance/extconf.rb +3 -0
  76. data/sample/inheritance/test.rb +1 -1
  77. data/sample/map/extconf.rb +3 -0
  78. data/sample/map/map.cpp +10 -18
  79. data/sample/map/test.rb +1 -1
  80. data/test/embed_ruby.cpp +18 -5
  81. data/test/ext/t1/extconf.rb +3 -0
  82. data/test/ext/t1/t1.cpp +1 -3
  83. data/test/ext/t2/extconf.rb +3 -0
  84. data/test/ext/t2/t2.cpp +1 -1
  85. data/test/extconf.rb +23 -0
  86. data/test/ruby/test_callbacks_sample.rb +28 -0
  87. data/test/ruby/test_multiple_extensions.rb +18 -0
  88. data/test/ruby/test_multiple_extensions_same_class.rb +14 -0
  89. data/test/ruby/test_multiple_extensions_with_inheritance.rb +20 -0
  90. data/test/test_Address_Registration_Guard.cpp +23 -10
  91. data/test/test_Array.cpp +129 -73
  92. data/test/test_Attribute.cpp +147 -0
  93. data/test/test_Builtin_Object.cpp +34 -14
  94. data/test/test_Class.cpp +149 -275
  95. data/test/test_Constructor.cpp +10 -9
  96. data/test/test_Data_Object.cpp +133 -192
  97. data/test/test_Data_Type.cpp +322 -252
  98. data/test/test_Director.cpp +54 -41
  99. data/test/test_Enum.cpp +228 -103
  100. data/test/test_Exception.cpp +5 -6
  101. data/test/test_Hash.cpp +31 -30
  102. data/test/test_Identifier.cpp +4 -5
  103. data/test/test_Inheritance.cpp +221 -0
  104. data/test/test_Iterator.cpp +161 -0
  105. data/test/test_Jump_Tag.cpp +1 -1
  106. data/test/test_Keep_Alive.cpp +161 -0
  107. data/test/test_Memory_Management.cpp +2 -4
  108. data/test/test_Module.cpp +167 -110
  109. data/test/test_Object.cpp +41 -21
  110. data/test/test_Ownership.cpp +275 -0
  111. data/test/test_Self.cpp +205 -0
  112. data/test/test_Stl_Optional.cpp +90 -0
  113. data/test/test_Stl_Pair.cpp +144 -0
  114. data/test/test_Stl_SmartPointer.cpp +200 -0
  115. data/test/test_Stl_String.cpp +74 -0
  116. data/test/test_Stl_Vector.cpp +652 -0
  117. data/test/test_String.cpp +1 -2
  118. data/test/test_Struct.cpp +29 -39
  119. data/test/test_Symbol.cpp +1 -2
  120. data/test/test_To_From_Ruby.cpp +249 -285
  121. data/test/test_global_functions.cpp +39 -19
  122. data/test/unittest.hpp +0 -4
  123. metadata +63 -139
  124. data/Doxyfile +0 -2268
  125. data/Makefile.am +0 -26
  126. data/Makefile.in +0 -931
  127. data/README.mingw +0 -8
  128. data/aclocal.m4 +0 -1085
  129. data/ax_cxx_compile_stdcxx.m4 +0 -951
  130. data/bootstrap +0 -8
  131. data/config.guess +0 -1421
  132. data/config.sub +0 -1807
  133. data/configure +0 -7792
  134. data/configure.ac +0 -55
  135. data/depcomp +0 -791
  136. data/doxygen.ac +0 -314
  137. data/doxygen.am +0 -186
  138. data/extconf.rb +0 -70
  139. data/install-sh +0 -501
  140. data/missing +0 -215
  141. data/post-autoconf.rb +0 -22
  142. data/post-automake.rb +0 -28
  143. data/rice/Address_Registration_Guard.cpp +0 -22
  144. data/rice/Arg_impl.hpp +0 -129
  145. data/rice/Arg_operators.cpp +0 -21
  146. data/rice/Arg_operators.hpp +0 -19
  147. data/rice/Array.hpp +0 -214
  148. data/rice/Array.ipp +0 -256
  149. data/rice/Builtin_Object.hpp +0 -8
  150. data/rice/Builtin_Object.ipp +0 -50
  151. data/rice/Builtin_Object_defn.hpp +0 -50
  152. data/rice/Class.cpp +0 -57
  153. data/rice/Class.hpp +0 -8
  154. data/rice/Class.ipp +0 -6
  155. data/rice/Class_defn.hpp +0 -84
  156. data/rice/Data_Type.cpp +0 -54
  157. data/rice/Data_Type_fwd.hpp +0 -12
  158. data/rice/Director.cpp +0 -13
  159. data/rice/Exception.cpp +0 -54
  160. data/rice/Exception_Base.hpp +0 -8
  161. data/rice/Exception_Base.ipp +0 -13
  162. data/rice/Exception_Base_defn.hpp +0 -27
  163. data/rice/Hash.hpp +0 -230
  164. data/rice/Hash.ipp +0 -329
  165. data/rice/Identifier.cpp +0 -8
  166. data/rice/Jump_Tag.hpp +0 -24
  167. data/rice/Makefile.am +0 -121
  168. data/rice/Makefile.in +0 -884
  169. data/rice/Module.cpp +0 -84
  170. data/rice/Module.hpp +0 -8
  171. data/rice/Module.ipp +0 -6
  172. data/rice/Module_defn.hpp +0 -88
  173. data/rice/Module_impl.hpp +0 -281
  174. data/rice/Module_impl.ipp +0 -345
  175. data/rice/Object.cpp +0 -169
  176. data/rice/Object.hpp +0 -8
  177. data/rice/Object.ipp +0 -33
  178. data/rice/Object_defn.hpp +0 -214
  179. data/rice/Require_Guard.hpp +0 -21
  180. data/rice/String.cpp +0 -89
  181. data/rice/String.hpp +0 -91
  182. data/rice/Struct.cpp +0 -117
  183. data/rice/Struct.hpp +0 -162
  184. data/rice/Struct.ipp +0 -26
  185. data/rice/Symbol.cpp +0 -25
  186. data/rice/Symbol.hpp +0 -66
  187. data/rice/Symbol.ipp +0 -44
  188. data/rice/config.hpp +0 -47
  189. data/rice/config.hpp.in +0 -46
  190. data/rice/detail/Arguments.hpp +0 -118
  191. data/rice/detail/Auto_Function_Wrapper.hpp +0 -898
  192. data/rice/detail/Auto_Function_Wrapper.ipp +0 -3181
  193. data/rice/detail/Auto_Member_Function_Wrapper.hpp +0 -897
  194. data/rice/detail/Auto_Member_Function_Wrapper.ipp +0 -2501
  195. data/rice/detail/Caster.hpp +0 -103
  196. data/rice/detail/Not_Copyable.hpp +0 -25
  197. data/rice/detail/Wrapped_Function.hpp +0 -33
  198. data/rice/detail/cfp.hpp +0 -24
  199. data/rice/detail/cfp.ipp +0 -51
  200. data/rice/detail/check_ruby_type.cpp +0 -27
  201. data/rice/detail/check_ruby_type.hpp +0 -23
  202. data/rice/detail/creation_funcs.hpp +0 -37
  203. data/rice/detail/creation_funcs.ipp +0 -36
  204. data/rice/detail/define_method_and_auto_wrap.hpp +0 -31
  205. data/rice/detail/define_method_and_auto_wrap.ipp +0 -30
  206. data/rice/detail/demangle.cpp +0 -56
  207. data/rice/detail/demangle.hpp +0 -19
  208. data/rice/detail/env.hpp +0 -11
  209. data/rice/detail/method_data.cpp +0 -92
  210. data/rice/detail/node.hpp +0 -13
  211. data/rice/detail/protect.cpp +0 -29
  212. data/rice/detail/protect.hpp +0 -34
  213. data/rice/detail/ruby_version_code.hpp +0 -6
  214. data/rice/detail/ruby_version_code.hpp.in +0 -6
  215. data/rice/detail/st.hpp +0 -22
  216. data/rice/detail/win32.hpp +0 -16
  217. data/rice/detail/wrap_function.hpp +0 -66
  218. data/rice/protect.hpp +0 -38
  219. data/rice/protect.ipp +0 -1134
  220. data/rice/rubypp.rb +0 -97
  221. data/rice/to_from_ruby.hpp +0 -8
  222. data/rice/to_from_ruby.ipp +0 -418
  223. data/rice/to_from_ruby_defn.hpp +0 -70
  224. data/ruby.ac +0 -135
  225. data/ruby/Makefile.am +0 -1
  226. data/ruby/Makefile.in +0 -628
  227. data/ruby/lib/Makefile.am +0 -3
  228. data/ruby/lib/Makefile.in +0 -506
  229. data/ruby/lib/mkmf-rice.rb.in +0 -217
  230. data/ruby/lib/version.rb +0 -3
  231. data/sample/Makefile.am +0 -53
  232. data/sample/Makefile.in +0 -495
  233. data/test/Makefile.am +0 -73
  234. data/test/Makefile.in +0 -1219
  235. data/test/ext/Makefile.am +0 -41
  236. data/test/ext/Makefile.in +0 -483
  237. data/test/test_rice.rb +0 -45
@@ -1,2501 +0,0 @@
1
- #ifndef Rice__detail__Auto_Member_Function_Wrapper__ipp_
2
- #define Rice__detail__Auto_Member_Function_Wrapper__ipp_
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 "method_data.hpp"
11
- #include "../ruby_try_catch.hpp"
12
- #include "../to_from_ruby.hpp"
13
- #include <typeinfo>
14
- namespace Rice
15
- {
16
-
17
- namespace detail
18
- {
19
-
20
- template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T, typename Arg13_T, typename Arg14_T, typename Arg15_T>
21
- Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T, Arg15_T>::
22
- Auto_Member_Function_Wrapper(
23
- Func func,
24
- Data_Object<Exception_Handler> handler,
25
- Arguments* arguments)
26
- : Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
27
- , func_(func)
28
- , handler_(handler)
29
- , handler_guard_(&handler_)
30
- , arguments_(arguments)
31
- {
32
- if(arguments == 0) {
33
- arguments_ = new Arguments();
34
- } else {
35
- arguments_ = arguments;
36
- }
37
- }
38
-
39
- template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T, typename Arg13_T, typename Arg14_T, typename Arg15_T>
40
- Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T, Arg15_T>::
41
- ~Auto_Member_Function_Wrapper()
42
- {
43
- if(arguments_) { delete arguments_; }
44
- }
45
-
46
- template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T, typename Arg13_T, typename Arg14_T, typename Arg15_T>
47
- VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T, Arg15_T>::
48
- call(int argc, VALUE* argv, VALUE self)
49
- {
50
- Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T, Arg15_T> * wrapper = 0;
51
- try
52
- {
53
- Data_Object<Wrapped_Function> data(detail::method_data());
54
- wrapper = (Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T, Arg15_T> *)data.get();
55
- Arguments* args = wrapper->arguments_;
56
-
57
- VALUE varg0, varg1, varg2, varg3, varg4, varg5, varg6, varg7, varg8, varg9, varg10, varg11, varg12, varg13, varg14, varg15;
58
-
59
- rb_scan_args(argc, argv, args->formatString(Num_Args).c_str(), &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9, &varg10, &varg11, &varg12, &varg13, &varg14, &varg15);
60
-
61
- Self_T * obj = from_ruby<Self_T *>(self);
62
-
63
- Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
64
- Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
65
- Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
66
- Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
67
- Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
68
- Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
69
- Arg6_T arg6 = args->getArgumentOrDefault<Arg6_T>(6, varg6);
70
- Arg7_T arg7 = args->getArgumentOrDefault<Arg7_T>(7, varg7);
71
- Arg8_T arg8 = args->getArgumentOrDefault<Arg8_T>(8, varg8);
72
- Arg9_T arg9 = args->getArgumentOrDefault<Arg9_T>(9, varg9);
73
- Arg10_T arg10 = args->getArgumentOrDefault<Arg10_T>(10, varg10);
74
- Arg11_T arg11 = args->getArgumentOrDefault<Arg11_T>(11, varg11);
75
- Arg12_T arg12 = args->getArgumentOrDefault<Arg12_T>(12, varg12);
76
- Arg13_T arg13 = args->getArgumentOrDefault<Arg13_T>(13, varg13);
77
- Arg14_T arg14 = args->getArgumentOrDefault<Arg14_T>(14, varg14);
78
- Arg15_T arg15 = args->getArgumentOrDefault<Arg15_T>(15, varg15);
79
-
80
- Func func = wrapper->func_;
81
- return to_ruby((*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15));
82
- }
83
- catch(...)
84
- {
85
- RUBY_TRY
86
- {
87
- if(wrapper)
88
- {
89
- return wrapper->handler_->handle_exception();
90
- }
91
- else
92
- {
93
- throw;
94
- }
95
- }
96
- RUBY_CATCH
97
- }
98
- }
99
-
100
- 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>
101
- 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>::
102
- Auto_Member_Function_Wrapper(
103
- Func func,
104
- Data_Object<Exception_Handler> handler,
105
- Arguments* arguments)
106
- : Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
107
- , func_(func)
108
- , handler_(handler)
109
- , handler_guard_(&handler_)
110
- , arguments_(arguments)
111
- {
112
- if(arguments == 0) {
113
- arguments_ = new Arguments();
114
- } else {
115
- arguments_ = arguments;
116
- }
117
- }
118
-
119
- 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>
120
- 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>::
121
- ~Auto_Member_Function_Wrapper()
122
- {
123
- if(arguments_) { delete arguments_; }
124
- }
125
-
126
- 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>
127
- VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T, Arg15_T>::
128
- call(int argc, VALUE* argv, VALUE self)
129
- {
130
- Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T, Arg15_T> * wrapper = 0;
131
- try
132
- {
133
- Data_Object<Wrapped_Function> data(detail::method_data());
134
- wrapper = (Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T, Arg15_T> *)data.get();
135
- Arguments* args = wrapper->arguments_;
136
-
137
- VALUE varg0, varg1, varg2, varg3, varg4, varg5, varg6, varg7, varg8, varg9, varg10, varg11, varg12, varg13, varg14, varg15;
138
-
139
- rb_scan_args(argc, argv, args->formatString(Num_Args).c_str(), &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9, &varg10, &varg11, &varg12, &varg13, &varg14, &varg15);
140
-
141
- Self_T * obj = from_ruby<Self_T *>(self);
142
-
143
- Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
144
- Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
145
- Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
146
- Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
147
- Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
148
- Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
149
- Arg6_T arg6 = args->getArgumentOrDefault<Arg6_T>(6, varg6);
150
- Arg7_T arg7 = args->getArgumentOrDefault<Arg7_T>(7, varg7);
151
- Arg8_T arg8 = args->getArgumentOrDefault<Arg8_T>(8, varg8);
152
- Arg9_T arg9 = args->getArgumentOrDefault<Arg9_T>(9, varg9);
153
- Arg10_T arg10 = args->getArgumentOrDefault<Arg10_T>(10, varg10);
154
- Arg11_T arg11 = args->getArgumentOrDefault<Arg11_T>(11, varg11);
155
- Arg12_T arg12 = args->getArgumentOrDefault<Arg12_T>(12, varg12);
156
- Arg13_T arg13 = args->getArgumentOrDefault<Arg13_T>(13, varg13);
157
- Arg14_T arg14 = args->getArgumentOrDefault<Arg14_T>(14, varg14);
158
- Arg15_T arg15 = args->getArgumentOrDefault<Arg15_T>(15, varg15);
159
-
160
- Func func = wrapper->func_;
161
- (*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15);
162
- return Qnil;
163
- }
164
- catch(...)
165
- {
166
- RUBY_TRY
167
- {
168
- if(wrapper)
169
- {
170
- return wrapper->handler_->handle_exception();
171
- }
172
- else
173
- {
174
- throw;
175
- }
176
- }
177
- RUBY_CATCH
178
- }
179
- }
180
-
181
- // ---------------------------------------------------------------------
182
- 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>
183
- 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>::
184
- Auto_Member_Function_Wrapper(
185
- Func func,
186
- Data_Object<Exception_Handler> handler,
187
- Arguments* arguments)
188
- : Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
189
- , func_(func)
190
- , handler_(handler)
191
- , handler_guard_(&handler_)
192
- , arguments_(arguments)
193
- {
194
- if(arguments == 0) {
195
- arguments_ = new Arguments();
196
- } else {
197
- arguments_ = arguments;
198
- }
199
- }
200
-
201
- 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>
202
- 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>::
203
- ~Auto_Member_Function_Wrapper()
204
- {
205
- if(arguments_) { delete arguments_; }
206
- }
207
-
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, typename Arg12_T, typename Arg13_T, typename Arg14_T>
209
- VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T>::
210
- call(int argc, VALUE* argv, VALUE self)
211
- {
212
- Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T> * wrapper = 0;
213
- try
214
- {
215
- Data_Object<Wrapped_Function> data(detail::method_data());
216
- wrapper = (Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T> *)data.get();
217
- Arguments* args = wrapper->arguments_;
218
-
219
- VALUE varg0, varg1, varg2, varg3, varg4, varg5, varg6, varg7, varg8, varg9, varg10, varg11, varg12, varg13, varg14;
220
-
221
- rb_scan_args(argc, argv, args->formatString(Num_Args).c_str(), &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9, &varg10, &varg11, &varg12, &varg13, &varg14);
222
-
223
- Self_T * obj = from_ruby<Self_T *>(self);
224
-
225
- Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
226
- Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
227
- Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
228
- Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
229
- Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
230
- Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
231
- Arg6_T arg6 = args->getArgumentOrDefault<Arg6_T>(6, varg6);
232
- Arg7_T arg7 = args->getArgumentOrDefault<Arg7_T>(7, varg7);
233
- Arg8_T arg8 = args->getArgumentOrDefault<Arg8_T>(8, varg8);
234
- Arg9_T arg9 = args->getArgumentOrDefault<Arg9_T>(9, varg9);
235
- Arg10_T arg10 = args->getArgumentOrDefault<Arg10_T>(10, varg10);
236
- Arg11_T arg11 = args->getArgumentOrDefault<Arg11_T>(11, varg11);
237
- Arg12_T arg12 = args->getArgumentOrDefault<Arg12_T>(12, varg12);
238
- Arg13_T arg13 = args->getArgumentOrDefault<Arg13_T>(13, varg13);
239
- Arg14_T arg14 = args->getArgumentOrDefault<Arg14_T>(14, varg14);
240
-
241
- Func func = wrapper->func_;
242
- return to_ruby((*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14));
243
- }
244
- catch(...)
245
- {
246
- RUBY_TRY
247
- {
248
- if(wrapper)
249
- {
250
- return wrapper->handler_->handle_exception();
251
- }
252
- else
253
- {
254
- throw;
255
- }
256
- }
257
- RUBY_CATCH
258
- }
259
- }
260
-
261
- 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>
262
- 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>::
263
- Auto_Member_Function_Wrapper(
264
- Func func,
265
- Data_Object<Exception_Handler> handler,
266
- Arguments* arguments)
267
- : Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
268
- , func_(func)
269
- , handler_(handler)
270
- , handler_guard_(&handler_)
271
- , arguments_(arguments)
272
- {
273
- if(arguments == 0) {
274
- arguments_ = new Arguments();
275
- } else {
276
- arguments_ = arguments;
277
- }
278
- }
279
-
280
- 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>
281
- 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>::
282
- ~Auto_Member_Function_Wrapper()
283
- {
284
- if(arguments_) { delete arguments_; }
285
- }
286
-
287
- 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>
288
- VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T>::
289
- call(int argc, VALUE* argv, VALUE self)
290
- {
291
- Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T> * wrapper = 0;
292
- try
293
- {
294
- Data_Object<Wrapped_Function> data(detail::method_data());
295
- wrapper = (Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T> *)data.get();
296
- Arguments* args = wrapper->arguments_;
297
-
298
- VALUE varg0, varg1, varg2, varg3, varg4, varg5, varg6, varg7, varg8, varg9, varg10, varg11, varg12, varg13, varg14;
299
-
300
- rb_scan_args(argc, argv, args->formatString(Num_Args).c_str(), &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9, &varg10, &varg11, &varg12, &varg13, &varg14);
301
-
302
- Self_T * obj = from_ruby<Self_T *>(self);
303
-
304
- Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
305
- Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
306
- Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
307
- Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
308
- Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
309
- Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
310
- Arg6_T arg6 = args->getArgumentOrDefault<Arg6_T>(6, varg6);
311
- Arg7_T arg7 = args->getArgumentOrDefault<Arg7_T>(7, varg7);
312
- Arg8_T arg8 = args->getArgumentOrDefault<Arg8_T>(8, varg8);
313
- Arg9_T arg9 = args->getArgumentOrDefault<Arg9_T>(9, varg9);
314
- Arg10_T arg10 = args->getArgumentOrDefault<Arg10_T>(10, varg10);
315
- Arg11_T arg11 = args->getArgumentOrDefault<Arg11_T>(11, varg11);
316
- Arg12_T arg12 = args->getArgumentOrDefault<Arg12_T>(12, varg12);
317
- Arg13_T arg13 = args->getArgumentOrDefault<Arg13_T>(13, varg13);
318
- Arg14_T arg14 = args->getArgumentOrDefault<Arg14_T>(14, varg14);
319
-
320
- Func func = wrapper->func_;
321
- (*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14);
322
- return Qnil;
323
- }
324
- catch(...)
325
- {
326
- RUBY_TRY
327
- {
328
- if(wrapper)
329
- {
330
- return wrapper->handler_->handle_exception();
331
- }
332
- else
333
- {
334
- throw;
335
- }
336
- }
337
- RUBY_CATCH
338
- }
339
- }
340
-
341
- // ---------------------------------------------------------------------
342
- 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>
343
- 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>::
344
- Auto_Member_Function_Wrapper(
345
- Func func,
346
- Data_Object<Exception_Handler> handler,
347
- Arguments* arguments)
348
- : Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
349
- , func_(func)
350
- , handler_(handler)
351
- , handler_guard_(&handler_)
352
- , arguments_(arguments)
353
- {
354
- if(arguments == 0) {
355
- arguments_ = new Arguments();
356
- } else {
357
- arguments_ = arguments;
358
- }
359
- }
360
-
361
- 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>
362
- 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>::
363
- ~Auto_Member_Function_Wrapper()
364
- {
365
- if(arguments_) { delete arguments_; }
366
- }
367
-
368
- 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>
369
- VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T>::
370
- call(int argc, VALUE* argv, VALUE self)
371
- {
372
- Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T> * wrapper = 0;
373
- try
374
- {
375
- Data_Object<Wrapped_Function> data(detail::method_data());
376
- wrapper = (Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T> *)data.get();
377
- Arguments* args = wrapper->arguments_;
378
-
379
- VALUE varg0, varg1, varg2, varg3, varg4, varg5, varg6, varg7, varg8, varg9, varg10, varg11, varg12, varg13;
380
-
381
- rb_scan_args(argc, argv, args->formatString(Num_Args).c_str(), &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9, &varg10, &varg11, &varg12, &varg13);
382
-
383
- Self_T * obj = from_ruby<Self_T *>(self);
384
-
385
- Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
386
- Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
387
- Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
388
- Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
389
- Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
390
- Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
391
- Arg6_T arg6 = args->getArgumentOrDefault<Arg6_T>(6, varg6);
392
- Arg7_T arg7 = args->getArgumentOrDefault<Arg7_T>(7, varg7);
393
- Arg8_T arg8 = args->getArgumentOrDefault<Arg8_T>(8, varg8);
394
- Arg9_T arg9 = args->getArgumentOrDefault<Arg9_T>(9, varg9);
395
- Arg10_T arg10 = args->getArgumentOrDefault<Arg10_T>(10, varg10);
396
- Arg11_T arg11 = args->getArgumentOrDefault<Arg11_T>(11, varg11);
397
- Arg12_T arg12 = args->getArgumentOrDefault<Arg12_T>(12, varg12);
398
- Arg13_T arg13 = args->getArgumentOrDefault<Arg13_T>(13, varg13);
399
-
400
- Func func = wrapper->func_;
401
- return to_ruby((*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13));
402
- }
403
- catch(...)
404
- {
405
- RUBY_TRY
406
- {
407
- if(wrapper)
408
- {
409
- return wrapper->handler_->handle_exception();
410
- }
411
- else
412
- {
413
- throw;
414
- }
415
- }
416
- RUBY_CATCH
417
- }
418
- }
419
-
420
- 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>
421
- 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>::
422
- Auto_Member_Function_Wrapper(
423
- Func func,
424
- Data_Object<Exception_Handler> handler,
425
- Arguments* arguments)
426
- : Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
427
- , func_(func)
428
- , handler_(handler)
429
- , handler_guard_(&handler_)
430
- , arguments_(arguments)
431
- {
432
- if(arguments == 0) {
433
- arguments_ = new Arguments();
434
- } else {
435
- arguments_ = arguments;
436
- }
437
- }
438
-
439
- 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>
440
- 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>::
441
- ~Auto_Member_Function_Wrapper()
442
- {
443
- if(arguments_) { delete arguments_; }
444
- }
445
-
446
- 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>
447
- VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T>::
448
- call(int argc, VALUE* argv, VALUE self)
449
- {
450
- Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T> * wrapper = 0;
451
- try
452
- {
453
- Data_Object<Wrapped_Function> data(detail::method_data());
454
- wrapper = (Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T> *)data.get();
455
- Arguments* args = wrapper->arguments_;
456
-
457
- VALUE varg0, varg1, varg2, varg3, varg4, varg5, varg6, varg7, varg8, varg9, varg10, varg11, varg12, varg13;
458
-
459
- rb_scan_args(argc, argv, args->formatString(Num_Args).c_str(), &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9, &varg10, &varg11, &varg12, &varg13);
460
-
461
- Self_T * obj = from_ruby<Self_T *>(self);
462
-
463
- Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
464
- Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
465
- Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
466
- Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
467
- Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
468
- Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
469
- Arg6_T arg6 = args->getArgumentOrDefault<Arg6_T>(6, varg6);
470
- Arg7_T arg7 = args->getArgumentOrDefault<Arg7_T>(7, varg7);
471
- Arg8_T arg8 = args->getArgumentOrDefault<Arg8_T>(8, varg8);
472
- Arg9_T arg9 = args->getArgumentOrDefault<Arg9_T>(9, varg9);
473
- Arg10_T arg10 = args->getArgumentOrDefault<Arg10_T>(10, varg10);
474
- Arg11_T arg11 = args->getArgumentOrDefault<Arg11_T>(11, varg11);
475
- Arg12_T arg12 = args->getArgumentOrDefault<Arg12_T>(12, varg12);
476
- Arg13_T arg13 = args->getArgumentOrDefault<Arg13_T>(13, varg13);
477
-
478
- Func func = wrapper->func_;
479
- (*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13);
480
- return Qnil;
481
- }
482
- catch(...)
483
- {
484
- RUBY_TRY
485
- {
486
- if(wrapper)
487
- {
488
- return wrapper->handler_->handle_exception();
489
- }
490
- else
491
- {
492
- throw;
493
- }
494
- }
495
- RUBY_CATCH
496
- }
497
- }
498
-
499
- // ---------------------------------------------------------------------
500
- 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>
501
- 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>::
502
- Auto_Member_Function_Wrapper(
503
- Func func,
504
- Data_Object<Exception_Handler> handler,
505
- Arguments* arguments)
506
- : Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
507
- , func_(func)
508
- , handler_(handler)
509
- , handler_guard_(&handler_)
510
- , arguments_(arguments)
511
- {
512
- if(arguments == 0) {
513
- arguments_ = new Arguments();
514
- } else {
515
- arguments_ = arguments;
516
- }
517
- }
518
-
519
- 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>
520
- 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>::
521
- ~Auto_Member_Function_Wrapper()
522
- {
523
- if(arguments_) { delete arguments_; }
524
- }
525
-
526
- 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>
527
- VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T>::
528
- call(int argc, VALUE* argv, VALUE self)
529
- {
530
- Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T> * wrapper = 0;
531
- try
532
- {
533
- Data_Object<Wrapped_Function> data(detail::method_data());
534
- wrapper = (Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T> *)data.get();
535
- Arguments* args = wrapper->arguments_;
536
-
537
- VALUE varg0, varg1, varg2, varg3, varg4, varg5, varg6, varg7, varg8, varg9, varg10, varg11, varg12;
538
-
539
- rb_scan_args(argc, argv, args->formatString(Num_Args).c_str(), &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9, &varg10, &varg11, &varg12);
540
-
541
- Self_T * obj = from_ruby<Self_T *>(self);
542
-
543
- Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
544
- Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
545
- Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
546
- Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
547
- Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
548
- Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
549
- Arg6_T arg6 = args->getArgumentOrDefault<Arg6_T>(6, varg6);
550
- Arg7_T arg7 = args->getArgumentOrDefault<Arg7_T>(7, varg7);
551
- Arg8_T arg8 = args->getArgumentOrDefault<Arg8_T>(8, varg8);
552
- Arg9_T arg9 = args->getArgumentOrDefault<Arg9_T>(9, varg9);
553
- Arg10_T arg10 = args->getArgumentOrDefault<Arg10_T>(10, varg10);
554
- Arg11_T arg11 = args->getArgumentOrDefault<Arg11_T>(11, varg11);
555
- Arg12_T arg12 = args->getArgumentOrDefault<Arg12_T>(12, varg12);
556
-
557
- Func func = wrapper->func_;
558
- return to_ruby((*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12));
559
- }
560
- catch(...)
561
- {
562
- RUBY_TRY
563
- {
564
- if(wrapper)
565
- {
566
- return wrapper->handler_->handle_exception();
567
- }
568
- else
569
- {
570
- throw;
571
- }
572
- }
573
- RUBY_CATCH
574
- }
575
- }
576
-
577
- 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>
578
- 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>::
579
- Auto_Member_Function_Wrapper(
580
- Func func,
581
- Data_Object<Exception_Handler> handler,
582
- Arguments* arguments)
583
- : Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
584
- , func_(func)
585
- , handler_(handler)
586
- , handler_guard_(&handler_)
587
- , arguments_(arguments)
588
- {
589
- if(arguments == 0) {
590
- arguments_ = new Arguments();
591
- } else {
592
- arguments_ = arguments;
593
- }
594
- }
595
-
596
- 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>
597
- 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>::
598
- ~Auto_Member_Function_Wrapper()
599
- {
600
- if(arguments_) { delete arguments_; }
601
- }
602
-
603
- 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>
604
- VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T>::
605
- call(int argc, VALUE* argv, VALUE self)
606
- {
607
- Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T> * wrapper = 0;
608
- try
609
- {
610
- Data_Object<Wrapped_Function> data(detail::method_data());
611
- wrapper = (Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T> *)data.get();
612
- Arguments* args = wrapper->arguments_;
613
-
614
- VALUE varg0, varg1, varg2, varg3, varg4, varg5, varg6, varg7, varg8, varg9, varg10, varg11, varg12;
615
-
616
- rb_scan_args(argc, argv, args->formatString(Num_Args).c_str(), &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9, &varg10, &varg11, &varg12);
617
-
618
- Self_T * obj = from_ruby<Self_T *>(self);
619
-
620
- Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
621
- Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
622
- Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
623
- Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
624
- Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
625
- Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
626
- Arg6_T arg6 = args->getArgumentOrDefault<Arg6_T>(6, varg6);
627
- Arg7_T arg7 = args->getArgumentOrDefault<Arg7_T>(7, varg7);
628
- Arg8_T arg8 = args->getArgumentOrDefault<Arg8_T>(8, varg8);
629
- Arg9_T arg9 = args->getArgumentOrDefault<Arg9_T>(9, varg9);
630
- Arg10_T arg10 = args->getArgumentOrDefault<Arg10_T>(10, varg10);
631
- Arg11_T arg11 = args->getArgumentOrDefault<Arg11_T>(11, varg11);
632
- Arg12_T arg12 = args->getArgumentOrDefault<Arg12_T>(12, varg12);
633
-
634
- Func func = wrapper->func_;
635
- (*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12);
636
- return Qnil;
637
- }
638
- catch(...)
639
- {
640
- RUBY_TRY
641
- {
642
- if(wrapper)
643
- {
644
- return wrapper->handler_->handle_exception();
645
- }
646
- else
647
- {
648
- throw;
649
- }
650
- }
651
- RUBY_CATCH
652
- }
653
- }
654
-
655
- // ---------------------------------------------------------------------
656
- 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>
657
- 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>::
658
- Auto_Member_Function_Wrapper(
659
- Func func,
660
- Data_Object<Exception_Handler> handler,
661
- Arguments* arguments)
662
- : Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
663
- , func_(func)
664
- , handler_(handler)
665
- , handler_guard_(&handler_)
666
- , arguments_(arguments)
667
- {
668
- if(arguments == 0) {
669
- arguments_ = new Arguments();
670
- } else {
671
- arguments_ = arguments;
672
- }
673
- }
674
-
675
- 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>
676
- 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>::
677
- ~Auto_Member_Function_Wrapper()
678
- {
679
- if(arguments_) { delete arguments_; }
680
- }
681
-
682
- 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>
683
- VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T>::
684
- call(int argc, VALUE* argv, VALUE self)
685
- {
686
- Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T> * wrapper = 0;
687
- try
688
- {
689
- Data_Object<Wrapped_Function> data(detail::method_data());
690
- wrapper = (Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T> *)data.get();
691
- Arguments* args = wrapper->arguments_;
692
-
693
- VALUE varg0, varg1, varg2, varg3, varg4, varg5, varg6, varg7, varg8, varg9, varg10, varg11;
694
-
695
- rb_scan_args(argc, argv, args->formatString(Num_Args).c_str(), &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9, &varg10, &varg11);
696
-
697
- Self_T * obj = from_ruby<Self_T *>(self);
698
-
699
- Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
700
- Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
701
- Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
702
- Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
703
- Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
704
- Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
705
- Arg6_T arg6 = args->getArgumentOrDefault<Arg6_T>(6, varg6);
706
- Arg7_T arg7 = args->getArgumentOrDefault<Arg7_T>(7, varg7);
707
- Arg8_T arg8 = args->getArgumentOrDefault<Arg8_T>(8, varg8);
708
- Arg9_T arg9 = args->getArgumentOrDefault<Arg9_T>(9, varg9);
709
- Arg10_T arg10 = args->getArgumentOrDefault<Arg10_T>(10, varg10);
710
- Arg11_T arg11 = args->getArgumentOrDefault<Arg11_T>(11, varg11);
711
-
712
- Func func = wrapper->func_;
713
- return to_ruby((*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11));
714
- }
715
- catch(...)
716
- {
717
- RUBY_TRY
718
- {
719
- if(wrapper)
720
- {
721
- return wrapper->handler_->handle_exception();
722
- }
723
- else
724
- {
725
- throw;
726
- }
727
- }
728
- RUBY_CATCH
729
- }
730
- }
731
-
732
- 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>
733
- 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>::
734
- Auto_Member_Function_Wrapper(
735
- Func func,
736
- Data_Object<Exception_Handler> handler,
737
- Arguments* arguments)
738
- : Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
739
- , func_(func)
740
- , handler_(handler)
741
- , handler_guard_(&handler_)
742
- , arguments_(arguments)
743
- {
744
- if(arguments == 0) {
745
- arguments_ = new Arguments();
746
- } else {
747
- arguments_ = arguments;
748
- }
749
- }
750
-
751
- 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>
752
- 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>::
753
- ~Auto_Member_Function_Wrapper()
754
- {
755
- if(arguments_) { delete arguments_; }
756
- }
757
-
758
- 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>
759
- VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T>::
760
- call(int argc, VALUE* argv, VALUE self)
761
- {
762
- Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T> * wrapper = 0;
763
- try
764
- {
765
- Data_Object<Wrapped_Function> data(detail::method_data());
766
- wrapper = (Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T> *)data.get();
767
- Arguments* args = wrapper->arguments_;
768
-
769
- VALUE varg0, varg1, varg2, varg3, varg4, varg5, varg6, varg7, varg8, varg9, varg10, varg11;
770
-
771
- rb_scan_args(argc, argv, args->formatString(Num_Args).c_str(), &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9, &varg10, &varg11);
772
-
773
- Self_T * obj = from_ruby<Self_T *>(self);
774
-
775
- Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
776
- Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
777
- Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
778
- Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
779
- Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
780
- Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
781
- Arg6_T arg6 = args->getArgumentOrDefault<Arg6_T>(6, varg6);
782
- Arg7_T arg7 = args->getArgumentOrDefault<Arg7_T>(7, varg7);
783
- Arg8_T arg8 = args->getArgumentOrDefault<Arg8_T>(8, varg8);
784
- Arg9_T arg9 = args->getArgumentOrDefault<Arg9_T>(9, varg9);
785
- Arg10_T arg10 = args->getArgumentOrDefault<Arg10_T>(10, varg10);
786
- Arg11_T arg11 = args->getArgumentOrDefault<Arg11_T>(11, varg11);
787
-
788
- Func func = wrapper->func_;
789
- (*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11);
790
- return Qnil;
791
- }
792
- catch(...)
793
- {
794
- RUBY_TRY
795
- {
796
- if(wrapper)
797
- {
798
- return wrapper->handler_->handle_exception();
799
- }
800
- else
801
- {
802
- throw;
803
- }
804
- }
805
- RUBY_CATCH
806
- }
807
- }
808
-
809
- // ---------------------------------------------------------------------
810
- 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>
811
- 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>::
812
- Auto_Member_Function_Wrapper(
813
- Func func,
814
- Data_Object<Exception_Handler> handler,
815
- Arguments* arguments)
816
- : Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
817
- , func_(func)
818
- , handler_(handler)
819
- , handler_guard_(&handler_)
820
- , arguments_(arguments)
821
- {
822
- if(arguments == 0) {
823
- arguments_ = new Arguments();
824
- } else {
825
- arguments_ = arguments;
826
- }
827
- }
828
-
829
- 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>
830
- 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>::
831
- ~Auto_Member_Function_Wrapper()
832
- {
833
- if(arguments_) { delete arguments_; }
834
- }
835
-
836
- 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>
837
- VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T>::
838
- call(int argc, VALUE* argv, VALUE self)
839
- {
840
- Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T> * wrapper = 0;
841
- try
842
- {
843
- Data_Object<Wrapped_Function> data(detail::method_data());
844
- wrapper = (Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T> *)data.get();
845
- Arguments* args = wrapper->arguments_;
846
-
847
- VALUE varg0, varg1, varg2, varg3, varg4, varg5, varg6, varg7, varg8, varg9, varg10;
848
-
849
- rb_scan_args(argc, argv, args->formatString(Num_Args).c_str(), &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9, &varg10);
850
-
851
- Self_T * obj = from_ruby<Self_T *>(self);
852
-
853
- Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
854
- Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
855
- Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
856
- Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
857
- Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
858
- Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
859
- Arg6_T arg6 = args->getArgumentOrDefault<Arg6_T>(6, varg6);
860
- Arg7_T arg7 = args->getArgumentOrDefault<Arg7_T>(7, varg7);
861
- Arg8_T arg8 = args->getArgumentOrDefault<Arg8_T>(8, varg8);
862
- Arg9_T arg9 = args->getArgumentOrDefault<Arg9_T>(9, varg9);
863
- Arg10_T arg10 = args->getArgumentOrDefault<Arg10_T>(10, varg10);
864
-
865
- Func func = wrapper->func_;
866
- return to_ruby((*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10));
867
- }
868
- catch(...)
869
- {
870
- RUBY_TRY
871
- {
872
- if(wrapper)
873
- {
874
- return wrapper->handler_->handle_exception();
875
- }
876
- else
877
- {
878
- throw;
879
- }
880
- }
881
- RUBY_CATCH
882
- }
883
- }
884
-
885
- 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>
886
- 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>::
887
- Auto_Member_Function_Wrapper(
888
- Func func,
889
- Data_Object<Exception_Handler> handler,
890
- Arguments* arguments)
891
- : Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
892
- , func_(func)
893
- , handler_(handler)
894
- , handler_guard_(&handler_)
895
- , arguments_(arguments)
896
- {
897
- if(arguments == 0) {
898
- arguments_ = new Arguments();
899
- } else {
900
- arguments_ = arguments;
901
- }
902
- }
903
-
904
- 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>
905
- 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>::
906
- ~Auto_Member_Function_Wrapper()
907
- {
908
- if(arguments_) { delete arguments_; }
909
- }
910
-
911
- 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>
912
- VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T>::
913
- call(int argc, VALUE* argv, VALUE self)
914
- {
915
- Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T> * wrapper = 0;
916
- try
917
- {
918
- Data_Object<Wrapped_Function> data(detail::method_data());
919
- wrapper = (Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T> *)data.get();
920
- Arguments* args = wrapper->arguments_;
921
-
922
- VALUE varg0, varg1, varg2, varg3, varg4, varg5, varg6, varg7, varg8, varg9, varg10;
923
-
924
- rb_scan_args(argc, argv, args->formatString(Num_Args).c_str(), &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9, &varg10);
925
-
926
- Self_T * obj = from_ruby<Self_T *>(self);
927
-
928
- Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
929
- Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
930
- Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
931
- Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
932
- Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
933
- Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
934
- Arg6_T arg6 = args->getArgumentOrDefault<Arg6_T>(6, varg6);
935
- Arg7_T arg7 = args->getArgumentOrDefault<Arg7_T>(7, varg7);
936
- Arg8_T arg8 = args->getArgumentOrDefault<Arg8_T>(8, varg8);
937
- Arg9_T arg9 = args->getArgumentOrDefault<Arg9_T>(9, varg9);
938
- Arg10_T arg10 = args->getArgumentOrDefault<Arg10_T>(10, varg10);
939
-
940
- Func func = wrapper->func_;
941
- (*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10);
942
- return Qnil;
943
- }
944
- catch(...)
945
- {
946
- RUBY_TRY
947
- {
948
- if(wrapper)
949
- {
950
- return wrapper->handler_->handle_exception();
951
- }
952
- else
953
- {
954
- throw;
955
- }
956
- }
957
- RUBY_CATCH
958
- }
959
- }
960
-
961
- // ---------------------------------------------------------------------
962
- 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>
963
- 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>::
964
- Auto_Member_Function_Wrapper(
965
- Func func,
966
- Data_Object<Exception_Handler> handler,
967
- Arguments* arguments)
968
- : Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
969
- , func_(func)
970
- , handler_(handler)
971
- , handler_guard_(&handler_)
972
- , arguments_(arguments)
973
- {
974
- if(arguments == 0) {
975
- arguments_ = new Arguments();
976
- } else {
977
- arguments_ = arguments;
978
- }
979
- }
980
-
981
- 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>
982
- 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>::
983
- ~Auto_Member_Function_Wrapper()
984
- {
985
- if(arguments_) { delete arguments_; }
986
- }
987
-
988
- 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>
989
- VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T>::
990
- call(int argc, VALUE* argv, VALUE self)
991
- {
992
- Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T> * wrapper = 0;
993
- try
994
- {
995
- Data_Object<Wrapped_Function> data(detail::method_data());
996
- wrapper = (Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T> *)data.get();
997
- Arguments* args = wrapper->arguments_;
998
-
999
- VALUE varg0, varg1, varg2, varg3, varg4, varg5, varg6, varg7, varg8, varg9;
1000
-
1001
- rb_scan_args(argc, argv, args->formatString(Num_Args).c_str(), &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9);
1002
-
1003
- Self_T * obj = from_ruby<Self_T *>(self);
1004
-
1005
- Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
1006
- Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
1007
- Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
1008
- Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
1009
- Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
1010
- Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
1011
- Arg6_T arg6 = args->getArgumentOrDefault<Arg6_T>(6, varg6);
1012
- Arg7_T arg7 = args->getArgumentOrDefault<Arg7_T>(7, varg7);
1013
- Arg8_T arg8 = args->getArgumentOrDefault<Arg8_T>(8, varg8);
1014
- Arg9_T arg9 = args->getArgumentOrDefault<Arg9_T>(9, varg9);
1015
-
1016
- Func func = wrapper->func_;
1017
- return to_ruby((*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9));
1018
- }
1019
- catch(...)
1020
- {
1021
- RUBY_TRY
1022
- {
1023
- if(wrapper)
1024
- {
1025
- return wrapper->handler_->handle_exception();
1026
- }
1027
- else
1028
- {
1029
- throw;
1030
- }
1031
- }
1032
- RUBY_CATCH
1033
- }
1034
- }
1035
-
1036
- 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>
1037
- 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>::
1038
- Auto_Member_Function_Wrapper(
1039
- Func func,
1040
- Data_Object<Exception_Handler> handler,
1041
- Arguments* arguments)
1042
- : Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
1043
- , func_(func)
1044
- , handler_(handler)
1045
- , handler_guard_(&handler_)
1046
- , arguments_(arguments)
1047
- {
1048
- if(arguments == 0) {
1049
- arguments_ = new Arguments();
1050
- } else {
1051
- arguments_ = arguments;
1052
- }
1053
- }
1054
-
1055
- 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>
1056
- 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>::
1057
- ~Auto_Member_Function_Wrapper()
1058
- {
1059
- if(arguments_) { delete arguments_; }
1060
- }
1061
-
1062
- 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>
1063
- VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T>::
1064
- call(int argc, VALUE* argv, VALUE self)
1065
- {
1066
- Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T> * wrapper = 0;
1067
- try
1068
- {
1069
- Data_Object<Wrapped_Function> data(detail::method_data());
1070
- wrapper = (Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T> *)data.get();
1071
- Arguments* args = wrapper->arguments_;
1072
-
1073
- VALUE varg0, varg1, varg2, varg3, varg4, varg5, varg6, varg7, varg8, varg9;
1074
-
1075
- rb_scan_args(argc, argv, args->formatString(Num_Args).c_str(), &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9);
1076
-
1077
- Self_T * obj = from_ruby<Self_T *>(self);
1078
-
1079
- Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
1080
- Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
1081
- Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
1082
- Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
1083
- Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
1084
- Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
1085
- Arg6_T arg6 = args->getArgumentOrDefault<Arg6_T>(6, varg6);
1086
- Arg7_T arg7 = args->getArgumentOrDefault<Arg7_T>(7, varg7);
1087
- Arg8_T arg8 = args->getArgumentOrDefault<Arg8_T>(8, varg8);
1088
- Arg9_T arg9 = args->getArgumentOrDefault<Arg9_T>(9, varg9);
1089
-
1090
- Func func = wrapper->func_;
1091
- (*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
1092
- return Qnil;
1093
- }
1094
- catch(...)
1095
- {
1096
- RUBY_TRY
1097
- {
1098
- if(wrapper)
1099
- {
1100
- return wrapper->handler_->handle_exception();
1101
- }
1102
- else
1103
- {
1104
- throw;
1105
- }
1106
- }
1107
- RUBY_CATCH
1108
- }
1109
- }
1110
-
1111
- // ---------------------------------------------------------------------
1112
- 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>
1113
- 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>::
1114
- Auto_Member_Function_Wrapper(
1115
- Func func,
1116
- Data_Object<Exception_Handler> handler,
1117
- Arguments* arguments)
1118
- : Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
1119
- , func_(func)
1120
- , handler_(handler)
1121
- , handler_guard_(&handler_)
1122
- , arguments_(arguments)
1123
- {
1124
- if(arguments == 0) {
1125
- arguments_ = new Arguments();
1126
- } else {
1127
- arguments_ = arguments;
1128
- }
1129
- }
1130
-
1131
- 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>
1132
- 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>::
1133
- ~Auto_Member_Function_Wrapper()
1134
- {
1135
- if(arguments_) { delete arguments_; }
1136
- }
1137
-
1138
- 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>
1139
- VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T>::
1140
- call(int argc, VALUE* argv, VALUE self)
1141
- {
1142
- Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T> * wrapper = 0;
1143
- try
1144
- {
1145
- Data_Object<Wrapped_Function> data(detail::method_data());
1146
- wrapper = (Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T> *)data.get();
1147
- Arguments* args = wrapper->arguments_;
1148
-
1149
- VALUE varg0, varg1, varg2, varg3, varg4, varg5, varg6, varg7, varg8;
1150
-
1151
- rb_scan_args(argc, argv, args->formatString(Num_Args).c_str(), &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8);
1152
-
1153
- Self_T * obj = from_ruby<Self_T *>(self);
1154
-
1155
- Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
1156
- Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
1157
- Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
1158
- Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
1159
- Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
1160
- Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
1161
- Arg6_T arg6 = args->getArgumentOrDefault<Arg6_T>(6, varg6);
1162
- Arg7_T arg7 = args->getArgumentOrDefault<Arg7_T>(7, varg7);
1163
- Arg8_T arg8 = args->getArgumentOrDefault<Arg8_T>(8, varg8);
1164
-
1165
- Func func = wrapper->func_;
1166
- return to_ruby((*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8));
1167
- }
1168
- catch(...)
1169
- {
1170
- RUBY_TRY
1171
- {
1172
- if(wrapper)
1173
- {
1174
- return wrapper->handler_->handle_exception();
1175
- }
1176
- else
1177
- {
1178
- throw;
1179
- }
1180
- }
1181
- RUBY_CATCH
1182
- }
1183
- }
1184
-
1185
- 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>
1186
- 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>::
1187
- Auto_Member_Function_Wrapper(
1188
- Func func,
1189
- Data_Object<Exception_Handler> handler,
1190
- Arguments* arguments)
1191
- : Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
1192
- , func_(func)
1193
- , handler_(handler)
1194
- , handler_guard_(&handler_)
1195
- , arguments_(arguments)
1196
- {
1197
- if(arguments == 0) {
1198
- arguments_ = new Arguments();
1199
- } else {
1200
- arguments_ = arguments;
1201
- }
1202
- }
1203
-
1204
- 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>
1205
- 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>::
1206
- ~Auto_Member_Function_Wrapper()
1207
- {
1208
- if(arguments_) { delete arguments_; }
1209
- }
1210
-
1211
- 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>
1212
- VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T>::
1213
- call(int argc, VALUE* argv, VALUE self)
1214
- {
1215
- Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T> * wrapper = 0;
1216
- try
1217
- {
1218
- Data_Object<Wrapped_Function> data(detail::method_data());
1219
- wrapper = (Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T> *)data.get();
1220
- Arguments* args = wrapper->arguments_;
1221
-
1222
- VALUE varg0, varg1, varg2, varg3, varg4, varg5, varg6, varg7, varg8;
1223
-
1224
- rb_scan_args(argc, argv, args->formatString(Num_Args).c_str(), &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8);
1225
-
1226
- Self_T * obj = from_ruby<Self_T *>(self);
1227
-
1228
- Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
1229
- Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
1230
- Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
1231
- Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
1232
- Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
1233
- Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
1234
- Arg6_T arg6 = args->getArgumentOrDefault<Arg6_T>(6, varg6);
1235
- Arg7_T arg7 = args->getArgumentOrDefault<Arg7_T>(7, varg7);
1236
- Arg8_T arg8 = args->getArgumentOrDefault<Arg8_T>(8, varg8);
1237
-
1238
- Func func = wrapper->func_;
1239
- (*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
1240
- return Qnil;
1241
- }
1242
- catch(...)
1243
- {
1244
- RUBY_TRY
1245
- {
1246
- if(wrapper)
1247
- {
1248
- return wrapper->handler_->handle_exception();
1249
- }
1250
- else
1251
- {
1252
- throw;
1253
- }
1254
- }
1255
- RUBY_CATCH
1256
- }
1257
- }
1258
-
1259
- // ---------------------------------------------------------------------
1260
- 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>
1261
- 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>::
1262
- Auto_Member_Function_Wrapper(
1263
- Func func,
1264
- Data_Object<Exception_Handler> handler,
1265
- Arguments* arguments)
1266
- : Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
1267
- , func_(func)
1268
- , handler_(handler)
1269
- , handler_guard_(&handler_)
1270
- , arguments_(arguments)
1271
- {
1272
- if(arguments == 0) {
1273
- arguments_ = new Arguments();
1274
- } else {
1275
- arguments_ = arguments;
1276
- }
1277
- }
1278
-
1279
- 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>
1280
- 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>::
1281
- ~Auto_Member_Function_Wrapper()
1282
- {
1283
- if(arguments_) { delete arguments_; }
1284
- }
1285
-
1286
- 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>
1287
- VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T>::
1288
- call(int argc, VALUE* argv, VALUE self)
1289
- {
1290
- Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T> * wrapper = 0;
1291
- try
1292
- {
1293
- Data_Object<Wrapped_Function> data(detail::method_data());
1294
- wrapper = (Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T> *)data.get();
1295
- Arguments* args = wrapper->arguments_;
1296
-
1297
- VALUE varg0, varg1, varg2, varg3, varg4, varg5, varg6, varg7;
1298
-
1299
- rb_scan_args(argc, argv, args->formatString(Num_Args).c_str(), &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7);
1300
-
1301
- Self_T * obj = from_ruby<Self_T *>(self);
1302
-
1303
- Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
1304
- Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
1305
- Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
1306
- Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
1307
- Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
1308
- Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
1309
- Arg6_T arg6 = args->getArgumentOrDefault<Arg6_T>(6, varg6);
1310
- Arg7_T arg7 = args->getArgumentOrDefault<Arg7_T>(7, varg7);
1311
-
1312
- Func func = wrapper->func_;
1313
- return to_ruby((*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7));
1314
- }
1315
- catch(...)
1316
- {
1317
- RUBY_TRY
1318
- {
1319
- if(wrapper)
1320
- {
1321
- return wrapper->handler_->handle_exception();
1322
- }
1323
- else
1324
- {
1325
- throw;
1326
- }
1327
- }
1328
- RUBY_CATCH
1329
- }
1330
- }
1331
-
1332
- 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>
1333
- 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>::
1334
- Auto_Member_Function_Wrapper(
1335
- Func func,
1336
- Data_Object<Exception_Handler> handler,
1337
- Arguments* arguments)
1338
- : Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
1339
- , func_(func)
1340
- , handler_(handler)
1341
- , handler_guard_(&handler_)
1342
- , arguments_(arguments)
1343
- {
1344
- if(arguments == 0) {
1345
- arguments_ = new Arguments();
1346
- } else {
1347
- arguments_ = arguments;
1348
- }
1349
- }
1350
-
1351
- 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>
1352
- 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>::
1353
- ~Auto_Member_Function_Wrapper()
1354
- {
1355
- if(arguments_) { delete arguments_; }
1356
- }
1357
-
1358
- 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>
1359
- VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T>::
1360
- call(int argc, VALUE* argv, VALUE self)
1361
- {
1362
- Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T> * wrapper = 0;
1363
- try
1364
- {
1365
- Data_Object<Wrapped_Function> data(detail::method_data());
1366
- wrapper = (Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T> *)data.get();
1367
- Arguments* args = wrapper->arguments_;
1368
-
1369
- VALUE varg0, varg1, varg2, varg3, varg4, varg5, varg6, varg7;
1370
-
1371
- rb_scan_args(argc, argv, args->formatString(Num_Args).c_str(), &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7);
1372
-
1373
- Self_T * obj = from_ruby<Self_T *>(self);
1374
-
1375
- Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
1376
- Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
1377
- Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
1378
- Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
1379
- Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
1380
- Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
1381
- Arg6_T arg6 = args->getArgumentOrDefault<Arg6_T>(6, varg6);
1382
- Arg7_T arg7 = args->getArgumentOrDefault<Arg7_T>(7, varg7);
1383
-
1384
- Func func = wrapper->func_;
1385
- (*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
1386
- return Qnil;
1387
- }
1388
- catch(...)
1389
- {
1390
- RUBY_TRY
1391
- {
1392
- if(wrapper)
1393
- {
1394
- return wrapper->handler_->handle_exception();
1395
- }
1396
- else
1397
- {
1398
- throw;
1399
- }
1400
- }
1401
- RUBY_CATCH
1402
- }
1403
- }
1404
-
1405
- // ---------------------------------------------------------------------
1406
- 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>
1407
- Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T>::
1408
- Auto_Member_Function_Wrapper(
1409
- Func func,
1410
- Data_Object<Exception_Handler> handler,
1411
- Arguments* arguments)
1412
- : Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
1413
- , func_(func)
1414
- , handler_(handler)
1415
- , handler_guard_(&handler_)
1416
- , arguments_(arguments)
1417
- {
1418
- if(arguments == 0) {
1419
- arguments_ = new Arguments();
1420
- } else {
1421
- arguments_ = arguments;
1422
- }
1423
- }
1424
-
1425
- 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>
1426
- Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T>::
1427
- ~Auto_Member_Function_Wrapper()
1428
- {
1429
- if(arguments_) { delete arguments_; }
1430
- }
1431
-
1432
- 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>
1433
- VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T>::
1434
- call(int argc, VALUE* argv, VALUE self)
1435
- {
1436
- Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T> * wrapper = 0;
1437
- try
1438
- {
1439
- Data_Object<Wrapped_Function> data(detail::method_data());
1440
- wrapper = (Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T> *)data.get();
1441
- Arguments* args = wrapper->arguments_;
1442
-
1443
- VALUE varg0, varg1, varg2, varg3, varg4, varg5, varg6;
1444
-
1445
- rb_scan_args(argc, argv, args->formatString(Num_Args).c_str(), &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6);
1446
-
1447
- Self_T * obj = from_ruby<Self_T *>(self);
1448
-
1449
- Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
1450
- Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
1451
- Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
1452
- Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
1453
- Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
1454
- Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
1455
- Arg6_T arg6 = args->getArgumentOrDefault<Arg6_T>(6, varg6);
1456
-
1457
- Func func = wrapper->func_;
1458
- return to_ruby((*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6));
1459
- }
1460
- catch(...)
1461
- {
1462
- RUBY_TRY
1463
- {
1464
- if(wrapper)
1465
- {
1466
- return wrapper->handler_->handle_exception();
1467
- }
1468
- else
1469
- {
1470
- throw;
1471
- }
1472
- }
1473
- RUBY_CATCH
1474
- }
1475
- }
1476
-
1477
- 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>
1478
- Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T>::
1479
- Auto_Member_Function_Wrapper(
1480
- Func func,
1481
- Data_Object<Exception_Handler> handler,
1482
- Arguments* arguments)
1483
- : Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
1484
- , func_(func)
1485
- , handler_(handler)
1486
- , handler_guard_(&handler_)
1487
- , arguments_(arguments)
1488
- {
1489
- if(arguments == 0) {
1490
- arguments_ = new Arguments();
1491
- } else {
1492
- arguments_ = arguments;
1493
- }
1494
- }
1495
-
1496
- 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>
1497
- Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T>::
1498
- ~Auto_Member_Function_Wrapper()
1499
- {
1500
- if(arguments_) { delete arguments_; }
1501
- }
1502
-
1503
- 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>
1504
- VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T>::
1505
- call(int argc, VALUE* argv, VALUE self)
1506
- {
1507
- Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T> * wrapper = 0;
1508
- try
1509
- {
1510
- Data_Object<Wrapped_Function> data(detail::method_data());
1511
- wrapper = (Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T> *)data.get();
1512
- Arguments* args = wrapper->arguments_;
1513
-
1514
- VALUE varg0, varg1, varg2, varg3, varg4, varg5, varg6;
1515
-
1516
- rb_scan_args(argc, argv, args->formatString(Num_Args).c_str(), &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6);
1517
-
1518
- Self_T * obj = from_ruby<Self_T *>(self);
1519
-
1520
- Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
1521
- Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
1522
- Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
1523
- Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
1524
- Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
1525
- Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
1526
- Arg6_T arg6 = args->getArgumentOrDefault<Arg6_T>(6, varg6);
1527
-
1528
- Func func = wrapper->func_;
1529
- (*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6);
1530
- return Qnil;
1531
- }
1532
- catch(...)
1533
- {
1534
- RUBY_TRY
1535
- {
1536
- if(wrapper)
1537
- {
1538
- return wrapper->handler_->handle_exception();
1539
- }
1540
- else
1541
- {
1542
- throw;
1543
- }
1544
- }
1545
- RUBY_CATCH
1546
- }
1547
- }
1548
-
1549
- // ---------------------------------------------------------------------
1550
- 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>
1551
- Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T>::
1552
- Auto_Member_Function_Wrapper(
1553
- Func func,
1554
- Data_Object<Exception_Handler> handler,
1555
- Arguments* arguments)
1556
- : Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
1557
- , func_(func)
1558
- , handler_(handler)
1559
- , handler_guard_(&handler_)
1560
- , arguments_(arguments)
1561
- {
1562
- if(arguments == 0) {
1563
- arguments_ = new Arguments();
1564
- } else {
1565
- arguments_ = arguments;
1566
- }
1567
- }
1568
-
1569
- 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>
1570
- Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T>::
1571
- ~Auto_Member_Function_Wrapper()
1572
- {
1573
- if(arguments_) { delete arguments_; }
1574
- }
1575
-
1576
- 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>
1577
- VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T>::
1578
- call(int argc, VALUE* argv, VALUE self)
1579
- {
1580
- Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T> * wrapper = 0;
1581
- try
1582
- {
1583
- Data_Object<Wrapped_Function> data(detail::method_data());
1584
- wrapper = (Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T> *)data.get();
1585
- Arguments* args = wrapper->arguments_;
1586
-
1587
- VALUE varg0, varg1, varg2, varg3, varg4, varg5;
1588
-
1589
- rb_scan_args(argc, argv, args->formatString(Num_Args).c_str(), &varg0, &varg1, &varg2, &varg3, &varg4, &varg5);
1590
-
1591
- Self_T * obj = from_ruby<Self_T *>(self);
1592
-
1593
- Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
1594
- Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
1595
- Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
1596
- Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
1597
- Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
1598
- Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
1599
-
1600
- Func func = wrapper->func_;
1601
- return to_ruby((*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5));
1602
- }
1603
- catch(...)
1604
- {
1605
- RUBY_TRY
1606
- {
1607
- if(wrapper)
1608
- {
1609
- return wrapper->handler_->handle_exception();
1610
- }
1611
- else
1612
- {
1613
- throw;
1614
- }
1615
- }
1616
- RUBY_CATCH
1617
- }
1618
- }
1619
-
1620
- 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>
1621
- Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T>::
1622
- Auto_Member_Function_Wrapper(
1623
- Func func,
1624
- Data_Object<Exception_Handler> handler,
1625
- Arguments* arguments)
1626
- : Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
1627
- , func_(func)
1628
- , handler_(handler)
1629
- , handler_guard_(&handler_)
1630
- , arguments_(arguments)
1631
- {
1632
- if(arguments == 0) {
1633
- arguments_ = new Arguments();
1634
- } else {
1635
- arguments_ = arguments;
1636
- }
1637
- }
1638
-
1639
- 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>
1640
- Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T>::
1641
- ~Auto_Member_Function_Wrapper()
1642
- {
1643
- if(arguments_) { delete arguments_; }
1644
- }
1645
-
1646
- 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>
1647
- VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T>::
1648
- call(int argc, VALUE* argv, VALUE self)
1649
- {
1650
- Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T> * wrapper = 0;
1651
- try
1652
- {
1653
- Data_Object<Wrapped_Function> data(detail::method_data());
1654
- wrapper = (Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T> *)data.get();
1655
- Arguments* args = wrapper->arguments_;
1656
-
1657
- VALUE varg0, varg1, varg2, varg3, varg4, varg5;
1658
-
1659
- rb_scan_args(argc, argv, args->formatString(Num_Args).c_str(), &varg0, &varg1, &varg2, &varg3, &varg4, &varg5);
1660
-
1661
- Self_T * obj = from_ruby<Self_T *>(self);
1662
-
1663
- Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
1664
- Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
1665
- Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
1666
- Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
1667
- Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
1668
- Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
1669
-
1670
- Func func = wrapper->func_;
1671
- (*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5);
1672
- return Qnil;
1673
- }
1674
- catch(...)
1675
- {
1676
- RUBY_TRY
1677
- {
1678
- if(wrapper)
1679
- {
1680
- return wrapper->handler_->handle_exception();
1681
- }
1682
- else
1683
- {
1684
- throw;
1685
- }
1686
- }
1687
- RUBY_CATCH
1688
- }
1689
- }
1690
-
1691
- // ---------------------------------------------------------------------
1692
- 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>
1693
- Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T>::
1694
- Auto_Member_Function_Wrapper(
1695
- Func func,
1696
- Data_Object<Exception_Handler> handler,
1697
- Arguments* arguments)
1698
- : Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
1699
- , func_(func)
1700
- , handler_(handler)
1701
- , handler_guard_(&handler_)
1702
- , arguments_(arguments)
1703
- {
1704
- if(arguments == 0) {
1705
- arguments_ = new Arguments();
1706
- } else {
1707
- arguments_ = arguments;
1708
- }
1709
- }
1710
-
1711
- 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>
1712
- Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T>::
1713
- ~Auto_Member_Function_Wrapper()
1714
- {
1715
- if(arguments_) { delete arguments_; }
1716
- }
1717
-
1718
- 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>
1719
- VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T>::
1720
- call(int argc, VALUE* argv, VALUE self)
1721
- {
1722
- Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T> * wrapper = 0;
1723
- try
1724
- {
1725
- Data_Object<Wrapped_Function> data(detail::method_data());
1726
- wrapper = (Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T> *)data.get();
1727
- Arguments* args = wrapper->arguments_;
1728
-
1729
- VALUE varg0, varg1, varg2, varg3, varg4;
1730
-
1731
- rb_scan_args(argc, argv, args->formatString(Num_Args).c_str(), &varg0, &varg1, &varg2, &varg3, &varg4);
1732
-
1733
- Self_T * obj = from_ruby<Self_T *>(self);
1734
-
1735
- Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
1736
- Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
1737
- Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
1738
- Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
1739
- Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
1740
-
1741
- Func func = wrapper->func_;
1742
- return to_ruby((*obj.*func)(arg0, arg1, arg2, arg3, arg4));
1743
- }
1744
- catch(...)
1745
- {
1746
- RUBY_TRY
1747
- {
1748
- if(wrapper)
1749
- {
1750
- return wrapper->handler_->handle_exception();
1751
- }
1752
- else
1753
- {
1754
- throw;
1755
- }
1756
- }
1757
- RUBY_CATCH
1758
- }
1759
- }
1760
-
1761
- template<typename Func_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T>
1762
- Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T>::
1763
- Auto_Member_Function_Wrapper(
1764
- Func func,
1765
- Data_Object<Exception_Handler> handler,
1766
- Arguments* arguments)
1767
- : Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
1768
- , func_(func)
1769
- , handler_(handler)
1770
- , handler_guard_(&handler_)
1771
- , arguments_(arguments)
1772
- {
1773
- if(arguments == 0) {
1774
- arguments_ = new Arguments();
1775
- } else {
1776
- arguments_ = arguments;
1777
- }
1778
- }
1779
-
1780
- template<typename Func_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T>
1781
- Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T>::
1782
- ~Auto_Member_Function_Wrapper()
1783
- {
1784
- if(arguments_) { delete arguments_; }
1785
- }
1786
-
1787
- template<typename Func_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T>
1788
- VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T>::
1789
- call(int argc, VALUE* argv, VALUE self)
1790
- {
1791
- Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T> * wrapper = 0;
1792
- try
1793
- {
1794
- Data_Object<Wrapped_Function> data(detail::method_data());
1795
- wrapper = (Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T> *)data.get();
1796
- Arguments* args = wrapper->arguments_;
1797
-
1798
- VALUE varg0, varg1, varg2, varg3, varg4;
1799
-
1800
- rb_scan_args(argc, argv, args->formatString(Num_Args).c_str(), &varg0, &varg1, &varg2, &varg3, &varg4);
1801
-
1802
- Self_T * obj = from_ruby<Self_T *>(self);
1803
-
1804
- Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
1805
- Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
1806
- Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
1807
- Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
1808
- Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
1809
-
1810
- Func func = wrapper->func_;
1811
- (*obj.*func)(arg0, arg1, arg2, arg3, arg4);
1812
- return Qnil;
1813
- }
1814
- catch(...)
1815
- {
1816
- RUBY_TRY
1817
- {
1818
- if(wrapper)
1819
- {
1820
- return wrapper->handler_->handle_exception();
1821
- }
1822
- else
1823
- {
1824
- throw;
1825
- }
1826
- }
1827
- RUBY_CATCH
1828
- }
1829
- }
1830
-
1831
- // ---------------------------------------------------------------------
1832
- template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T>
1833
- Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T>::
1834
- Auto_Member_Function_Wrapper(
1835
- Func func,
1836
- Data_Object<Exception_Handler> handler,
1837
- Arguments* arguments)
1838
- : Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
1839
- , func_(func)
1840
- , handler_(handler)
1841
- , handler_guard_(&handler_)
1842
- , arguments_(arguments)
1843
- {
1844
- if(arguments == 0) {
1845
- arguments_ = new Arguments();
1846
- } else {
1847
- arguments_ = arguments;
1848
- }
1849
- }
1850
-
1851
- template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T>
1852
- Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T>::
1853
- ~Auto_Member_Function_Wrapper()
1854
- {
1855
- if(arguments_) { delete arguments_; }
1856
- }
1857
-
1858
- template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T>
1859
- VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T>::
1860
- call(int argc, VALUE* argv, VALUE self)
1861
- {
1862
- Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T> * wrapper = 0;
1863
- try
1864
- {
1865
- Data_Object<Wrapped_Function> data(detail::method_data());
1866
- wrapper = (Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T> *)data.get();
1867
- Arguments* args = wrapper->arguments_;
1868
-
1869
- VALUE varg0, varg1, varg2, varg3;
1870
-
1871
- rb_scan_args(argc, argv, args->formatString(Num_Args).c_str(), &varg0, &varg1, &varg2, &varg3);
1872
-
1873
- Self_T * obj = from_ruby<Self_T *>(self);
1874
-
1875
- Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
1876
- Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
1877
- Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
1878
- Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
1879
-
1880
- Func func = wrapper->func_;
1881
- return to_ruby((*obj.*func)(arg0, arg1, arg2, arg3));
1882
- }
1883
- catch(...)
1884
- {
1885
- RUBY_TRY
1886
- {
1887
- if(wrapper)
1888
- {
1889
- return wrapper->handler_->handle_exception();
1890
- }
1891
- else
1892
- {
1893
- throw;
1894
- }
1895
- }
1896
- RUBY_CATCH
1897
- }
1898
- }
1899
-
1900
- template<typename Func_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T>
1901
- Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T>::
1902
- Auto_Member_Function_Wrapper(
1903
- Func func,
1904
- Data_Object<Exception_Handler> handler,
1905
- Arguments* arguments)
1906
- : Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
1907
- , func_(func)
1908
- , handler_(handler)
1909
- , handler_guard_(&handler_)
1910
- , arguments_(arguments)
1911
- {
1912
- if(arguments == 0) {
1913
- arguments_ = new Arguments();
1914
- } else {
1915
- arguments_ = arguments;
1916
- }
1917
- }
1918
-
1919
- template<typename Func_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T>
1920
- Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T>::
1921
- ~Auto_Member_Function_Wrapper()
1922
- {
1923
- if(arguments_) { delete arguments_; }
1924
- }
1925
-
1926
- template<typename Func_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T>
1927
- VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T>::
1928
- call(int argc, VALUE* argv, VALUE self)
1929
- {
1930
- Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T> * wrapper = 0;
1931
- try
1932
- {
1933
- Data_Object<Wrapped_Function> data(detail::method_data());
1934
- wrapper = (Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T> *)data.get();
1935
- Arguments* args = wrapper->arguments_;
1936
-
1937
- VALUE varg0, varg1, varg2, varg3;
1938
-
1939
- rb_scan_args(argc, argv, args->formatString(Num_Args).c_str(), &varg0, &varg1, &varg2, &varg3);
1940
-
1941
- Self_T * obj = from_ruby<Self_T *>(self);
1942
-
1943
- Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
1944
- Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
1945
- Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
1946
- Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
1947
-
1948
- Func func = wrapper->func_;
1949
- (*obj.*func)(arg0, arg1, arg2, arg3);
1950
- return Qnil;
1951
- }
1952
- catch(...)
1953
- {
1954
- RUBY_TRY
1955
- {
1956
- if(wrapper)
1957
- {
1958
- return wrapper->handler_->handle_exception();
1959
- }
1960
- else
1961
- {
1962
- throw;
1963
- }
1964
- }
1965
- RUBY_CATCH
1966
- }
1967
- }
1968
-
1969
- // ---------------------------------------------------------------------
1970
- template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T>
1971
- Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T>::
1972
- Auto_Member_Function_Wrapper(
1973
- Func func,
1974
- Data_Object<Exception_Handler> handler,
1975
- Arguments* arguments)
1976
- : Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
1977
- , func_(func)
1978
- , handler_(handler)
1979
- , handler_guard_(&handler_)
1980
- , arguments_(arguments)
1981
- {
1982
- if(arguments == 0) {
1983
- arguments_ = new Arguments();
1984
- } else {
1985
- arguments_ = arguments;
1986
- }
1987
- }
1988
-
1989
- template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T>
1990
- Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T>::
1991
- ~Auto_Member_Function_Wrapper()
1992
- {
1993
- if(arguments_) { delete arguments_; }
1994
- }
1995
-
1996
- template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T>
1997
- VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T>::
1998
- call(int argc, VALUE* argv, VALUE self)
1999
- {
2000
- Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T> * wrapper = 0;
2001
- try
2002
- {
2003
- Data_Object<Wrapped_Function> data(detail::method_data());
2004
- wrapper = (Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T> *)data.get();
2005
- Arguments* args = wrapper->arguments_;
2006
-
2007
- VALUE varg0, varg1, varg2;
2008
-
2009
- rb_scan_args(argc, argv, args->formatString(Num_Args).c_str(), &varg0, &varg1, &varg2);
2010
-
2011
- Self_T * obj = from_ruby<Self_T *>(self);
2012
-
2013
- Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
2014
- Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
2015
- Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
2016
-
2017
- Func func = wrapper->func_;
2018
- return to_ruby((*obj.*func)(arg0, arg1, arg2));
2019
- }
2020
- catch(...)
2021
- {
2022
- RUBY_TRY
2023
- {
2024
- if(wrapper)
2025
- {
2026
- return wrapper->handler_->handle_exception();
2027
- }
2028
- else
2029
- {
2030
- throw;
2031
- }
2032
- }
2033
- RUBY_CATCH
2034
- }
2035
- }
2036
-
2037
- template<typename Func_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T>
2038
- Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T>::
2039
- Auto_Member_Function_Wrapper(
2040
- Func func,
2041
- Data_Object<Exception_Handler> handler,
2042
- Arguments* arguments)
2043
- : Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
2044
- , func_(func)
2045
- , handler_(handler)
2046
- , handler_guard_(&handler_)
2047
- , arguments_(arguments)
2048
- {
2049
- if(arguments == 0) {
2050
- arguments_ = new Arguments();
2051
- } else {
2052
- arguments_ = arguments;
2053
- }
2054
- }
2055
-
2056
- template<typename Func_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T>
2057
- Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T>::
2058
- ~Auto_Member_Function_Wrapper()
2059
- {
2060
- if(arguments_) { delete arguments_; }
2061
- }
2062
-
2063
- template<typename Func_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T>
2064
- VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T>::
2065
- call(int argc, VALUE* argv, VALUE self)
2066
- {
2067
- Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T> * wrapper = 0;
2068
- try
2069
- {
2070
- Data_Object<Wrapped_Function> data(detail::method_data());
2071
- wrapper = (Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T> *)data.get();
2072
- Arguments* args = wrapper->arguments_;
2073
-
2074
- VALUE varg0, varg1, varg2;
2075
-
2076
- rb_scan_args(argc, argv, args->formatString(Num_Args).c_str(), &varg0, &varg1, &varg2);
2077
-
2078
- Self_T * obj = from_ruby<Self_T *>(self);
2079
-
2080
- Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
2081
- Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
2082
- Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
2083
-
2084
- Func func = wrapper->func_;
2085
- (*obj.*func)(arg0, arg1, arg2);
2086
- return Qnil;
2087
- }
2088
- catch(...)
2089
- {
2090
- RUBY_TRY
2091
- {
2092
- if(wrapper)
2093
- {
2094
- return wrapper->handler_->handle_exception();
2095
- }
2096
- else
2097
- {
2098
- throw;
2099
- }
2100
- }
2101
- RUBY_CATCH
2102
- }
2103
- }
2104
-
2105
- // ---------------------------------------------------------------------
2106
- template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T>
2107
- Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T>::
2108
- Auto_Member_Function_Wrapper(
2109
- Func func,
2110
- Data_Object<Exception_Handler> handler,
2111
- Arguments* arguments)
2112
- : Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
2113
- , func_(func)
2114
- , handler_(handler)
2115
- , handler_guard_(&handler_)
2116
- , arguments_(arguments)
2117
- {
2118
- if(arguments == 0) {
2119
- arguments_ = new Arguments();
2120
- } else {
2121
- arguments_ = arguments;
2122
- }
2123
- }
2124
-
2125
- template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T>
2126
- Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T>::
2127
- ~Auto_Member_Function_Wrapper()
2128
- {
2129
- if(arguments_) { delete arguments_; }
2130
- }
2131
-
2132
- template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T>
2133
- VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T>::
2134
- call(int argc, VALUE* argv, VALUE self)
2135
- {
2136
- Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T> * wrapper = 0;
2137
- try
2138
- {
2139
- Data_Object<Wrapped_Function> data(detail::method_data());
2140
- wrapper = (Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T> *)data.get();
2141
- Arguments* args = wrapper->arguments_;
2142
-
2143
- VALUE varg0, varg1;
2144
-
2145
- rb_scan_args(argc, argv, args->formatString(Num_Args).c_str(), &varg0, &varg1);
2146
-
2147
- Self_T * obj = from_ruby<Self_T *>(self);
2148
-
2149
- Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
2150
- Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
2151
-
2152
- Func func = wrapper->func_;
2153
- return to_ruby((*obj.*func)(arg0, arg1));
2154
- }
2155
- catch(...)
2156
- {
2157
- RUBY_TRY
2158
- {
2159
- if(wrapper)
2160
- {
2161
- return wrapper->handler_->handle_exception();
2162
- }
2163
- else
2164
- {
2165
- throw;
2166
- }
2167
- }
2168
- RUBY_CATCH
2169
- }
2170
- }
2171
-
2172
- template<typename Func_T, typename Self_T, typename Arg0_T, typename Arg1_T>
2173
- Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T>::
2174
- Auto_Member_Function_Wrapper(
2175
- Func func,
2176
- Data_Object<Exception_Handler> handler,
2177
- Arguments* arguments)
2178
- : Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
2179
- , func_(func)
2180
- , handler_(handler)
2181
- , handler_guard_(&handler_)
2182
- , arguments_(arguments)
2183
- {
2184
- if(arguments == 0) {
2185
- arguments_ = new Arguments();
2186
- } else {
2187
- arguments_ = arguments;
2188
- }
2189
- }
2190
-
2191
- template<typename Func_T, typename Self_T, typename Arg0_T, typename Arg1_T>
2192
- Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T>::
2193
- ~Auto_Member_Function_Wrapper()
2194
- {
2195
- if(arguments_) { delete arguments_; }
2196
- }
2197
-
2198
- template<typename Func_T, typename Self_T, typename Arg0_T, typename Arg1_T>
2199
- VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T>::
2200
- call(int argc, VALUE* argv, VALUE self)
2201
- {
2202
- Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T> * wrapper = 0;
2203
- try
2204
- {
2205
- Data_Object<Wrapped_Function> data(detail::method_data());
2206
- wrapper = (Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T> *)data.get();
2207
- Arguments* args = wrapper->arguments_;
2208
-
2209
- VALUE varg0, varg1;
2210
-
2211
- rb_scan_args(argc, argv, args->formatString(Num_Args).c_str(), &varg0, &varg1);
2212
-
2213
- Self_T * obj = from_ruby<Self_T *>(self);
2214
-
2215
- Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
2216
- Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
2217
-
2218
- Func func = wrapper->func_;
2219
- (*obj.*func)(arg0, arg1);
2220
- return Qnil;
2221
- }
2222
- catch(...)
2223
- {
2224
- RUBY_TRY
2225
- {
2226
- if(wrapper)
2227
- {
2228
- return wrapper->handler_->handle_exception();
2229
- }
2230
- else
2231
- {
2232
- throw;
2233
- }
2234
- }
2235
- RUBY_CATCH
2236
- }
2237
- }
2238
-
2239
- // ---------------------------------------------------------------------
2240
- template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T>
2241
- Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T>::
2242
- Auto_Member_Function_Wrapper(
2243
- Func func,
2244
- Data_Object<Exception_Handler> handler,
2245
- Arguments* arguments)
2246
- : Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
2247
- , func_(func)
2248
- , handler_(handler)
2249
- , handler_guard_(&handler_)
2250
- , arguments_(arguments)
2251
- {
2252
- if(arguments == 0) {
2253
- arguments_ = new Arguments();
2254
- } else {
2255
- arguments_ = arguments;
2256
- }
2257
- }
2258
-
2259
- template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T>
2260
- Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T>::
2261
- ~Auto_Member_Function_Wrapper()
2262
- {
2263
- if(arguments_) { delete arguments_; }
2264
- }
2265
-
2266
- template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T>
2267
- VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T>::
2268
- call(int argc, VALUE* argv, VALUE self)
2269
- {
2270
- Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T> * wrapper = 0;
2271
- try
2272
- {
2273
- Data_Object<Wrapped_Function> data(detail::method_data());
2274
- wrapper = (Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T> *)data.get();
2275
- Arguments* args = wrapper->arguments_;
2276
-
2277
- VALUE varg0;
2278
-
2279
- rb_scan_args(argc, argv, args->formatString(Num_Args).c_str(), &varg0);
2280
-
2281
- Self_T * obj = from_ruby<Self_T *>(self);
2282
-
2283
- Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
2284
-
2285
- Func func = wrapper->func_;
2286
- return to_ruby((*obj.*func)(arg0));
2287
- }
2288
- catch(...)
2289
- {
2290
- RUBY_TRY
2291
- {
2292
- if(wrapper)
2293
- {
2294
- return wrapper->handler_->handle_exception();
2295
- }
2296
- else
2297
- {
2298
- throw;
2299
- }
2300
- }
2301
- RUBY_CATCH
2302
- }
2303
- }
2304
-
2305
- template<typename Func_T, typename Self_T, typename Arg0_T>
2306
- Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T>::
2307
- Auto_Member_Function_Wrapper(
2308
- Func func,
2309
- Data_Object<Exception_Handler> handler,
2310
- Arguments* arguments)
2311
- : Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
2312
- , func_(func)
2313
- , handler_(handler)
2314
- , handler_guard_(&handler_)
2315
- , arguments_(arguments)
2316
- {
2317
- if(arguments == 0) {
2318
- arguments_ = new Arguments();
2319
- } else {
2320
- arguments_ = arguments;
2321
- }
2322
- }
2323
-
2324
- template<typename Func_T, typename Self_T, typename Arg0_T>
2325
- Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T>::
2326
- ~Auto_Member_Function_Wrapper()
2327
- {
2328
- if(arguments_) { delete arguments_; }
2329
- }
2330
-
2331
- template<typename Func_T, typename Self_T, typename Arg0_T>
2332
- VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T>::
2333
- call(int argc, VALUE* argv, VALUE self)
2334
- {
2335
- Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T> * wrapper = 0;
2336
- try
2337
- {
2338
- Data_Object<Wrapped_Function> data(detail::method_data());
2339
- wrapper = (Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T> *)data.get();
2340
- Arguments* args = wrapper->arguments_;
2341
-
2342
- VALUE varg0;
2343
-
2344
- rb_scan_args(argc, argv, args->formatString(Num_Args).c_str(), &varg0);
2345
-
2346
- Self_T * obj = from_ruby<Self_T *>(self);
2347
-
2348
- Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
2349
-
2350
- Func func = wrapper->func_;
2351
- (*obj.*func)(arg0);
2352
- return Qnil;
2353
- }
2354
- catch(...)
2355
- {
2356
- RUBY_TRY
2357
- {
2358
- if(wrapper)
2359
- {
2360
- return wrapper->handler_->handle_exception();
2361
- }
2362
- else
2363
- {
2364
- throw;
2365
- }
2366
- }
2367
- RUBY_CATCH
2368
- }
2369
- }
2370
-
2371
- // ---------------------------------------------------------------------
2372
-
2373
- template<typename Func_T, typename Ret_T, typename Self_T>
2374
- Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T>::
2375
- Auto_Member_Function_Wrapper(
2376
- Func func,
2377
- Data_Object<Exception_Handler> handler,
2378
- Arguments* arguments)
2379
- : Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
2380
- , func_(func)
2381
- , handler_(handler)
2382
- , handler_guard_(&handler_)
2383
- , arguments_(arguments)
2384
- {
2385
- if(arguments == 0) {
2386
- arguments_ = new Arguments();
2387
- } else {
2388
- arguments_ = arguments;
2389
- }
2390
- }
2391
-
2392
- template<typename Func_T, typename Ret_T, typename Self_T>
2393
- Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T>::
2394
- ~Auto_Member_Function_Wrapper()
2395
- {
2396
- if(arguments_) { delete arguments_; }
2397
- }
2398
-
2399
- template<typename Func_T, typename Ret_T, typename Self_T>
2400
- VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T>::
2401
- call(int argc, VALUE* argv, VALUE self)
2402
- {
2403
- Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T> * wrapper = 0;
2404
- try
2405
- {
2406
- Data_Object<Wrapped_Function> data(detail::method_data());
2407
- wrapper =
2408
- (Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T> *)data.get();
2409
-
2410
- rb_scan_args(argc, argv, "0");
2411
- Self_T * obj = from_ruby<Self_T *>(self);
2412
-
2413
- Func func = wrapper->func_;
2414
- return to_ruby((*obj.*func)());
2415
- }
2416
- catch(...)
2417
- {
2418
- RUBY_TRY
2419
- {
2420
- if(wrapper)
2421
- {
2422
- return wrapper->handler_->handle_exception();
2423
- }
2424
- else
2425
- {
2426
- throw;
2427
- }
2428
- }
2429
- RUBY_CATCH
2430
- }
2431
- }
2432
-
2433
- template<typename Func_T, typename Self_T>
2434
- Auto_Member_Function_Wrapper<Func_T, void, Self_T>::
2435
- Auto_Member_Function_Wrapper(
2436
- Func func,
2437
- Data_Object<Exception_Handler> handler,
2438
- Arguments* arguments)
2439
- : Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
2440
- , func_(func)
2441
- , handler_(handler)
2442
- , handler_guard_(&handler_)
2443
- , arguments_(arguments)
2444
- {
2445
- if(arguments == 0) {
2446
- arguments_ = new Arguments();
2447
- } else {
2448
- arguments_ = arguments;
2449
- }
2450
- }
2451
-
2452
- template<typename Func_T, typename Self_T>
2453
- Auto_Member_Function_Wrapper<Func_T, void, Self_T>::
2454
- ~Auto_Member_Function_Wrapper()
2455
- {
2456
- if(arguments_) { delete arguments_; }
2457
- }
2458
-
2459
- template<typename Func_T, typename Self_T>
2460
- VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T>::
2461
- call(int argc, VALUE* argv, VALUE self)
2462
- {
2463
- Auto_Member_Function_Wrapper<Func_T, void, Self_T> * wrapper = 0;
2464
- try
2465
- {
2466
- Data_Object<Wrapped_Function> data(detail::method_data());
2467
- wrapper =
2468
- (Auto_Member_Function_Wrapper<Func_T, void, Self_T> *)data.get();
2469
- rb_scan_args(argc, argv, "0");
2470
- Self_T * obj = from_ruby<Self_T *>(self);
2471
-
2472
- Func func = wrapper->func_;
2473
- (*obj.*func)();
2474
- return Qnil;
2475
- }
2476
- catch(...)
2477
- {
2478
- RUBY_TRY
2479
- {
2480
- if(wrapper)
2481
- {
2482
- return wrapper->handler_->handle_exception();
2483
- }
2484
- else
2485
- {
2486
- throw;
2487
- }
2488
- }
2489
- RUBY_CATCH
2490
- }
2491
- }
2492
-
2493
- // ---------------------------------------------------------------------
2494
-
2495
- } // namespace detail
2496
-
2497
- } // namespace Rice
2498
-
2499
-
2500
- #endif // Rice__detail__Auto_Member_Function_Wrapper__ipp_
2501
-