00001 #ifndef Exc_Ruby__detail__define_method_and_auto_wrap__hpp_
00002 #define Exc_Ruby__detail__define_method_and_auto_wrap__hpp_
00003
00004
00005
00006 #include <ruby.h>
00007
00008
00009 #undef TYPE
00010
00011 namespace Exc_Ruby
00012 {
00013
00014 namespace detail
00015 {
00016
00017 #ifdef DOXYGEN
00018
00019 #else
00020
00021 template<typename Ret_T, typename Arg0_T>
00022 void define_method_and_auto_wrap(
00023 VALUE klass,
00024 char const * name,
00025 Ret_T (*func)(Arg0_T),
00026 Exception_Handler const * handler = 0);
00027
00028 template<typename Ret_T, typename Self_T>
00029 void define_method_and_auto_wrap(
00030 VALUE klass,
00031 char const * name,
00032 Ret_T (Self_T::*func)(),
00033 Exception_Handler const * handler = 0);
00034
00035
00036 template<typename Ret_T, typename Arg0_T, typename Arg1_T>
00037 void define_method_and_auto_wrap(
00038 VALUE klass,
00039 char const * name,
00040 Ret_T (*func)(Arg0_T, Arg1_T),
00041 Exception_Handler const * handler = 0);
00042
00043 template<typename Ret_T, typename Self_T, typename Arg1_T>
00044 void define_method_and_auto_wrap(
00045 VALUE klass,
00046 char const * name,
00047 Ret_T (Self_T::*func)(Arg1_T),
00048 Exception_Handler const * handler = 0);
00049
00050
00051 template<typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T>
00052 void define_method_and_auto_wrap(
00053 VALUE klass,
00054 char const * name,
00055 Ret_T (*func)(Arg0_T, Arg1_T, Arg2_T),
00056 Exception_Handler const * handler = 0);
00057
00058 template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T>
00059 void define_method_and_auto_wrap(
00060 VALUE klass,
00061 char const * name,
00062 Ret_T (Self_T::*func)(Arg1_T, Arg2_T),
00063 Exception_Handler const * handler = 0);
00064
00065
00066 template<typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T>
00067 void define_method_and_auto_wrap(
00068 VALUE klass,
00069 char const * name,
00070 Ret_T (*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T),
00071 Exception_Handler const * handler = 0);
00072
00073 template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T>
00074 void define_method_and_auto_wrap(
00075 VALUE klass,
00076 char const * name,
00077 Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T),
00078 Exception_Handler const * handler = 0);
00079
00080
00081 template<typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T>
00082 void define_method_and_auto_wrap(
00083 VALUE klass,
00084 char const * name,
00085 Ret_T (*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T),
00086 Exception_Handler const * handler = 0);
00087
00088 template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T>
00089 void define_method_and_auto_wrap(
00090 VALUE klass,
00091 char const * name,
00092 Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T),
00093 Exception_Handler const * handler = 0);
00094
00095
00096 template<typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T>
00097 void define_method_and_auto_wrap(
00098 VALUE klass,
00099 char const * name,
00100 Ret_T (*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T),
00101 Exception_Handler const * handler = 0);
00102
00103 template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T>
00104 void define_method_and_auto_wrap(
00105 VALUE klass,
00106 char const * name,
00107 Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T),
00108 Exception_Handler const * handler = 0);
00109
00110
00111 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>
00112 void define_method_and_auto_wrap(
00113 VALUE klass,
00114 char const * name,
00115 Ret_T (*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T),
00116 Exception_Handler const * handler = 0);
00117
00118 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>
00119 void define_method_and_auto_wrap(
00120 VALUE klass,
00121 char const * name,
00122 Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T),
00123 Exception_Handler const * handler = 0);
00124
00125
00126 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>
00127 void define_method_and_auto_wrap(
00128 VALUE klass,
00129 char const * name,
00130 Ret_T (*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T),
00131 Exception_Handler const * handler = 0);
00132
00133 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>
00134 void define_method_and_auto_wrap(
00135 VALUE klass,
00136 char const * name,
00137 Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T),
00138 Exception_Handler const * handler = 0);
00139
00140
00141 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>
00142 void define_method_and_auto_wrap(
00143 VALUE klass,
00144 char const * name,
00145 Ret_T (*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T),
00146 Exception_Handler const * handler = 0);
00147
00148 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>
00149 void define_method_and_auto_wrap(
00150 VALUE klass,
00151 char const * name,
00152 Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T),
00153 Exception_Handler const * handler = 0);
00154
00155
00156 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>
00157 void define_method_and_auto_wrap(
00158 VALUE klass,
00159 char const * name,
00160 Ret_T (*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T),
00161 Exception_Handler const * handler = 0);
00162
00163 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>
00164 void define_method_and_auto_wrap(
00165 VALUE klass,
00166 char const * name,
00167 Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T),
00168 Exception_Handler const * handler = 0);
00169
00170
00171 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>
00172 void define_method_and_auto_wrap(
00173 VALUE klass,
00174 char const * name,
00175 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),
00176 Exception_Handler const * handler = 0);
00177
00178 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>
00179 void define_method_and_auto_wrap(
00180 VALUE klass,
00181 char const * name,
00182 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),
00183 Exception_Handler const * handler = 0);
00184
00185
00186 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>
00187 void define_method_and_auto_wrap(
00188 VALUE klass,
00189 char const * name,
00190 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),
00191 Exception_Handler const * handler = 0);
00192
00193 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>
00194 void define_method_and_auto_wrap(
00195 VALUE klass,
00196 char const * name,
00197 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),
00198 Exception_Handler const * handler = 0);
00199
00200
00201 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>
00202 void define_method_and_auto_wrap(
00203 VALUE klass,
00204 char const * name,
00205 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),
00206 Exception_Handler const * handler = 0);
00207
00208 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>
00209 void define_method_and_auto_wrap(
00210 VALUE klass,
00211 char const * name,
00212 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),
00213 Exception_Handler const * handler = 0);
00214
00215
00216 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>
00217 void define_method_and_auto_wrap(
00218 VALUE klass,
00219 char const * name,
00220 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),
00221 Exception_Handler const * handler = 0);
00222
00223 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>
00224 void define_method_and_auto_wrap(
00225 VALUE klass,
00226 char const * name,
00227 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),
00228 Exception_Handler const * handler = 0);
00229
00230
00231 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>
00232 void define_method_and_auto_wrap(
00233 VALUE klass,
00234 char const * name,
00235 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),
00236 Exception_Handler const * handler = 0);
00237
00238 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>
00239 void define_method_and_auto_wrap(
00240 VALUE klass,
00241 char const * name,
00242 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),
00243 Exception_Handler const * handler = 0);
00244
00245
00246 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>
00247 void define_method_and_auto_wrap(
00248 VALUE klass,
00249 char const * name,
00250 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),
00251 Exception_Handler const * handler = 0);
00252
00253 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>
00254 void define_method_and_auto_wrap(
00255 VALUE klass,
00256 char const * name,
00257 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),
00258 Exception_Handler const * handler = 0);
00259
00260
00261 #endif // DOXYGEN
00262
00263 }
00264
00265 }
00266
00267 #include "define_method_and_auto_wrap.ipp"
00268
00269 #endif // Exc_Ruby__detail__define_method_and_auto_wrap__hpp_
00270