00001 #ifndef Exc_Ruby__call_ruby_function__hpp_
00002 #define Exc_Ruby__call_ruby_function__hpp_
00003
00004
00005
00006 #include <ruby.h>
00007
00008
00009 #undef TYPE
00010
00011 #include "detail/template_helpers.hpp"
00012 namespace Exc_Ruby
00013 {
00014
00015 #ifdef DOXYGEN
00016
00021
00022
00034 VALUE call_ruby_function(Function f, T1 arg1, T2 arg2, ...);
00035 #else
00036
00037 template<typename Fun>
00038 VALUE call_ruby_function(Fun fun);
00039
00040 template<typename Fun, typename T1>
00041 VALUE call_ruby_function(Fun fun, T1 t1);
00042
00043 template<typename Fun, typename T1, typename T2>
00044 VALUE call_ruby_function(Fun fun, T1 t1, T2 t2);
00045
00046 template<typename Fun, typename T1, typename T2, typename T3>
00047 VALUE call_ruby_function(Fun fun, T1 t1, T2 t2, T3 t3);
00048
00049 template<typename Fun, typename T1, typename T2, typename T3, typename T4>
00050 VALUE call_ruby_function(Fun fun, T1 t1, T2 t2, T3 t3, T4 t4);
00051
00052 template<typename Fun, typename T1, typename T2, typename T3, typename T4, typename T5>
00053 VALUE call_ruby_function(Fun fun, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5);
00054
00055 template<typename Fun, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6>
00056 VALUE call_ruby_function(Fun fun, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6);
00057
00058 template<typename Fun, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7>
00059 VALUE call_ruby_function(Fun fun, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7);
00060
00061 template<typename Fun, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8>
00062 VALUE call_ruby_function(Fun fun, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8);
00063
00064 template<typename Fun, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9>
00065 VALUE call_ruby_function(Fun fun, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9);
00066
00067 template<typename Fun, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10>
00068 VALUE call_ruby_function(Fun fun, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10);
00069
00070 template<typename Fun, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11>
00071 VALUE call_ruby_function(Fun fun, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11);
00072
00073 template<typename Fun, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12>
00074 VALUE call_ruby_function(Fun fun, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12);
00075
00076 template<typename Fun, 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>
00077 VALUE call_ruby_function(Fun fun, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13);
00078
00079 template<typename Fun, 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>
00080 VALUE call_ruby_function(Fun fun, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14);
00081
00082 template<typename Fun, 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>
00083 VALUE call_ruby_function(Fun fun, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15);
00084
00085 #endif // DOXYGEN
00086
00087 }
00088
00089 #include "call_ruby_function.ipp"
00090
00091 #endif // Exc_Ruby__call_ruby_function__hpp_
00092