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,23 @@
|
|
1
|
+
#ifndef Rice__detail__default_allocation_func__hpp_
|
2
|
+
#define Rice__detail__default_allocation_func__hpp_
|
3
|
+
|
4
|
+
namespace Rice
|
5
|
+
{
|
6
|
+
|
7
|
+
namespace detail
|
8
|
+
{
|
9
|
+
|
10
|
+
//! A default implementation of an allocate_func. This function does no
|
11
|
+
//! actual allocation; the initialize_func can later do the real
|
12
|
+
//! allocation with: DATA_PTR(self) = new Type(arg1, arg2, ...)
|
13
|
+
template<typename T>
|
14
|
+
VALUE default_allocation_func(VALUE klass);
|
15
|
+
|
16
|
+
} // detail
|
17
|
+
|
18
|
+
} // Rice
|
19
|
+
|
20
|
+
#include "default_allocation_func.ipp"
|
21
|
+
|
22
|
+
#endif // Rice__detail__default_allocation_func__hpp_
|
23
|
+
|
@@ -0,0 +1,27 @@
|
|
1
|
+
#ifndef Rice__detail__define_method_and_auto_wrap__hpp_
|
2
|
+
#define Rice__detail__define_method_and_auto_wrap__hpp_
|
3
|
+
|
4
|
+
#include "ruby.hpp"
|
5
|
+
|
6
|
+
namespace Rice
|
7
|
+
{
|
8
|
+
|
9
|
+
namespace detail
|
10
|
+
{
|
11
|
+
|
12
|
+
class Exception_Handler;
|
13
|
+
|
14
|
+
template<typename Fun_T>
|
15
|
+
void define_method_and_auto_wrap(
|
16
|
+
VALUE klass,
|
17
|
+
char const * name,
|
18
|
+
Fun_T function,
|
19
|
+
Exception_Handler const * handler = 0);
|
20
|
+
|
21
|
+
} // detail
|
22
|
+
|
23
|
+
} // Rice
|
24
|
+
|
25
|
+
#include "define_method_and_auto_wrap.ipp"
|
26
|
+
|
27
|
+
#endif // Rice__detail__define_method_and_auto_wrap__hpp_
|
@@ -0,0 +1,20 @@
|
|
1
|
+
#ifndef Rice__detail__define_method_and_auto_wrap__ipp_
|
2
|
+
#define Rice__detail__define_method_and_auto_wrap__ipp_
|
3
|
+
|
4
|
+
#include "wrap_function.hpp"
|
5
|
+
#include "method_data.hpp"
|
6
|
+
#include "Exception_Handler.hpp"
|
7
|
+
|
8
|
+
template<typename Fun_T>
|
9
|
+
void Rice::detail::
|
10
|
+
define_method_and_auto_wrap(
|
11
|
+
VALUE klass,
|
12
|
+
char const * name,
|
13
|
+
Fun_T function,
|
14
|
+
Exception_Handler const * handler)
|
15
|
+
{
|
16
|
+
Wrapped_Function * f(wrap_function(function, handler));
|
17
|
+
define_method_with_data(klass, name, f->func(), f->arity(), f);
|
18
|
+
}
|
19
|
+
|
20
|
+
#endif // Rice__detail__define_method_and_auto_wrap__ipp_
|
data/rice/detail/env.hpp
ADDED
@@ -0,0 +1,43 @@
|
|
1
|
+
#ifndef Rice__detail__from_ruby__hpp_
|
2
|
+
#define Rice__detail__from_ruby__hpp_
|
3
|
+
|
4
|
+
namespace Rice
|
5
|
+
{
|
6
|
+
namespace detail
|
7
|
+
{
|
8
|
+
template<typename T>
|
9
|
+
struct from_ruby_
|
10
|
+
{
|
11
|
+
typedef T Retval_T;
|
12
|
+
|
13
|
+
static T convert(Rice::Object x);
|
14
|
+
};
|
15
|
+
|
16
|
+
template<typename T>
|
17
|
+
struct from_ruby_<T *>
|
18
|
+
{
|
19
|
+
typedef T * Retval_T;
|
20
|
+
|
21
|
+
static T * convert(Rice::Object x);
|
22
|
+
};
|
23
|
+
|
24
|
+
template<typename T>
|
25
|
+
struct from_ruby_<T const *>
|
26
|
+
{
|
27
|
+
typedef T const * Retval_T;
|
28
|
+
|
29
|
+
static T const * convert(Rice::Object x);
|
30
|
+
};
|
31
|
+
|
32
|
+
template<typename T>
|
33
|
+
struct from_ruby_<T &>
|
34
|
+
{
|
35
|
+
typedef T & Retval_T;
|
36
|
+
|
37
|
+
static T & convert(Rice::Object x);
|
38
|
+
};
|
39
|
+
} // detail
|
40
|
+
} // Rice
|
41
|
+
|
42
|
+
#endif // Rice__detail__from_ruby__hpp_
|
43
|
+
|
@@ -0,0 +1,74 @@
|
|
1
|
+
#ifndef Rice__detail__from_ruby__ipp_
|
2
|
+
#define Rice__detail__from_ruby__ipp_
|
3
|
+
|
4
|
+
#include "../Data_Type.hpp"
|
5
|
+
#include <typeinfo>
|
6
|
+
|
7
|
+
#if 0
|
8
|
+
namespace Rice
|
9
|
+
{
|
10
|
+
namespace detail
|
11
|
+
{
|
12
|
+
template<typename T>
|
13
|
+
struct unpointer
|
14
|
+
{
|
15
|
+
// can't unpointer a non-pointer
|
16
|
+
};
|
17
|
+
|
18
|
+
template<typename T>
|
19
|
+
struct unpointer<T *>
|
20
|
+
{
|
21
|
+
typedef T type;
|
22
|
+
};
|
23
|
+
}
|
24
|
+
}
|
25
|
+
#endif
|
26
|
+
|
27
|
+
template<typename T>
|
28
|
+
T Rice::detail::from_ruby_<T>::
|
29
|
+
convert(Rice::Object x)
|
30
|
+
{
|
31
|
+
if(rb_type(x.value()) == T_DATA)
|
32
|
+
{
|
33
|
+
return *Data_Type<T>::from_ruby(x);
|
34
|
+
}
|
35
|
+
else
|
36
|
+
{
|
37
|
+
std::string s("No conversion defined for ");
|
38
|
+
s += typeid(T).name();
|
39
|
+
throw std::runtime_error(s.c_str());
|
40
|
+
}
|
41
|
+
}
|
42
|
+
|
43
|
+
template<typename T>
|
44
|
+
T * Rice::detail::from_ruby_<T *>::
|
45
|
+
convert(Rice::Object x)
|
46
|
+
{
|
47
|
+
if(rb_type(x.value()) == T_DATA)
|
48
|
+
{
|
49
|
+
return Data_Type<T>::from_ruby(x);
|
50
|
+
}
|
51
|
+
else
|
52
|
+
{
|
53
|
+
std::string s("No conversion defined for ");
|
54
|
+
s += typeid(T).name();
|
55
|
+
throw std::runtime_error(s.c_str());
|
56
|
+
}
|
57
|
+
}
|
58
|
+
|
59
|
+
template<typename T>
|
60
|
+
T const * Rice::detail::from_ruby_<T const *>::
|
61
|
+
convert(Rice::Object x)
|
62
|
+
{
|
63
|
+
return from_ruby<T *>(x);
|
64
|
+
}
|
65
|
+
|
66
|
+
template<typename T>
|
67
|
+
T & Rice::detail::from_ruby_<T &>::
|
68
|
+
convert(Rice::Object x)
|
69
|
+
{
|
70
|
+
return *from_ruby<T *>(x);
|
71
|
+
}
|
72
|
+
|
73
|
+
#endif // Rice__detail__from_ruby__ipp_
|
74
|
+
|
@@ -0,0 +1,105 @@
|
|
1
|
+
#include "method_data.hpp"
|
2
|
+
|
3
|
+
#include "st.hpp"
|
4
|
+
#include "ruby.hpp"
|
5
|
+
|
6
|
+
#include <stdexcept>
|
7
|
+
|
8
|
+
#include "env.hpp"
|
9
|
+
#include "node.hpp"
|
10
|
+
|
11
|
+
// Every C function in ruby (pre-YARV) is stored like this:
|
12
|
+
//
|
13
|
+
// NODE_METHOD
|
14
|
+
// |- (u1) noex - method visibility
|
15
|
+
// +- (u2) body
|
16
|
+
// +- NODE_CFUNC
|
17
|
+
// |- (u1) cfnc - function to call
|
18
|
+
// +- (u2) argc - number of arguments
|
19
|
+
//
|
20
|
+
// We use the unused third member (u3) of the CFUNC node to store method
|
21
|
+
// data.
|
22
|
+
//
|
23
|
+
// We could use the unused third member of the METHOD node, but then the
|
24
|
+
// method data would not be copied when the method is aliased. The
|
25
|
+
// result then would be a segfault whenver the method is called.
|
26
|
+
//
|
27
|
+
// Using the third member of the METHOD node would also prevent adding
|
28
|
+
// the method atomically (rather, the method would be added and then the
|
29
|
+
// node later modified to contain the data).
|
30
|
+
//
|
31
|
+
// When the function is called, it can retrieve the defined data by
|
32
|
+
// calling method_data(). We then do a lookup in the class to find the
|
33
|
+
// node for the method's bdoy. This is necessary, because there's no
|
34
|
+
// way to get the node of a called function directly. However, by using
|
35
|
+
// the class's method table, we can do one lookup instead of two (one to
|
36
|
+
// find the class data and another to find the method data).
|
37
|
+
|
38
|
+
namespace
|
39
|
+
{
|
40
|
+
|
41
|
+
NODE * get_method_node(VALUE klass, ID id)
|
42
|
+
{
|
43
|
+
union { VALUE value; RClass * ptr; } class_u = { klass };
|
44
|
+
union { ID id; st_data_t data; } id_u = { id };
|
45
|
+
st_data_t node_data;
|
46
|
+
if (!st_lookup(class_u.ptr->m_tbl, id_u.data, &node_data))
|
47
|
+
{
|
48
|
+
throw std::runtime_error("Could not find method node");
|
49
|
+
}
|
50
|
+
union { st_data_t data; RNode * node; } node_u = { node_data };
|
51
|
+
return node_u.node;
|
52
|
+
}
|
53
|
+
|
54
|
+
NODE * get_method_body(VALUE klass, ID id)
|
55
|
+
{
|
56
|
+
NODE * node = get_method_node(klass, id);
|
57
|
+
|
58
|
+
if (!node->nd_body)
|
59
|
+
{
|
60
|
+
throw std::runtime_error("Method has no body");
|
61
|
+
}
|
62
|
+
|
63
|
+
return node->nd_body;
|
64
|
+
}
|
65
|
+
|
66
|
+
} // namespace
|
67
|
+
|
68
|
+
void * Rice::detail::
|
69
|
+
method_data()
|
70
|
+
{
|
71
|
+
NODE * node = get_method_body(
|
72
|
+
ruby_frame->last_class,
|
73
|
+
ruby_frame->last_func);
|
74
|
+
|
75
|
+
return (void *)node->nd_entry;
|
76
|
+
}
|
77
|
+
|
78
|
+
void Rice::detail::
|
79
|
+
define_method_with_data(
|
80
|
+
VALUE klass,
|
81
|
+
char const * name,
|
82
|
+
RUBY_METHOD_FUNC func,
|
83
|
+
int num_args,
|
84
|
+
void * data)
|
85
|
+
{
|
86
|
+
NODE * node = NEW_CFUNC(func, num_args);
|
87
|
+
node->nd_entry = (global_entry *)data;
|
88
|
+
#if RUBY_VERSION_CODE >= 180
|
89
|
+
rb_add_method(klass, rb_intern(name), node, NOEX_PUBLIC);
|
90
|
+
#else
|
91
|
+
rb_add_method(klass, rb_intern(name), node, NOEX_PUBLIC|NOEX_CFUNC);
|
92
|
+
rb_enable_super(klass, name);
|
93
|
+
#endif
|
94
|
+
}
|
95
|
+
|
96
|
+
void Rice::detail::
|
97
|
+
set_method_data(
|
98
|
+
VALUE klass,
|
99
|
+
char const * name,
|
100
|
+
void * data)
|
101
|
+
{
|
102
|
+
NODE * node = get_method_body(klass, rb_intern(name));
|
103
|
+
node->nd_entry = (global_entry *)data;
|
104
|
+
}
|
105
|
+
|
@@ -0,0 +1,33 @@
|
|
1
|
+
#ifndef Rice__method_data__hpp_
|
2
|
+
#define Rice__method_data__hpp_
|
3
|
+
|
4
|
+
#include "ruby.hpp"
|
5
|
+
|
6
|
+
namespace Rice
|
7
|
+
{
|
8
|
+
|
9
|
+
namespace detail
|
10
|
+
{
|
11
|
+
|
12
|
+
// Retrieve the data associated with the last called method.
|
13
|
+
void * method_data();
|
14
|
+
|
15
|
+
// Define a method and attach data to it.
|
16
|
+
void define_method_with_data(
|
17
|
+
VALUE klass,
|
18
|
+
char const * name,
|
19
|
+
RUBY_METHOD_FUNC func,
|
20
|
+
int num_args,
|
21
|
+
void * data);
|
22
|
+
|
23
|
+
// Set the data associated with a method.
|
24
|
+
void set_method_data(
|
25
|
+
VALUE klass,
|
26
|
+
char const * name,
|
27
|
+
void * data);
|
28
|
+
|
29
|
+
} // namespace detail
|
30
|
+
|
31
|
+
} // namespace Rice
|
32
|
+
|
33
|
+
#endif // Rice__method_data__hpp_
|
@@ -0,0 +1,85 @@
|
|
1
|
+
// This is a generated file. DO NOT EDIT!!
|
2
|
+
#ifdef DOXYGEN
|
3
|
+
|
4
|
+
//! Call the Ruby method specified by 'id' on object 'obj'.
|
5
|
+
/*! Pass in arguments (arg1, arg2, ...). The arguments will be converted to
|
6
|
+
* Ruby objects with to_ruby<>. The return value will automatically be
|
7
|
+
* converted to type Retval_T with from_ruby<>.
|
8
|
+
*
|
9
|
+
* E.g.:
|
10
|
+
* \code
|
11
|
+
* float y = x.call<float>("foo", z, 42);
|
12
|
+
* \endcode
|
13
|
+
*/
|
14
|
+
template<typename Retval_T>
|
15
|
+
Retval_T call(Identifier id, T1 arg1, T2 arg2, ...) const;
|
16
|
+
|
17
|
+
//! Version of call which defaults to Object return type.
|
18
|
+
Object call(Identifier id, T1 arg1, T2 arg2, ...) const;
|
19
|
+
#else
|
20
|
+
|
21
|
+
|
22
|
+
Object call(Identifier id) const;
|
23
|
+
|
24
|
+
|
25
|
+
template<typename T1>
|
26
|
+
Object call(Identifier id, T1 arg1) const;
|
27
|
+
|
28
|
+
|
29
|
+
template<typename T1, typename T2>
|
30
|
+
Object call(Identifier id, T1 arg1, T2 arg2) const;
|
31
|
+
|
32
|
+
|
33
|
+
template<typename T1, typename T2, typename T3>
|
34
|
+
Object call(Identifier id, T1 arg1, T2 arg2, T3 arg3) const;
|
35
|
+
|
36
|
+
|
37
|
+
template<typename T1, typename T2, typename T3, typename T4>
|
38
|
+
Object call(Identifier id, T1 arg1, T2 arg2, T3 arg3, T4 arg4) const;
|
39
|
+
|
40
|
+
|
41
|
+
template<typename T1, typename T2, typename T3, typename T4, typename T5>
|
42
|
+
Object call(Identifier id, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5) const;
|
43
|
+
|
44
|
+
|
45
|
+
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6>
|
46
|
+
Object call(Identifier id, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6) const;
|
47
|
+
|
48
|
+
|
49
|
+
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7>
|
50
|
+
Object call(Identifier id, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7) const;
|
51
|
+
|
52
|
+
|
53
|
+
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8>
|
54
|
+
Object call(Identifier id, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8) const;
|
55
|
+
|
56
|
+
|
57
|
+
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9>
|
58
|
+
Object call(Identifier id, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9) const;
|
59
|
+
|
60
|
+
|
61
|
+
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10>
|
62
|
+
Object call(Identifier id, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10) const;
|
63
|
+
|
64
|
+
|
65
|
+
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11>
|
66
|
+
Object 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;
|
67
|
+
|
68
|
+
|
69
|
+
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>
|
70
|
+
Object 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;
|
71
|
+
|
72
|
+
|
73
|
+
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>
|
74
|
+
Object 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;
|
75
|
+
|
76
|
+
|
77
|
+
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>
|
78
|
+
Object 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;
|
79
|
+
|
80
|
+
|
81
|
+
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>
|
82
|
+
Object 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;
|
83
|
+
|
84
|
+
|
85
|
+
#endif // DOXYGEN
|