rice 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (166) hide show
  1. data/COPYING +23 -0
  2. data/Doxyfile +1253 -0
  3. data/Makefile.am +26 -0
  4. data/Makefile.in +736 -0
  5. data/README +881 -0
  6. data/README.mingw +8 -0
  7. data/bootstrap +8 -0
  8. data/config.guess +1535 -0
  9. data/config.sub +1644 -0
  10. data/configure +7310 -0
  11. data/configure.ac +48 -0
  12. data/depcomp +584 -0
  13. data/doxygen.ac +314 -0
  14. data/doxygen.am +186 -0
  15. data/install-sh +507 -0
  16. data/missing +367 -0
  17. data/post-autoconf.rb +22 -0
  18. data/post-automake.rb +28 -0
  19. data/rice/Address_Registration_Guard.hpp +7 -0
  20. data/rice/Address_Registration_Guard.ipp +34 -0
  21. data/rice/Address_Registration_Guard_defn.hpp +65 -0
  22. data/rice/Allocation_Strategies.hpp +37 -0
  23. data/rice/Array.hpp +220 -0
  24. data/rice/Array.ipp +262 -0
  25. data/rice/Builtin_Object.hpp +8 -0
  26. data/rice/Builtin_Object.ipp +50 -0
  27. data/rice/Builtin_Object_defn.hpp +51 -0
  28. data/rice/Class.cpp +57 -0
  29. data/rice/Class.hpp +8 -0
  30. data/rice/Class.ipp +4 -0
  31. data/rice/Class_defn.hpp +83 -0
  32. data/rice/Constructor.hpp +189 -0
  33. data/rice/Critical_Guard.hpp +34 -0
  34. data/rice/Critical_Guard.ipp +20 -0
  35. data/rice/Data_Object.hpp +127 -0
  36. data/rice/Data_Object.ipp +129 -0
  37. data/rice/Data_Type.cpp +21 -0
  38. data/rice/Data_Type.hpp +8 -0
  39. data/rice/Data_Type.ipp +227 -0
  40. data/rice/Data_Type_defn.hpp +219 -0
  41. data/rice/Data_Type_fwd.hpp +12 -0
  42. data/rice/Enum.hpp +118 -0
  43. data/rice/Enum.ipp +246 -0
  44. data/rice/Exception.cpp +59 -0
  45. data/rice/Exception.hpp +69 -0
  46. data/rice/Exception_Base.hpp +30 -0
  47. data/rice/Exception_Base.ipp +11 -0
  48. data/rice/Hash.hpp +206 -0
  49. data/rice/Hash.ipp +336 -0
  50. data/rice/Identifier.cpp +8 -0
  51. data/rice/Identifier.hpp +50 -0
  52. data/rice/Identifier.ipp +33 -0
  53. data/rice/Jump_Tag.hpp +24 -0
  54. data/rice/Makefile.am +112 -0
  55. data/rice/Makefile.in +675 -0
  56. data/rice/Module.cpp +75 -0
  57. data/rice/Module.hpp +8 -0
  58. data/rice/Module.ipp +6 -0
  59. data/rice/Module_defn.hpp +87 -0
  60. data/rice/Module_impl.hpp +237 -0
  61. data/rice/Module_impl.ipp +302 -0
  62. data/rice/Object.cpp +153 -0
  63. data/rice/Object.hpp +8 -0
  64. data/rice/Object.ipp +19 -0
  65. data/rice/Object_defn.hpp +183 -0
  66. data/rice/Require_Guard.hpp +21 -0
  67. data/rice/String.cpp +93 -0
  68. data/rice/String.hpp +88 -0
  69. data/rice/Struct.cpp +117 -0
  70. data/rice/Struct.hpp +162 -0
  71. data/rice/Struct.ipp +26 -0
  72. data/rice/Symbol.cpp +25 -0
  73. data/rice/Symbol.hpp +66 -0
  74. data/rice/Symbol.ipp +44 -0
  75. data/rice/VM.cpp +79 -0
  76. data/rice/VM.hpp +27 -0
  77. data/rice/config.hpp +23 -0
  78. data/rice/config.hpp.in +22 -0
  79. data/rice/detail/Auto_Function_Wrapper.hpp +719 -0
  80. data/rice/detail/Auto_Function_Wrapper.ipp +1354 -0
  81. data/rice/detail/Auto_Member_Function_Wrapper.hpp +685 -0
  82. data/rice/detail/Auto_Member_Function_Wrapper.ipp +1435 -0
  83. data/rice/detail/Caster.hpp +61 -0
  84. data/rice/detail/Exception_Handler.hpp +118 -0
  85. data/rice/detail/Iterator_Definer.hpp +98 -0
  86. data/rice/detail/Not_Copyable.hpp +25 -0
  87. data/rice/detail/Wrapped_Function.hpp +33 -0
  88. data/rice/detail/check_ruby_type.cpp +21 -0
  89. data/rice/detail/check_ruby_type.hpp +23 -0
  90. data/rice/detail/creation_funcs.hpp +45 -0
  91. data/rice/detail/creation_funcs.ipp +62 -0
  92. data/rice/detail/default_allocation_func.hpp +23 -0
  93. data/rice/detail/default_allocation_func.ipp +11 -0
  94. data/rice/detail/define_method_and_auto_wrap.hpp +27 -0
  95. data/rice/detail/define_method_and_auto_wrap.ipp +20 -0
  96. data/rice/detail/env.hpp +13 -0
  97. data/rice/detail/from_ruby.hpp +43 -0
  98. data/rice/detail/from_ruby.ipp +74 -0
  99. data/rice/detail/method_data.cpp +105 -0
  100. data/rice/detail/method_data.hpp +33 -0
  101. data/rice/detail/node.hpp +13 -0
  102. data/rice/detail/object_call.hpp +85 -0
  103. data/rice/detail/object_call.ipp +147 -0
  104. data/rice/detail/protect.cpp +27 -0
  105. data/rice/detail/protect.hpp +34 -0
  106. data/rice/detail/remove_const.hpp +21 -0
  107. data/rice/detail/ruby.hpp +85 -0
  108. data/rice/detail/rubysig.hpp +13 -0
  109. data/rice/detail/st.hpp +56 -0
  110. data/rice/detail/to_ruby.hpp +16 -0
  111. data/rice/detail/to_ruby.ipp +10 -0
  112. data/rice/detail/win32.hpp +16 -0
  113. data/rice/detail/wrap_function.hpp +288 -0
  114. data/rice/detail/wrap_function.ipp +473 -0
  115. data/rice/generate_code.rb +1092 -0
  116. data/rice/global_function.hpp +16 -0
  117. data/rice/global_function.ipp +11 -0
  118. data/rice/protect.hpp +91 -0
  119. data/rice/protect.ipp +803 -0
  120. data/rice/ruby_try_catch.hpp +86 -0
  121. data/rice/to_from_ruby.hpp +8 -0
  122. data/rice/to_from_ruby.ipp +299 -0
  123. data/rice/to_from_ruby_defn.hpp +71 -0
  124. data/ruby.ac +105 -0
  125. data/ruby/Makefile.am +1 -0
  126. data/ruby/Makefile.in +493 -0
  127. data/ruby/lib/Makefile.am +3 -0
  128. data/ruby/lib/Makefile.in +369 -0
  129. data/ruby/lib/mkmf-rice.rb.in +199 -0
  130. data/sample/Makefile.am +47 -0
  131. data/sample/Makefile.in +375 -0
  132. data/sample/enum/extconf.rb +3 -0
  133. data/sample/enum/sample_enum.cpp +54 -0
  134. data/sample/enum/test.rb +8 -0
  135. data/sample/inheritance/animals.cpp +98 -0
  136. data/sample/inheritance/extconf.rb +3 -0
  137. data/sample/inheritance/test.rb +7 -0
  138. data/sample/map/extconf.rb +3 -0
  139. data/sample/map/map.cpp +81 -0
  140. data/sample/map/test.rb +7 -0
  141. data/test/Makefile.am +44 -0
  142. data/test/Makefile.in +575 -0
  143. data/test/test_Address_Registration_Guard.cpp +43 -0
  144. data/test/test_Allocation_Strategies.cpp +77 -0
  145. data/test/test_Array.cpp +241 -0
  146. data/test/test_Builtin_Object.cpp +72 -0
  147. data/test/test_Class.cpp +350 -0
  148. data/test/test_Constructor.cpp +30 -0
  149. data/test/test_Critical_Guard.cpp +47 -0
  150. data/test/test_Data_Object.cpp +235 -0
  151. data/test/test_Enum.cpp +162 -0
  152. data/test/test_Exception.cpp +46 -0
  153. data/test/test_Hash.cpp +195 -0
  154. data/test/test_Identifier.cpp +70 -0
  155. data/test/test_Jump_Tag.cpp +17 -0
  156. data/test/test_Module.cpp +253 -0
  157. data/test/test_Object.cpp +148 -0
  158. data/test/test_String.cpp +94 -0
  159. data/test/test_Struct.cpp +192 -0
  160. data/test/test_Symbol.cpp +63 -0
  161. data/test/test_To_From_Ruby.cpp +281 -0
  162. data/test/test_VM.cpp +26 -0
  163. data/test/test_rice.rb +30 -0
  164. data/test/unittest.cpp +136 -0
  165. data/test/unittest.hpp +292 -0
  166. metadata +209 -0
data/rice/Symbol.ipp ADDED
@@ -0,0 +1,44 @@
1
+ #ifndef Rice__Symbol__ipp_
2
+ #define Rice__Symbol__ipp_
3
+
4
+ #include "protect.hpp"
5
+ #include "detail/ruby.hpp"
6
+
7
+ inline Rice::Symbol::
8
+ Symbol(char const * s)
9
+ : Object(ID2SYM(rb_intern(s)))
10
+ {
11
+ }
12
+
13
+ inline Rice::Symbol::
14
+ Symbol(std::string const & s)
15
+ : Object(ID2SYM(rb_intern(s.c_str())))
16
+ {
17
+ }
18
+
19
+ inline Rice::Symbol::
20
+ Symbol(Identifier id)
21
+ : Object(ID2SYM(id))
22
+ {
23
+ }
24
+
25
+ inline char const * Rice::Symbol::
26
+ c_str() const
27
+ {
28
+ return to_id().c_str();
29
+ }
30
+
31
+ inline std::string Rice::Symbol::
32
+ str() const
33
+ {
34
+ return to_id().str();
35
+ }
36
+
37
+ inline Rice::Identifier Rice::Symbol::
38
+ to_id() const
39
+ {
40
+ return rb_to_id(value());
41
+ }
42
+
43
+ #endif // Rice__Symbol__ipp_
44
+
data/rice/VM.cpp ADDED
@@ -0,0 +1,79 @@
1
+ #include "VM.hpp"
2
+ #include "detail/ruby.hpp"
3
+ #include "detail/env.hpp"
4
+
5
+ #include <stdexcept>
6
+
7
+ Rice::VM::
8
+ VM(char * app_name)
9
+ {
10
+ init_stack();
11
+ init(1, &app_name);
12
+ }
13
+
14
+ Rice::VM::
15
+ VM(int argc, char * argv[])
16
+ {
17
+ init_stack();
18
+ init(argc, argv);
19
+ }
20
+
21
+ Rice::VM::
22
+ VM(std::vector<char *> const & args)
23
+ {
24
+ check_not_initialized();
25
+ init_stack();
26
+ init(args.size(), const_cast<char * *>(&args[0]));
27
+ }
28
+
29
+ Rice::VM::
30
+ ~VM()
31
+ {
32
+ init_stack();
33
+ }
34
+
35
+ #if RUBY_VERSION_CODE < 186
36
+ extern "C"
37
+ void Init_stack(VALUE *);
38
+ #endif
39
+
40
+ void Rice::VM::
41
+ init_stack()
42
+ {
43
+ #if RUBY_VERSION_CODE >= 186
44
+ RUBY_INIT_STACK;
45
+ #else
46
+ VALUE v;
47
+ Init_stack(&v);
48
+ #endif
49
+ }
50
+
51
+ void Rice::VM::
52
+ run()
53
+ {
54
+ ruby_run();
55
+ }
56
+
57
+ extern "C"
58
+ {
59
+
60
+ RUBY_EXTERN VALUE * rb_gc_stack_start;
61
+
62
+ }
63
+
64
+ void Rice::VM::
65
+ check_not_initialized() const
66
+ {
67
+ if(rb_gc_stack_start)
68
+ {
69
+ throw std::runtime_error("Only one VM allowed per application");
70
+ }
71
+ }
72
+
73
+ void Rice::VM::
74
+ init(int argc, char * argv[])
75
+ {
76
+ ruby_init();
77
+ ruby_options(argc, argv);
78
+ }
79
+
data/rice/VM.hpp ADDED
@@ -0,0 +1,27 @@
1
+ #ifndef VM__hpp
2
+ #define VM__hpp
3
+
4
+ #include <vector>
5
+
6
+ namespace Rice
7
+ {
8
+
9
+ class VM
10
+ {
11
+ public:
12
+ VM(char * app_name);
13
+ VM(int argc, char * argv[]);
14
+ VM(std::vector<char *> const & args);
15
+ ~VM();
16
+
17
+ void init_stack();
18
+ void run();
19
+
20
+ private:
21
+ void check_not_initialized() const;
22
+ void init(int argc, char * argv[]);
23
+ };
24
+
25
+ }
26
+
27
+ #endif // VM__hpp
data/rice/config.hpp ADDED
@@ -0,0 +1,23 @@
1
+ /* rice/config.hpp. Generated from config.hpp.in by configure. */
2
+ /* rice/config.hpp.in. Generated from configure.ac by autoheader. */
3
+
4
+ /* Name of package */
5
+ #define PACKAGE "rice"
6
+
7
+ /* Define to the address where bug reports for this package should be sent. */
8
+ #define PACKAGE_BUGREPORT ""
9
+
10
+ /* Define to the full name of this package. */
11
+ #define PACKAGE_NAME "rice"
12
+
13
+ /* Define to the full name and version of this package. */
14
+ #define PACKAGE_STRING "rice 1.0"
15
+
16
+ /* Define to the one symbol short name of this package. */
17
+ #define PACKAGE_TARNAME "rice"
18
+
19
+ /* Define to the version of this package. */
20
+ #define PACKAGE_VERSION "1.0"
21
+
22
+ /* Version number of package */
23
+ #define VERSION "1.0"
@@ -0,0 +1,22 @@
1
+ /* rice/config.hpp.in. Generated from configure.ac by autoheader. */
2
+
3
+ /* Name of package */
4
+ #undef PACKAGE
5
+
6
+ /* Define to the address where bug reports for this package should be sent. */
7
+ #undef PACKAGE_BUGREPORT
8
+
9
+ /* Define to the full name of this package. */
10
+ #undef PACKAGE_NAME
11
+
12
+ /* Define to the full name and version of this package. */
13
+ #undef PACKAGE_STRING
14
+
15
+ /* Define to the one symbol short name of this package. */
16
+ #undef PACKAGE_TARNAME
17
+
18
+ /* Define to the version of this package. */
19
+ #undef PACKAGE_VERSION
20
+
21
+ /* Version number of package */
22
+ #undef VERSION
@@ -0,0 +1,719 @@
1
+ #ifndef Rice__detail__Auto_Function_Wrapper__hpp_
2
+ #define Rice__detail__Auto_Function_Wrapper__hpp_
3
+
4
+ // This is a generated file. DO NOT EDIT!!
5
+
6
+
7
+ // This causes problems with certain C++ libraries
8
+ #undef TYPE
9
+
10
+ #include "Exception_Handler.hpp"
11
+
12
+ namespace Rice
13
+ {
14
+
15
+ namespace detail
16
+ {
17
+
18
+ #ifdef DOXYGEN
19
+
20
+ #else
21
+
22
+ template<typename Func_T, typename Ret_T, typename Arg0_T = void, typename Arg1_T = void, typename Arg2_T = void, typename Arg3_T = void, typename Arg4_T = void, typename Arg5_T = void, typename Arg6_T = void, typename Arg7_T = void, typename Arg8_T = void, typename Arg9_T = void, typename Arg10_T = void, typename Arg11_T = void, typename Arg12_T = void, typename Arg13_T = void, typename Arg14_T = void, typename Arg15_T = void>
23
+ class Auto_Function_Wrapper
24
+ : public Wrapped_Function
25
+ {
26
+ public:
27
+ // typedef Ret_T (*Func)(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);
28
+ typedef Func_T Func;
29
+
30
+ static const int Num_Args = 15;
31
+
32
+ Auto_Function_Wrapper(
33
+ Func func,
34
+ Exception_Handler const * handler = 0);
35
+
36
+ static VALUE call(VALUE ruby_arg0, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8, VALUE ruby_arg9, VALUE ruby_arg10, VALUE ruby_arg11, VALUE ruby_arg12, VALUE ruby_arg13, VALUE ruby_arg14, VALUE ruby_arg15);
37
+
38
+ private:
39
+ Func func_;
40
+ Exception_Handler const * handler_;
41
+ };
42
+
43
+ template<typename Func_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T, typename Arg13_T, typename Arg14_T, typename Arg15_T>
44
+ class Auto_Function_Wrapper<Func_T, void, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T, Arg15_T>
45
+ : public Wrapped_Function
46
+ {
47
+ public:
48
+ // typedef void (*Func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T, Arg15_T);
49
+ typedef Func_T Func;
50
+
51
+ static const int Num_Args = 15;
52
+
53
+ Auto_Function_Wrapper(
54
+ Func func,
55
+ Exception_Handler const * handler = 0);
56
+
57
+ static VALUE call(VALUE ruby_arg0, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8, VALUE ruby_arg9, VALUE ruby_arg10, VALUE ruby_arg11, VALUE ruby_arg12, VALUE ruby_arg13, VALUE ruby_arg14, VALUE ruby_arg15);
58
+
59
+ private:
60
+ Func func_;
61
+ Exception_Handler const * handler_;
62
+ };
63
+
64
+ // ---------------------------------------------------------------------
65
+ template<typename Func_T, typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T, typename Arg13_T, typename Arg14_T>
66
+ class Auto_Function_Wrapper<Func_T, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T>
67
+ : public Wrapped_Function
68
+ {
69
+ public:
70
+ // typedef Ret_T (*Func)(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);
71
+ typedef Func_T Func;
72
+
73
+ static const int Num_Args = 14;
74
+
75
+ Auto_Function_Wrapper(
76
+ Func func,
77
+ Exception_Handler const * handler = 0);
78
+
79
+ static VALUE call(VALUE ruby_arg0, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8, VALUE ruby_arg9, VALUE ruby_arg10, VALUE ruby_arg11, VALUE ruby_arg12, VALUE ruby_arg13, VALUE ruby_arg14);
80
+
81
+ private:
82
+ Func func_;
83
+ Exception_Handler const * handler_;
84
+ };
85
+
86
+ template<typename Func_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T, typename Arg13_T, typename Arg14_T>
87
+ class Auto_Function_Wrapper<Func_T, void, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T>
88
+ : public Wrapped_Function
89
+ {
90
+ public:
91
+ // typedef void (*Func)(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);
92
+ typedef Func_T Func;
93
+
94
+ static const int Num_Args = 14;
95
+
96
+ Auto_Function_Wrapper(
97
+ Func func,
98
+ Exception_Handler const * handler = 0);
99
+
100
+ static VALUE call(VALUE ruby_arg0, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8, VALUE ruby_arg9, VALUE ruby_arg10, VALUE ruby_arg11, VALUE ruby_arg12, VALUE ruby_arg13, VALUE ruby_arg14);
101
+
102
+ private:
103
+ Func func_;
104
+ Exception_Handler const * handler_;
105
+ };
106
+
107
+ // ---------------------------------------------------------------------
108
+ template<typename Func_T, typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T, typename Arg13_T>
109
+ class Auto_Function_Wrapper<Func_T, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T>
110
+ : public Wrapped_Function
111
+ {
112
+ public:
113
+ // typedef Ret_T (*Func)(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);
114
+ typedef Func_T Func;
115
+
116
+ static const int Num_Args = 13;
117
+
118
+ Auto_Function_Wrapper(
119
+ Func func,
120
+ Exception_Handler const * handler = 0);
121
+
122
+ static VALUE call(VALUE ruby_arg0, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8, VALUE ruby_arg9, VALUE ruby_arg10, VALUE ruby_arg11, VALUE ruby_arg12, VALUE ruby_arg13);
123
+
124
+ private:
125
+ Func func_;
126
+ Exception_Handler const * handler_;
127
+ };
128
+
129
+ template<typename Func_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T, typename Arg13_T>
130
+ class Auto_Function_Wrapper<Func_T, void, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T>
131
+ : public Wrapped_Function
132
+ {
133
+ public:
134
+ // typedef void (*Func)(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);
135
+ typedef Func_T Func;
136
+
137
+ static const int Num_Args = 13;
138
+
139
+ Auto_Function_Wrapper(
140
+ Func func,
141
+ Exception_Handler const * handler = 0);
142
+
143
+ static VALUE call(VALUE ruby_arg0, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8, VALUE ruby_arg9, VALUE ruby_arg10, VALUE ruby_arg11, VALUE ruby_arg12, VALUE ruby_arg13);
144
+
145
+ private:
146
+ Func func_;
147
+ Exception_Handler const * handler_;
148
+ };
149
+
150
+ // ---------------------------------------------------------------------
151
+ template<typename Func_T, typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T>
152
+ class Auto_Function_Wrapper<Func_T, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T>
153
+ : public Wrapped_Function
154
+ {
155
+ public:
156
+ // typedef Ret_T (*Func)(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);
157
+ typedef Func_T Func;
158
+
159
+ static const int Num_Args = 12;
160
+
161
+ Auto_Function_Wrapper(
162
+ Func func,
163
+ Exception_Handler const * handler = 0);
164
+
165
+ static VALUE call(VALUE ruby_arg0, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8, VALUE ruby_arg9, VALUE ruby_arg10, VALUE ruby_arg11, VALUE ruby_arg12);
166
+
167
+ private:
168
+ Func func_;
169
+ Exception_Handler const * handler_;
170
+ };
171
+
172
+ template<typename Func_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T>
173
+ class Auto_Function_Wrapper<Func_T, void, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T>
174
+ : public Wrapped_Function
175
+ {
176
+ public:
177
+ // typedef void (*Func)(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);
178
+ typedef Func_T Func;
179
+
180
+ static const int Num_Args = 12;
181
+
182
+ Auto_Function_Wrapper(
183
+ Func func,
184
+ Exception_Handler const * handler = 0);
185
+
186
+ static VALUE call(VALUE ruby_arg0, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8, VALUE ruby_arg9, VALUE ruby_arg10, VALUE ruby_arg11, VALUE ruby_arg12);
187
+
188
+ private:
189
+ Func func_;
190
+ Exception_Handler const * handler_;
191
+ };
192
+
193
+ // ---------------------------------------------------------------------
194
+ template<typename Func_T, typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T>
195
+ class Auto_Function_Wrapper<Func_T, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T>
196
+ : public Wrapped_Function
197
+ {
198
+ public:
199
+ // typedef Ret_T (*Func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T);
200
+ typedef Func_T Func;
201
+
202
+ static const int Num_Args = 11;
203
+
204
+ Auto_Function_Wrapper(
205
+ Func func,
206
+ Exception_Handler const * handler = 0);
207
+
208
+ static VALUE call(VALUE ruby_arg0, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8, VALUE ruby_arg9, VALUE ruby_arg10, VALUE ruby_arg11);
209
+
210
+ private:
211
+ Func func_;
212
+ Exception_Handler const * handler_;
213
+ };
214
+
215
+ template<typename Func_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T>
216
+ class Auto_Function_Wrapper<Func_T, void, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T>
217
+ : public Wrapped_Function
218
+ {
219
+ public:
220
+ // typedef void (*Func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T);
221
+ typedef Func_T Func;
222
+
223
+ static const int Num_Args = 11;
224
+
225
+ Auto_Function_Wrapper(
226
+ Func func,
227
+ Exception_Handler const * handler = 0);
228
+
229
+ static VALUE call(VALUE ruby_arg0, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8, VALUE ruby_arg9, VALUE ruby_arg10, VALUE ruby_arg11);
230
+
231
+ private:
232
+ Func func_;
233
+ Exception_Handler const * handler_;
234
+ };
235
+
236
+ // ---------------------------------------------------------------------
237
+ template<typename Func_T, typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T>
238
+ class Auto_Function_Wrapper<Func_T, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T>
239
+ : public Wrapped_Function
240
+ {
241
+ public:
242
+ // typedef Ret_T (*Func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T);
243
+ typedef Func_T Func;
244
+
245
+ static const int Num_Args = 10;
246
+
247
+ Auto_Function_Wrapper(
248
+ Func func,
249
+ Exception_Handler const * handler = 0);
250
+
251
+ static VALUE call(VALUE ruby_arg0, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8, VALUE ruby_arg9, VALUE ruby_arg10);
252
+
253
+ private:
254
+ Func func_;
255
+ Exception_Handler const * handler_;
256
+ };
257
+
258
+ template<typename Func_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T>
259
+ class Auto_Function_Wrapper<Func_T, void, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T>
260
+ : public Wrapped_Function
261
+ {
262
+ public:
263
+ // typedef void (*Func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T);
264
+ typedef Func_T Func;
265
+
266
+ static const int Num_Args = 10;
267
+
268
+ Auto_Function_Wrapper(
269
+ Func func,
270
+ Exception_Handler const * handler = 0);
271
+
272
+ static VALUE call(VALUE ruby_arg0, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8, VALUE ruby_arg9, VALUE ruby_arg10);
273
+
274
+ private:
275
+ Func func_;
276
+ Exception_Handler const * handler_;
277
+ };
278
+
279
+ // ---------------------------------------------------------------------
280
+ template<typename Func_T, typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T>
281
+ class Auto_Function_Wrapper<Func_T, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T>
282
+ : public Wrapped_Function
283
+ {
284
+ public:
285
+ // typedef Ret_T (*Func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T);
286
+ typedef Func_T Func;
287
+
288
+ static const int Num_Args = 9;
289
+
290
+ Auto_Function_Wrapper(
291
+ Func func,
292
+ Exception_Handler const * handler = 0);
293
+
294
+ static VALUE call(VALUE ruby_arg0, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8, VALUE ruby_arg9);
295
+
296
+ private:
297
+ Func func_;
298
+ Exception_Handler const * handler_;
299
+ };
300
+
301
+ template<typename Func_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T>
302
+ class Auto_Function_Wrapper<Func_T, void, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T>
303
+ : public Wrapped_Function
304
+ {
305
+ public:
306
+ // typedef void (*Func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T);
307
+ typedef Func_T Func;
308
+
309
+ static const int Num_Args = 9;
310
+
311
+ Auto_Function_Wrapper(
312
+ Func func,
313
+ Exception_Handler const * handler = 0);
314
+
315
+ static VALUE call(VALUE ruby_arg0, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8, VALUE ruby_arg9);
316
+
317
+ private:
318
+ Func func_;
319
+ Exception_Handler const * handler_;
320
+ };
321
+
322
+ // ---------------------------------------------------------------------
323
+ template<typename Func_T, typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T>
324
+ class Auto_Function_Wrapper<Func_T, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T>
325
+ : public Wrapped_Function
326
+ {
327
+ public:
328
+ // typedef Ret_T (*Func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T);
329
+ typedef Func_T Func;
330
+
331
+ static const int Num_Args = 8;
332
+
333
+ Auto_Function_Wrapper(
334
+ Func func,
335
+ Exception_Handler const * handler = 0);
336
+
337
+ static VALUE call(VALUE ruby_arg0, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8);
338
+
339
+ private:
340
+ Func func_;
341
+ Exception_Handler const * handler_;
342
+ };
343
+
344
+ template<typename Func_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T>
345
+ class Auto_Function_Wrapper<Func_T, void, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T>
346
+ : public Wrapped_Function
347
+ {
348
+ public:
349
+ // typedef void (*Func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T);
350
+ typedef Func_T Func;
351
+
352
+ static const int Num_Args = 8;
353
+
354
+ Auto_Function_Wrapper(
355
+ Func func,
356
+ Exception_Handler const * handler = 0);
357
+
358
+ static VALUE call(VALUE ruby_arg0, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8);
359
+
360
+ private:
361
+ Func func_;
362
+ Exception_Handler const * handler_;
363
+ };
364
+
365
+ // ---------------------------------------------------------------------
366
+ template<typename Func_T, typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T>
367
+ class Auto_Function_Wrapper<Func_T, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T>
368
+ : public Wrapped_Function
369
+ {
370
+ public:
371
+ // typedef Ret_T (*Func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T);
372
+ typedef Func_T Func;
373
+
374
+ static const int Num_Args = 7;
375
+
376
+ Auto_Function_Wrapper(
377
+ Func func,
378
+ Exception_Handler const * handler = 0);
379
+
380
+ static VALUE call(VALUE ruby_arg0, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7);
381
+
382
+ private:
383
+ Func func_;
384
+ Exception_Handler const * handler_;
385
+ };
386
+
387
+ template<typename Func_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T>
388
+ class Auto_Function_Wrapper<Func_T, void, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T>
389
+ : public Wrapped_Function
390
+ {
391
+ public:
392
+ // typedef void (*Func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T);
393
+ typedef Func_T Func;
394
+
395
+ static const int Num_Args = 7;
396
+
397
+ Auto_Function_Wrapper(
398
+ Func func,
399
+ Exception_Handler const * handler = 0);
400
+
401
+ static VALUE call(VALUE ruby_arg0, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7);
402
+
403
+ private:
404
+ Func func_;
405
+ Exception_Handler const * handler_;
406
+ };
407
+
408
+ // ---------------------------------------------------------------------
409
+ template<typename Func_T, typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T>
410
+ class Auto_Function_Wrapper<Func_T, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T>
411
+ : public Wrapped_Function
412
+ {
413
+ public:
414
+ // typedef Ret_T (*Func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T);
415
+ typedef Func_T Func;
416
+
417
+ static const int Num_Args = 6;
418
+
419
+ Auto_Function_Wrapper(
420
+ Func func,
421
+ Exception_Handler const * handler = 0);
422
+
423
+ static VALUE call(VALUE ruby_arg0, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6);
424
+
425
+ private:
426
+ Func func_;
427
+ Exception_Handler const * handler_;
428
+ };
429
+
430
+ template<typename Func_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T>
431
+ class Auto_Function_Wrapper<Func_T, void, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T>
432
+ : public Wrapped_Function
433
+ {
434
+ public:
435
+ // typedef void (*Func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T);
436
+ typedef Func_T Func;
437
+
438
+ static const int Num_Args = 6;
439
+
440
+ Auto_Function_Wrapper(
441
+ Func func,
442
+ Exception_Handler const * handler = 0);
443
+
444
+ static VALUE call(VALUE ruby_arg0, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6);
445
+
446
+ private:
447
+ Func func_;
448
+ Exception_Handler const * handler_;
449
+ };
450
+
451
+ // ---------------------------------------------------------------------
452
+ template<typename Func_T, typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T>
453
+ class Auto_Function_Wrapper<Func_T, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T>
454
+ : public Wrapped_Function
455
+ {
456
+ public:
457
+ // typedef Ret_T (*Func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T);
458
+ typedef Func_T Func;
459
+
460
+ static const int Num_Args = 5;
461
+
462
+ Auto_Function_Wrapper(
463
+ Func func,
464
+ Exception_Handler const * handler = 0);
465
+
466
+ static VALUE call(VALUE ruby_arg0, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5);
467
+
468
+ private:
469
+ Func func_;
470
+ Exception_Handler const * handler_;
471
+ };
472
+
473
+ template<typename Func_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T>
474
+ class Auto_Function_Wrapper<Func_T, void, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T>
475
+ : public Wrapped_Function
476
+ {
477
+ public:
478
+ // typedef void (*Func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T);
479
+ typedef Func_T Func;
480
+
481
+ static const int Num_Args = 5;
482
+
483
+ Auto_Function_Wrapper(
484
+ Func func,
485
+ Exception_Handler const * handler = 0);
486
+
487
+ static VALUE call(VALUE ruby_arg0, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5);
488
+
489
+ private:
490
+ Func func_;
491
+ Exception_Handler const * handler_;
492
+ };
493
+
494
+ // ---------------------------------------------------------------------
495
+ template<typename Func_T, typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T>
496
+ class Auto_Function_Wrapper<Func_T, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T>
497
+ : public Wrapped_Function
498
+ {
499
+ public:
500
+ // typedef Ret_T (*Func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T);
501
+ typedef Func_T Func;
502
+
503
+ static const int Num_Args = 4;
504
+
505
+ Auto_Function_Wrapper(
506
+ Func func,
507
+ Exception_Handler const * handler = 0);
508
+
509
+ static VALUE call(VALUE ruby_arg0, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4);
510
+
511
+ private:
512
+ Func func_;
513
+ Exception_Handler const * handler_;
514
+ };
515
+
516
+ template<typename Func_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T>
517
+ class Auto_Function_Wrapper<Func_T, void, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T>
518
+ : public Wrapped_Function
519
+ {
520
+ public:
521
+ // typedef void (*Func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T);
522
+ typedef Func_T Func;
523
+
524
+ static const int Num_Args = 4;
525
+
526
+ Auto_Function_Wrapper(
527
+ Func func,
528
+ Exception_Handler const * handler = 0);
529
+
530
+ static VALUE call(VALUE ruby_arg0, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4);
531
+
532
+ private:
533
+ Func func_;
534
+ Exception_Handler const * handler_;
535
+ };
536
+
537
+ // ---------------------------------------------------------------------
538
+ template<typename Func_T, typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T>
539
+ class Auto_Function_Wrapper<Func_T, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T>
540
+ : public Wrapped_Function
541
+ {
542
+ public:
543
+ // typedef Ret_T (*Func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T);
544
+ typedef Func_T Func;
545
+
546
+ static const int Num_Args = 3;
547
+
548
+ Auto_Function_Wrapper(
549
+ Func func,
550
+ Exception_Handler const * handler = 0);
551
+
552
+ static VALUE call(VALUE ruby_arg0, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3);
553
+
554
+ private:
555
+ Func func_;
556
+ Exception_Handler const * handler_;
557
+ };
558
+
559
+ template<typename Func_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T>
560
+ class Auto_Function_Wrapper<Func_T, void, Arg0_T, Arg1_T, Arg2_T, Arg3_T>
561
+ : public Wrapped_Function
562
+ {
563
+ public:
564
+ // typedef void (*Func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T);
565
+ typedef Func_T Func;
566
+
567
+ static const int Num_Args = 3;
568
+
569
+ Auto_Function_Wrapper(
570
+ Func func,
571
+ Exception_Handler const * handler = 0);
572
+
573
+ static VALUE call(VALUE ruby_arg0, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3);
574
+
575
+ private:
576
+ Func func_;
577
+ Exception_Handler const * handler_;
578
+ };
579
+
580
+ // ---------------------------------------------------------------------
581
+ template<typename Func_T, typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T>
582
+ class Auto_Function_Wrapper<Func_T, Ret_T, Arg0_T, Arg1_T, Arg2_T>
583
+ : public Wrapped_Function
584
+ {
585
+ public:
586
+ // typedef Ret_T (*Func)(Arg0_T, Arg1_T, Arg2_T);
587
+ typedef Func_T Func;
588
+
589
+ static const int Num_Args = 2;
590
+
591
+ Auto_Function_Wrapper(
592
+ Func func,
593
+ Exception_Handler const * handler = 0);
594
+
595
+ static VALUE call(VALUE ruby_arg0, VALUE ruby_arg1, VALUE ruby_arg2);
596
+
597
+ private:
598
+ Func func_;
599
+ Exception_Handler const * handler_;
600
+ };
601
+
602
+ template<typename Func_T, typename Arg0_T, typename Arg1_T, typename Arg2_T>
603
+ class Auto_Function_Wrapper<Func_T, void, Arg0_T, Arg1_T, Arg2_T>
604
+ : public Wrapped_Function
605
+ {
606
+ public:
607
+ // typedef void (*Func)(Arg0_T, Arg1_T, Arg2_T);
608
+ typedef Func_T Func;
609
+
610
+ static const int Num_Args = 2;
611
+
612
+ Auto_Function_Wrapper(
613
+ Func func,
614
+ Exception_Handler const * handler = 0);
615
+
616
+ static VALUE call(VALUE ruby_arg0, VALUE ruby_arg1, VALUE ruby_arg2);
617
+
618
+ private:
619
+ Func func_;
620
+ Exception_Handler const * handler_;
621
+ };
622
+
623
+ // ---------------------------------------------------------------------
624
+ template<typename Func_T, typename Ret_T, typename Arg0_T, typename Arg1_T>
625
+ class Auto_Function_Wrapper<Func_T, Ret_T, Arg0_T, Arg1_T>
626
+ : public Wrapped_Function
627
+ {
628
+ public:
629
+ // typedef Ret_T (*Func)(Arg0_T, Arg1_T);
630
+ typedef Func_T Func;
631
+
632
+ static const int Num_Args = 1;
633
+
634
+ Auto_Function_Wrapper(
635
+ Func func,
636
+ Exception_Handler const * handler = 0);
637
+
638
+ static VALUE call(VALUE ruby_arg0, VALUE ruby_arg1);
639
+
640
+ private:
641
+ Func func_;
642
+ Exception_Handler const * handler_;
643
+ };
644
+
645
+ template<typename Func_T, typename Arg0_T, typename Arg1_T>
646
+ class Auto_Function_Wrapper<Func_T, void, Arg0_T, Arg1_T>
647
+ : public Wrapped_Function
648
+ {
649
+ public:
650
+ // typedef void (*Func)(Arg0_T, Arg1_T);
651
+ typedef Func_T Func;
652
+
653
+ static const int Num_Args = 1;
654
+
655
+ Auto_Function_Wrapper(
656
+ Func func,
657
+ Exception_Handler const * handler = 0);
658
+
659
+ static VALUE call(VALUE ruby_arg0, VALUE ruby_arg1);
660
+
661
+ private:
662
+ Func func_;
663
+ Exception_Handler const * handler_;
664
+ };
665
+
666
+ // ---------------------------------------------------------------------
667
+ template<typename Func_T, typename Ret_T, typename Arg0_T>
668
+ class Auto_Function_Wrapper<Func_T, Ret_T, Arg0_T>
669
+ : public Wrapped_Function
670
+ {
671
+ public:
672
+ // typedef Ret_T (*Func)(Arg0_T);
673
+ typedef Func_T Func;
674
+
675
+ static const int Num_Args = 0;
676
+
677
+ Auto_Function_Wrapper(
678
+ Func func,
679
+ Exception_Handler const * handler = 0);
680
+
681
+ static VALUE call(VALUE ruby_arg0);
682
+
683
+ private:
684
+ Func func_;
685
+ Exception_Handler const * handler_;
686
+ };
687
+
688
+ template<typename Func_T, typename Arg0_T>
689
+ class Auto_Function_Wrapper<Func_T, void, Arg0_T>
690
+ : public Wrapped_Function
691
+ {
692
+ public:
693
+ // typedef void (*Func)(Arg0_T);
694
+ typedef Func_T Func;
695
+
696
+ static const int Num_Args = 0;
697
+
698
+ Auto_Function_Wrapper(
699
+ Func func,
700
+ Exception_Handler const * handler = 0);
701
+
702
+ static VALUE call(VALUE ruby_arg0);
703
+
704
+ private:
705
+ Func func_;
706
+ Exception_Handler const * handler_;
707
+ };
708
+
709
+ // ---------------------------------------------------------------------
710
+ #endif // DOXYGEN
711
+
712
+ } // namespace detail
713
+
714
+ } // namespace Rice
715
+
716
+ #include "Auto_Function_Wrapper.ipp"
717
+
718
+ #endif // Rice__detail__Auto_Function_Wrapper__hpp_
719
+