rice 3.0.0 → 4.0.0

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