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
@@ -0,0 +1,147 @@
1
+ // This is a generated file. DO NOT EDIT!!
2
+ #include "../protect.hpp"
3
+ #include "../to_from_ruby.hpp"
4
+
5
+
6
+ inline Rice::Object Rice::Object::
7
+ call(Identifier id) const
8
+ {
9
+ VALUE args[] = { Qnil };
10
+ return protect(rb_funcall2, value(), id, 0, args);
11
+ }
12
+
13
+
14
+ template<typename T1>
15
+ inline Rice::Object Rice::Object::
16
+ call(Identifier id, T1 arg1) const
17
+ {
18
+ VALUE args[] = { to_ruby(arg1) };
19
+ return protect(rb_funcall2, value(), id, 1, args);
20
+ }
21
+
22
+
23
+ template<typename T1, typename T2>
24
+ inline Rice::Object Rice::Object::
25
+ call(Identifier id, T1 arg1, T2 arg2) const
26
+ {
27
+ VALUE args[] = { to_ruby(arg1), to_ruby(arg2) };
28
+ return protect(rb_funcall2, value(), id, 2, args);
29
+ }
30
+
31
+
32
+ template<typename T1, typename T2, typename T3>
33
+ inline Rice::Object Rice::Object::
34
+ call(Identifier id, T1 arg1, T2 arg2, T3 arg3) const
35
+ {
36
+ VALUE args[] = { to_ruby(arg1), to_ruby(arg2), to_ruby(arg3) };
37
+ return protect(rb_funcall2, value(), id, 3, args);
38
+ }
39
+
40
+
41
+ template<typename T1, typename T2, typename T3, typename T4>
42
+ inline Rice::Object Rice::Object::
43
+ call(Identifier id, T1 arg1, T2 arg2, T3 arg3, T4 arg4) const
44
+ {
45
+ VALUE args[] = { to_ruby(arg1), to_ruby(arg2), to_ruby(arg3), to_ruby(arg4) };
46
+ return protect(rb_funcall2, value(), id, 4, args);
47
+ }
48
+
49
+
50
+ template<typename T1, typename T2, typename T3, typename T4, typename T5>
51
+ inline Rice::Object Rice::Object::
52
+ call(Identifier id, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5) const
53
+ {
54
+ VALUE args[] = { to_ruby(arg1), to_ruby(arg2), to_ruby(arg3), to_ruby(arg4), to_ruby(arg5) };
55
+ return protect(rb_funcall2, value(), id, 5, args);
56
+ }
57
+
58
+
59
+ template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6>
60
+ inline Rice::Object Rice::Object::
61
+ call(Identifier id, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6) const
62
+ {
63
+ VALUE args[] = { to_ruby(arg1), to_ruby(arg2), to_ruby(arg3), to_ruby(arg4), to_ruby(arg5), to_ruby(arg6) };
64
+ return protect(rb_funcall2, value(), id, 6, args);
65
+ }
66
+
67
+
68
+ template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7>
69
+ inline Rice::Object Rice::Object::
70
+ call(Identifier id, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7) const
71
+ {
72
+ VALUE args[] = { to_ruby(arg1), to_ruby(arg2), to_ruby(arg3), to_ruby(arg4), to_ruby(arg5), to_ruby(arg6), to_ruby(arg7) };
73
+ return protect(rb_funcall2, value(), id, 7, args);
74
+ }
75
+
76
+
77
+ template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8>
78
+ inline Rice::Object Rice::Object::
79
+ call(Identifier id, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8) const
80
+ {
81
+ VALUE args[] = { to_ruby(arg1), to_ruby(arg2), to_ruby(arg3), to_ruby(arg4), to_ruby(arg5), to_ruby(arg6), to_ruby(arg7), to_ruby(arg8) };
82
+ return protect(rb_funcall2, value(), id, 8, args);
83
+ }
84
+
85
+
86
+ template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9>
87
+ inline Rice::Object Rice::Object::
88
+ call(Identifier id, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9) const
89
+ {
90
+ VALUE args[] = { to_ruby(arg1), to_ruby(arg2), to_ruby(arg3), to_ruby(arg4), to_ruby(arg5), to_ruby(arg6), to_ruby(arg7), to_ruby(arg8), to_ruby(arg9) };
91
+ return protect(rb_funcall2, value(), id, 9, args);
92
+ }
93
+
94
+
95
+ template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10>
96
+ inline Rice::Object Rice::Object::
97
+ call(Identifier id, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10) const
98
+ {
99
+ VALUE args[] = { to_ruby(arg1), to_ruby(arg2), to_ruby(arg3), to_ruby(arg4), to_ruby(arg5), to_ruby(arg6), to_ruby(arg7), to_ruby(arg8), to_ruby(arg9), to_ruby(arg10) };
100
+ return protect(rb_funcall2, value(), id, 10, args);
101
+ }
102
+
103
+
104
+ template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11>
105
+ inline Rice::Object Rice::Object::
106
+ call(Identifier id, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11) const
107
+ {
108
+ VALUE args[] = { to_ruby(arg1), to_ruby(arg2), to_ruby(arg3), to_ruby(arg4), to_ruby(arg5), to_ruby(arg6), to_ruby(arg7), to_ruby(arg8), to_ruby(arg9), to_ruby(arg10), to_ruby(arg11) };
109
+ return protect(rb_funcall2, value(), id, 11, args);
110
+ }
111
+
112
+
113
+ template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12>
114
+ inline Rice::Object Rice::Object::
115
+ call(Identifier id, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12) const
116
+ {
117
+ VALUE args[] = { to_ruby(arg1), to_ruby(arg2), to_ruby(arg3), to_ruby(arg4), to_ruby(arg5), to_ruby(arg6), to_ruby(arg7), to_ruby(arg8), to_ruby(arg9), to_ruby(arg10), to_ruby(arg11), to_ruby(arg12) };
118
+ return protect(rb_funcall2, value(), id, 12, args);
119
+ }
120
+
121
+
122
+ template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13>
123
+ inline Rice::Object Rice::Object::
124
+ call(Identifier id, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12, T13 arg13) const
125
+ {
126
+ VALUE args[] = { to_ruby(arg1), to_ruby(arg2), to_ruby(arg3), to_ruby(arg4), to_ruby(arg5), to_ruby(arg6), to_ruby(arg7), to_ruby(arg8), to_ruby(arg9), to_ruby(arg10), to_ruby(arg11), to_ruby(arg12), to_ruby(arg13) };
127
+ return protect(rb_funcall2, value(), id, 13, args);
128
+ }
129
+
130
+
131
+ template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14>
132
+ inline Rice::Object Rice::Object::
133
+ call(Identifier id, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12, T13 arg13, T14 arg14) const
134
+ {
135
+ VALUE args[] = { to_ruby(arg1), to_ruby(arg2), to_ruby(arg3), to_ruby(arg4), to_ruby(arg5), to_ruby(arg6), to_ruby(arg7), to_ruby(arg8), to_ruby(arg9), to_ruby(arg10), to_ruby(arg11), to_ruby(arg12), to_ruby(arg13), to_ruby(arg14) };
136
+ return protect(rb_funcall2, value(), id, 14, args);
137
+ }
138
+
139
+
140
+ template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15>
141
+ inline Rice::Object Rice::Object::
142
+ call(Identifier id, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12, T13 arg13, T14 arg14, T15 arg15) const
143
+ {
144
+ VALUE args[] = { to_ruby(arg1), to_ruby(arg2), to_ruby(arg3), to_ruby(arg4), to_ruby(arg5), to_ruby(arg6), to_ruby(arg7), to_ruby(arg8), to_ruby(arg9), to_ruby(arg10), to_ruby(arg11), to_ruby(arg12), to_ruby(arg13), to_ruby(arg14), to_ruby(arg15) };
145
+ return protect(rb_funcall2, value(), id, 15, args);
146
+ }
147
+
@@ -0,0 +1,27 @@
1
+ #include "protect.hpp"
2
+ #include "../Exception.hpp"
3
+ #include "../Jump_Tag.hpp"
4
+
5
+ #ifndef TAG_RAISE
6
+ #define TAG_RAISE 0x6
7
+ #endif
8
+
9
+ VALUE Rice::detail::
10
+ protect(
11
+ RUBY_VALUE_FUNC f,
12
+ VALUE arg)
13
+ {
14
+ int state = 0;
15
+ VALUE retval = rb_protect(f, arg, &state);
16
+ if(state != 0)
17
+ {
18
+ if(state == TAG_RAISE && ruby_errinfo != Qnil)
19
+ {
20
+ // TODO: convert NoMemoryError into bad_alloc?
21
+ throw Rice::Exception(ruby_errinfo);
22
+ }
23
+ throw Jump_Tag(state);
24
+ }
25
+ return retval;
26
+ }
27
+
@@ -0,0 +1,34 @@
1
+ #ifndef Rice__detail__protect__hpp_
2
+ #define Rice__detail__protect__hpp_
3
+
4
+ #include "ruby.hpp"
5
+
6
+ /*! \file
7
+ * \brief Functions for making exception-safe calls into Ruby code.
8
+ * These are the building blocks for building other exception-safe
9
+ * helper functions.
10
+ */
11
+
12
+ namespace Rice
13
+ {
14
+
15
+ namespace detail
16
+ {
17
+
18
+ //! Call the given function, converting Ruby exceptions to C++
19
+ //! exceptions.
20
+ /*! Call the function f with the parameter arg If f raises a Ruby
21
+ * exception, then the exception is re-thrown as an Exception. If f
22
+ * exits with any other non-zero tag (e.g. a Symbol is thrown), then the
23
+ * tag is re-thrown as a Jump_Tag.
24
+ */
25
+ VALUE protect(
26
+ RUBY_VALUE_FUNC f,
27
+ VALUE arg);
28
+
29
+ } // namespace detail
30
+
31
+ } // namespace Rice
32
+
33
+ #endif // Rice__detail__protect__hpp_
34
+
@@ -0,0 +1,21 @@
1
+ #ifndef Rice__detail__remove_const__hpp_
2
+ #define Rice__detail__remove_const__hpp_
3
+
4
+ namespace Rice
5
+ {
6
+
7
+ namespace detail
8
+ {
9
+
10
+ template<typename T>
11
+ struct remove_const { typedef T Type; };
12
+
13
+ template<typename T>
14
+ struct remove_const<T const> { typedef T Type; };
15
+
16
+ } // namespace detail
17
+
18
+ } // namespace Rice
19
+
20
+ #endif // Rice__detail__remove_const__hpp_
21
+
@@ -0,0 +1,85 @@
1
+ #ifndef Rice__detail__ruby__hpp_
2
+ #define Rice__detail__ruby__hpp_
3
+
4
+ /*! \file
5
+ * \brief Hacks for addressing incompatibilities between various Ruby
6
+ * versions.
7
+ */
8
+
9
+ #include <cmath>
10
+
11
+ // missing.h that comes with the one-click installer doesn't properly
12
+ // check for double-definition of isinf
13
+ #ifdef isinf
14
+ #define HAVE_ISINF
15
+ #endif
16
+
17
+ #include <ruby.h>
18
+
19
+ // TODO: Is there a way to ensure that this is Ruby's version.h?
20
+ #include <version.h>
21
+
22
+ #ifdef WIN32
23
+ #include "win32.hpp"
24
+ #endif
25
+
26
+ // This causes problems with certain C++ libraries
27
+ #undef TYPE
28
+
29
+ //! A function that takes a VALUE as a parameter and returns a VALUE.
30
+ // TODO: Casting from a C++ function to an extern "C" function won't
31
+ // work on all platforms. I'm not sure what to do about this.
32
+ extern "C" typedef VALUE (*RUBY_VALUE_FUNC)(VALUE);
33
+
34
+ // Fix Ruby RUBY_METHOD_FUNC from macro to typedef
35
+ #if defined(RUBY_METHOD_FUNC)
36
+ # undef RUBY_METHOD_FUNC
37
+ # if RUBY_VERSION_CODE <= 166
38
+ extern "C" typedef VALUE (*RUBY_METHOD_FUNC)();
39
+ # else
40
+ extern "C" typedef VALUE (*RUBY_METHOD_FUNC)(ANYARGS);
41
+ # endif
42
+ #endif
43
+
44
+ // Some functions have the wrong prototype on Ruby 1.6. Casting from a
45
+ // C++ function to an extern "C" function won't result in correct
46
+ // behavior on all platforms. Fortunately this has been fixed in newer
47
+ // versions of Ruby.
48
+ #if RUBY_VERSION_CODE < 170
49
+ namespace Exc_Ruby
50
+ {
51
+ extern "C" typedef VALUE
52
+ (*Rb_Protect_Signature)(RUBY_VALUE_FUNC, VALUE, int *);
53
+ extern "C" typedef void
54
+ (*Rb_Gc_Mark_Signature)(VALUE);
55
+ extern "C" typedef void
56
+ (*Rb_Set_End_Proc_Signature)(void (*)(VALUE), VALUE);
57
+ }
58
+ //! Ruby 1.6 has the wrong signature for rb_protect.
59
+ # define rb_protect(f, arg, state) \
60
+ ((::Exc_Ruby::Rb_Protect_Signature)(rb_protect))(f, arg, state)
61
+ //! Ruby 1.6 has the wrong signature for rb_gc_mark.
62
+ # define rb_gc_mark(value) \
63
+ ((::Exc_Ruby::Rb_Gc_Mark_Signature)(rb_gc_mark))(value)
64
+ //! Ruby 1.6 has the wrong signature for rb_set_end_proc.
65
+ # define rb_set_end_proc(f,v) \
66
+ ((::Exc_Ruby::Rb_Set_End_Proc_Signature)(rb_set_end_proc))(f, v)
67
+ #endif
68
+
69
+ #ifndef RSTRING_LEN
70
+ #define RSTRING_LEN(str) RSTRING(str)->len
71
+ #endif
72
+
73
+ #ifndef RSTRING_PTR
74
+ #define RSTRING_PTR(str) RSTRING(str)->ptr
75
+ #endif
76
+
77
+ // ruby.h has a few defines that conflict with Visual Studio's STL
78
+ #if defined(_MSC_VER)
79
+ #undef write
80
+ #undef read
81
+ #undef bind
82
+ #endif
83
+
84
+ #endif // Rice__detail__ruby__hpp_
85
+
@@ -0,0 +1,13 @@
1
+ #ifndef Rice__detail__rubysig__hpp_
2
+ #define Rice__detail__rubysig__hpp_
3
+
4
+ /**
5
+ * Helper header for the rubysig.h ruby include file, which does
6
+ * not have extern "C"
7
+ */
8
+
9
+ extern "C" {
10
+ #include "rubysig.h"
11
+ }
12
+
13
+ #endif
@@ -0,0 +1,56 @@
1
+ #ifndef Exc_Ruby___cpp__st__hpp_
2
+ #define Exc_Ruby___cpp__st__hpp_
3
+
4
+ /*! \file
5
+ * \brief Hacks to allow functions in st.h to be called from C++
6
+ * programs.
7
+ */
8
+
9
+ #include "ruby.hpp"
10
+
11
+ // Ruby doesn't put extern "C" around st.h
12
+
13
+ extern "C"
14
+ {
15
+ #include "st.h"
16
+ }
17
+
18
+ // Older versions of Ruby don't have proper signatures for the st_
19
+ // functions
20
+
21
+ #if RUBY_VERSION_CODE < 180
22
+
23
+ typedef char * st_data_t;
24
+
25
+ namespace Exc_Ruby
26
+ {
27
+
28
+ namespace detail
29
+ {
30
+
31
+ extern "C" typedef int (*St_Insert_Signature)(
32
+ st_table * table,
33
+ st_data_t key,
34
+ st_data_t * value);
35
+ extern "C" typedef int (*St_Lookup_Signature)(
36
+ st_table * table,
37
+ st_data_t key,
38
+ st_data_t * value);
39
+ extern "C" typedef st_table* (*St_Init_Table_Signature)(
40
+ struct st_hash_type * type);
41
+
42
+ #define st_insert(table, key, value) \
43
+ ((::Exc_Ruby::detail::St_Insert_Signature)(st_insert))(table, key, value)
44
+ #define st_lookup(table, key, value) \
45
+ ((::Exc_Ruby::detail::St_Lookup_Signature)(st_lookup))(table, key, value)
46
+ #define st_init_table(type) \
47
+ ((::Exc_Ruby::detail::St_Init_Table_Signature)(st_init_table))(type)
48
+
49
+ } // namespace detail
50
+
51
+ } // namespace Exc_Ruby
52
+
53
+ #endif // RUBY_VERSION_CODE < 180
54
+
55
+ #endif // Exc_Ruby___cpp__st__hpp_
56
+
@@ -0,0 +1,16 @@
1
+ #ifndef Rice__detail__to_ruby__hpp_
2
+ #define Rice__detail__to_ruby__hpp_
3
+
4
+ namespace Rice
5
+ {
6
+ namespace detail
7
+ {
8
+ template<typename T>
9
+ struct to_ruby_
10
+ {
11
+ static Rice::Object convert(T const & x);
12
+ };
13
+ } // detail
14
+ } // Rice
15
+
16
+ #endif // Rice__detail__to_ruby__hpp_
@@ -0,0 +1,10 @@
1
+ template<typename T>
2
+ Rice::Object Rice::detail::to_ruby_<T>::
3
+ convert(T const & x)
4
+ {
5
+ // Should produce a compile-time error
6
+ enum { no_to_ruby_conversion_defined = -1 };
7
+ char x_[no_to_ruby_conversion_defined];
8
+ return Qnil;
9
+ }
10
+
@@ -0,0 +1,16 @@
1
+ #ifndef Rice__detail__win32__hpp_
2
+ #define Rice__detail__win32__hpp_
3
+
4
+ /*! \file
5
+ * \brief Undefine all the evil macros that are defined in win32.h
6
+ */
7
+
8
+ // None of these macros are used in Ruby header files
9
+ #undef bind
10
+ #undef read
11
+ #undef write
12
+ #undef send
13
+ #undef recv
14
+ #undef times
15
+
16
+ #endif // Rice__detail__win32__hpp_
@@ -0,0 +1,288 @@
1
+ #ifndef Rice__detail__wrap_function__hpp_
2
+ #define Rice__detail__wrap_function__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
+ #include "Wrapped_Function.hpp"
12
+
13
+ namespace Rice
14
+ {
15
+
16
+ namespace detail
17
+ {
18
+
19
+ #ifdef DOXYGEN
20
+
21
+ #else
22
+
23
+ template<typename Ret_T, typename Arg0_T>
24
+ Wrapped_Function * wrap_function(
25
+ Ret_T (*func)(Arg0_T),
26
+ Exception_Handler const * handler = 0);
27
+
28
+ template<typename Ret_T, typename Self_T>
29
+ Wrapped_Function * wrap_function(
30
+ Ret_T (Self_T::*func)(),
31
+ Exception_Handler const * handler = 0);
32
+
33
+ template<typename Ret_T, typename Self_T>
34
+ Wrapped_Function * wrap_function(
35
+ Ret_T (Self_T::*func)() const,
36
+ Exception_Handler const * handler = 0);
37
+
38
+ // ---------------------------------------------------------------------
39
+ template<typename Ret_T, typename Arg0_T, typename Arg1_T>
40
+ Wrapped_Function * wrap_function(
41
+ Ret_T (*func)(Arg0_T, Arg1_T),
42
+ Exception_Handler const * handler = 0);
43
+
44
+ template<typename Ret_T, typename Self_T, typename Arg1_T>
45
+ Wrapped_Function * wrap_function(
46
+ Ret_T (Self_T::*func)(Arg1_T),
47
+ Exception_Handler const * handler = 0);
48
+
49
+ template<typename Ret_T, typename Self_T, typename Arg1_T>
50
+ Wrapped_Function * wrap_function(
51
+ Ret_T (Self_T::*func)(Arg1_T) const,
52
+ Exception_Handler const * handler = 0);
53
+
54
+ // ---------------------------------------------------------------------
55
+ template<typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T>
56
+ Wrapped_Function * wrap_function(
57
+ Ret_T (*func)(Arg0_T, Arg1_T, Arg2_T),
58
+ Exception_Handler const * handler = 0);
59
+
60
+ template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T>
61
+ Wrapped_Function * wrap_function(
62
+ Ret_T (Self_T::*func)(Arg1_T, Arg2_T),
63
+ Exception_Handler const * handler = 0);
64
+
65
+ template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T>
66
+ Wrapped_Function * wrap_function(
67
+ Ret_T (Self_T::*func)(Arg1_T, Arg2_T) const,
68
+ Exception_Handler const * handler = 0);
69
+
70
+ // ---------------------------------------------------------------------
71
+ template<typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T>
72
+ Wrapped_Function * wrap_function(
73
+ Ret_T (*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T),
74
+ Exception_Handler const * handler = 0);
75
+
76
+ template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T>
77
+ Wrapped_Function * wrap_function(
78
+ Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T),
79
+ Exception_Handler const * handler = 0);
80
+
81
+ template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T>
82
+ Wrapped_Function * wrap_function(
83
+ Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T) const,
84
+ Exception_Handler const * handler = 0);
85
+
86
+ // ---------------------------------------------------------------------
87
+ template<typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T>
88
+ Wrapped_Function * wrap_function(
89
+ Ret_T (*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T),
90
+ Exception_Handler const * handler = 0);
91
+
92
+ template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T>
93
+ Wrapped_Function * wrap_function(
94
+ Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T),
95
+ Exception_Handler const * handler = 0);
96
+
97
+ template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T>
98
+ Wrapped_Function * wrap_function(
99
+ Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T) const,
100
+ Exception_Handler const * handler = 0);
101
+
102
+ // ---------------------------------------------------------------------
103
+ template<typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T>
104
+ Wrapped_Function * wrap_function(
105
+ Ret_T (*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T),
106
+ Exception_Handler const * handler = 0);
107
+
108
+ template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T>
109
+ Wrapped_Function * wrap_function(
110
+ Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T),
111
+ Exception_Handler const * handler = 0);
112
+
113
+ template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T>
114
+ Wrapped_Function * wrap_function(
115
+ Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T) const,
116
+ Exception_Handler const * handler = 0);
117
+
118
+ // ---------------------------------------------------------------------
119
+ template<typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T>
120
+ Wrapped_Function * wrap_function(
121
+ Ret_T (*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T),
122
+ Exception_Handler const * handler = 0);
123
+
124
+ template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T>
125
+ Wrapped_Function * wrap_function(
126
+ Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T),
127
+ Exception_Handler const * handler = 0);
128
+
129
+ template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T>
130
+ Wrapped_Function * wrap_function(
131
+ Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T) const,
132
+ Exception_Handler const * handler = 0);
133
+
134
+ // ---------------------------------------------------------------------
135
+ template<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>
136
+ Wrapped_Function * wrap_function(
137
+ Ret_T (*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T),
138
+ Exception_Handler const * handler = 0);
139
+
140
+ template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T>
141
+ Wrapped_Function * wrap_function(
142
+ Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T),
143
+ Exception_Handler const * handler = 0);
144
+
145
+ template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T>
146
+ Wrapped_Function * wrap_function(
147
+ Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T) const,
148
+ Exception_Handler const * handler = 0);
149
+
150
+ // ---------------------------------------------------------------------
151
+ template<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>
152
+ Wrapped_Function * wrap_function(
153
+ Ret_T (*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T),
154
+ Exception_Handler const * handler = 0);
155
+
156
+ template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T>
157
+ Wrapped_Function * wrap_function(
158
+ Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T),
159
+ Exception_Handler const * handler = 0);
160
+
161
+ template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T>
162
+ Wrapped_Function * wrap_function(
163
+ Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T) const,
164
+ Exception_Handler const * handler = 0);
165
+
166
+ // ---------------------------------------------------------------------
167
+ template<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>
168
+ Wrapped_Function * wrap_function(
169
+ Ret_T (*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T),
170
+ Exception_Handler const * handler = 0);
171
+
172
+ template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T>
173
+ Wrapped_Function * wrap_function(
174
+ Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T),
175
+ Exception_Handler const * handler = 0);
176
+
177
+ template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T>
178
+ Wrapped_Function * wrap_function(
179
+ Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T) const,
180
+ Exception_Handler const * handler = 0);
181
+
182
+ // ---------------------------------------------------------------------
183
+ template<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>
184
+ Wrapped_Function * wrap_function(
185
+ 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),
186
+ Exception_Handler const * handler = 0);
187
+
188
+ template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T>
189
+ Wrapped_Function * wrap_function(
190
+ Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T),
191
+ Exception_Handler const * handler = 0);
192
+
193
+ template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T>
194
+ Wrapped_Function * wrap_function(
195
+ Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T) const,
196
+ Exception_Handler const * handler = 0);
197
+
198
+ // ---------------------------------------------------------------------
199
+ template<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>
200
+ Wrapped_Function * wrap_function(
201
+ 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),
202
+ Exception_Handler const * handler = 0);
203
+
204
+ template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T>
205
+ Wrapped_Function * wrap_function(
206
+ Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T),
207
+ Exception_Handler const * handler = 0);
208
+
209
+ template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T>
210
+ Wrapped_Function * wrap_function(
211
+ Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T) const,
212
+ Exception_Handler const * handler = 0);
213
+
214
+ // ---------------------------------------------------------------------
215
+ template<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>
216
+ Wrapped_Function * wrap_function(
217
+ 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),
218
+ Exception_Handler const * handler = 0);
219
+
220
+ template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T>
221
+ Wrapped_Function * wrap_function(
222
+ Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T),
223
+ Exception_Handler const * handler = 0);
224
+
225
+ template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T>
226
+ Wrapped_Function * wrap_function(
227
+ Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T) const,
228
+ Exception_Handler const * handler = 0);
229
+
230
+ // ---------------------------------------------------------------------
231
+ template<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>
232
+ Wrapped_Function * wrap_function(
233
+ 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),
234
+ Exception_Handler const * handler = 0);
235
+
236
+ template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T, typename Arg13_T>
237
+ Wrapped_Function * wrap_function(
238
+ Ret_T (Self_T::*func)(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),
239
+ Exception_Handler const * handler = 0);
240
+
241
+ template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T, typename Arg13_T>
242
+ Wrapped_Function * wrap_function(
243
+ Ret_T (Self_T::*func)(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) const,
244
+ Exception_Handler const * handler = 0);
245
+
246
+ // ---------------------------------------------------------------------
247
+ template<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>
248
+ Wrapped_Function * wrap_function(
249
+ 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),
250
+ Exception_Handler const * handler = 0);
251
+
252
+ template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T, typename Arg13_T, typename Arg14_T>
253
+ Wrapped_Function * wrap_function(
254
+ Ret_T (Self_T::*func)(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),
255
+ Exception_Handler const * handler = 0);
256
+
257
+ template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T, typename Arg13_T, typename Arg14_T>
258
+ Wrapped_Function * wrap_function(
259
+ Ret_T (Self_T::*func)(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) const,
260
+ Exception_Handler const * handler = 0);
261
+
262
+ // ---------------------------------------------------------------------
263
+ template<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, typename Arg15_T>
264
+ Wrapped_Function * wrap_function(
265
+ 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),
266
+ Exception_Handler const * handler = 0);
267
+
268
+ template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T, typename Arg13_T, typename Arg14_T, typename Arg15_T>
269
+ Wrapped_Function * wrap_function(
270
+ Ret_T (Self_T::*func)(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),
271
+ Exception_Handler const * handler = 0);
272
+
273
+ template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T, typename Arg13_T, typename Arg14_T, typename Arg15_T>
274
+ Wrapped_Function * wrap_function(
275
+ Ret_T (Self_T::*func)(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) const,
276
+ Exception_Handler const * handler = 0);
277
+
278
+ // ---------------------------------------------------------------------
279
+ #endif // DOXYGEN
280
+
281
+ } // namespace detail
282
+
283
+ } // namespace Rice
284
+
285
+ #include "wrap_function.ipp"
286
+
287
+ #endif // Rice__detail__wrap_function__hpp_
288
+