rice 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/COPYING +23 -0
- data/Doxyfile +1253 -0
- data/Makefile.am +26 -0
- data/Makefile.in +736 -0
- data/README +881 -0
- data/README.mingw +8 -0
- data/bootstrap +8 -0
- data/config.guess +1535 -0
- data/config.sub +1644 -0
- data/configure +7310 -0
- data/configure.ac +48 -0
- data/depcomp +584 -0
- data/doxygen.ac +314 -0
- data/doxygen.am +186 -0
- data/install-sh +507 -0
- data/missing +367 -0
- data/post-autoconf.rb +22 -0
- data/post-automake.rb +28 -0
- data/rice/Address_Registration_Guard.hpp +7 -0
- data/rice/Address_Registration_Guard.ipp +34 -0
- data/rice/Address_Registration_Guard_defn.hpp +65 -0
- data/rice/Allocation_Strategies.hpp +37 -0
- data/rice/Array.hpp +220 -0
- data/rice/Array.ipp +262 -0
- data/rice/Builtin_Object.hpp +8 -0
- data/rice/Builtin_Object.ipp +50 -0
- data/rice/Builtin_Object_defn.hpp +51 -0
- data/rice/Class.cpp +57 -0
- data/rice/Class.hpp +8 -0
- data/rice/Class.ipp +4 -0
- data/rice/Class_defn.hpp +83 -0
- data/rice/Constructor.hpp +189 -0
- data/rice/Critical_Guard.hpp +34 -0
- data/rice/Critical_Guard.ipp +20 -0
- data/rice/Data_Object.hpp +127 -0
- data/rice/Data_Object.ipp +129 -0
- data/rice/Data_Type.cpp +21 -0
- data/rice/Data_Type.hpp +8 -0
- data/rice/Data_Type.ipp +227 -0
- data/rice/Data_Type_defn.hpp +219 -0
- data/rice/Data_Type_fwd.hpp +12 -0
- data/rice/Enum.hpp +118 -0
- data/rice/Enum.ipp +246 -0
- data/rice/Exception.cpp +59 -0
- data/rice/Exception.hpp +69 -0
- data/rice/Exception_Base.hpp +30 -0
- data/rice/Exception_Base.ipp +11 -0
- data/rice/Hash.hpp +206 -0
- data/rice/Hash.ipp +336 -0
- data/rice/Identifier.cpp +8 -0
- data/rice/Identifier.hpp +50 -0
- data/rice/Identifier.ipp +33 -0
- data/rice/Jump_Tag.hpp +24 -0
- data/rice/Makefile.am +112 -0
- data/rice/Makefile.in +675 -0
- data/rice/Module.cpp +75 -0
- data/rice/Module.hpp +8 -0
- data/rice/Module.ipp +6 -0
- data/rice/Module_defn.hpp +87 -0
- data/rice/Module_impl.hpp +237 -0
- data/rice/Module_impl.ipp +302 -0
- data/rice/Object.cpp +153 -0
- data/rice/Object.hpp +8 -0
- data/rice/Object.ipp +19 -0
- data/rice/Object_defn.hpp +183 -0
- data/rice/Require_Guard.hpp +21 -0
- data/rice/String.cpp +93 -0
- data/rice/String.hpp +88 -0
- data/rice/Struct.cpp +117 -0
- data/rice/Struct.hpp +162 -0
- data/rice/Struct.ipp +26 -0
- data/rice/Symbol.cpp +25 -0
- data/rice/Symbol.hpp +66 -0
- data/rice/Symbol.ipp +44 -0
- data/rice/VM.cpp +79 -0
- data/rice/VM.hpp +27 -0
- data/rice/config.hpp +23 -0
- data/rice/config.hpp.in +22 -0
- data/rice/detail/Auto_Function_Wrapper.hpp +719 -0
- data/rice/detail/Auto_Function_Wrapper.ipp +1354 -0
- data/rice/detail/Auto_Member_Function_Wrapper.hpp +685 -0
- data/rice/detail/Auto_Member_Function_Wrapper.ipp +1435 -0
- data/rice/detail/Caster.hpp +61 -0
- data/rice/detail/Exception_Handler.hpp +118 -0
- data/rice/detail/Iterator_Definer.hpp +98 -0
- data/rice/detail/Not_Copyable.hpp +25 -0
- data/rice/detail/Wrapped_Function.hpp +33 -0
- data/rice/detail/check_ruby_type.cpp +21 -0
- data/rice/detail/check_ruby_type.hpp +23 -0
- data/rice/detail/creation_funcs.hpp +45 -0
- data/rice/detail/creation_funcs.ipp +62 -0
- data/rice/detail/default_allocation_func.hpp +23 -0
- data/rice/detail/default_allocation_func.ipp +11 -0
- data/rice/detail/define_method_and_auto_wrap.hpp +27 -0
- data/rice/detail/define_method_and_auto_wrap.ipp +20 -0
- data/rice/detail/env.hpp +13 -0
- data/rice/detail/from_ruby.hpp +43 -0
- data/rice/detail/from_ruby.ipp +74 -0
- data/rice/detail/method_data.cpp +105 -0
- data/rice/detail/method_data.hpp +33 -0
- data/rice/detail/node.hpp +13 -0
- data/rice/detail/object_call.hpp +85 -0
- data/rice/detail/object_call.ipp +147 -0
- data/rice/detail/protect.cpp +27 -0
- data/rice/detail/protect.hpp +34 -0
- data/rice/detail/remove_const.hpp +21 -0
- data/rice/detail/ruby.hpp +85 -0
- data/rice/detail/rubysig.hpp +13 -0
- data/rice/detail/st.hpp +56 -0
- data/rice/detail/to_ruby.hpp +16 -0
- data/rice/detail/to_ruby.ipp +10 -0
- data/rice/detail/win32.hpp +16 -0
- data/rice/detail/wrap_function.hpp +288 -0
- data/rice/detail/wrap_function.ipp +473 -0
- data/rice/generate_code.rb +1092 -0
- data/rice/global_function.hpp +16 -0
- data/rice/global_function.ipp +11 -0
- data/rice/protect.hpp +91 -0
- data/rice/protect.ipp +803 -0
- data/rice/ruby_try_catch.hpp +86 -0
- data/rice/to_from_ruby.hpp +8 -0
- data/rice/to_from_ruby.ipp +299 -0
- data/rice/to_from_ruby_defn.hpp +71 -0
- data/ruby.ac +105 -0
- data/ruby/Makefile.am +1 -0
- data/ruby/Makefile.in +493 -0
- data/ruby/lib/Makefile.am +3 -0
- data/ruby/lib/Makefile.in +369 -0
- data/ruby/lib/mkmf-rice.rb.in +199 -0
- data/sample/Makefile.am +47 -0
- data/sample/Makefile.in +375 -0
- data/sample/enum/extconf.rb +3 -0
- data/sample/enum/sample_enum.cpp +54 -0
- data/sample/enum/test.rb +8 -0
- data/sample/inheritance/animals.cpp +98 -0
- data/sample/inheritance/extconf.rb +3 -0
- data/sample/inheritance/test.rb +7 -0
- data/sample/map/extconf.rb +3 -0
- data/sample/map/map.cpp +81 -0
- data/sample/map/test.rb +7 -0
- data/test/Makefile.am +44 -0
- data/test/Makefile.in +575 -0
- data/test/test_Address_Registration_Guard.cpp +43 -0
- data/test/test_Allocation_Strategies.cpp +77 -0
- data/test/test_Array.cpp +241 -0
- data/test/test_Builtin_Object.cpp +72 -0
- data/test/test_Class.cpp +350 -0
- data/test/test_Constructor.cpp +30 -0
- data/test/test_Critical_Guard.cpp +47 -0
- data/test/test_Data_Object.cpp +235 -0
- data/test/test_Enum.cpp +162 -0
- data/test/test_Exception.cpp +46 -0
- data/test/test_Hash.cpp +195 -0
- data/test/test_Identifier.cpp +70 -0
- data/test/test_Jump_Tag.cpp +17 -0
- data/test/test_Module.cpp +253 -0
- data/test/test_Object.cpp +148 -0
- data/test/test_String.cpp +94 -0
- data/test/test_Struct.cpp +192 -0
- data/test/test_Symbol.cpp +63 -0
- data/test/test_To_From_Ruby.cpp +281 -0
- data/test/test_VM.cpp +26 -0
- data/test/test_rice.rb +30 -0
- data/test/unittest.cpp +136 -0
- data/test/unittest.hpp +292 -0
- 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
|
+
|
data/rice/detail/st.hpp
ADDED
@@ -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,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
|
+
|