00001 #ifndef Exc_Ruby__detail__Auto_Member_Function_Wrapper__hpp_
00002 #define Exc_Ruby__detail__Auto_Member_Function_Wrapper__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 Self_T>
00022 class Auto_Member_Function_Wrapper_0
00023 {
00024 public:
00025 typedef Ret_T (Self_T::*Func)();
00026
00027 Auto_Member_Function_Wrapper_0(
00028 Func func,
00029 Exception_Handler const * handler = 0);
00030
00031 static VALUE call(VALUE self);
00032
00033 private:
00034 Func func_;
00035 Exception_Handler const * handler_;
00036 };
00037
00038 template<typename Self_T>
00039 class Auto_Member_Function_Wrapper_0<void, Self_T>
00040 {
00041 public:
00042 typedef void (Self_T::*Func)();
00043
00044 Auto_Member_Function_Wrapper_0(
00045 Func func,
00046 Exception_Handler const * handler = 0);
00047
00048 static VALUE call(VALUE self);
00049
00050 private:
00051 Func func_;
00052 Exception_Handler const * handler_;
00053 };
00054
00055
00056 template<typename Ret_T, typename Self_T, typename Arg1_T>
00057 class Auto_Member_Function_Wrapper_1
00058 {
00059 public:
00060 typedef Ret_T (Self_T::*Func)(Arg1_T);
00061
00062 Auto_Member_Function_Wrapper_1(
00063 Func func,
00064 Exception_Handler const * handler = 0);
00065
00066 static VALUE call(VALUE self, VALUE ruby_arg1);
00067
00068 private:
00069 Func func_;
00070 Exception_Handler const * handler_;
00071 };
00072
00073 template<typename Self_T, typename Arg1_T>
00074 class Auto_Member_Function_Wrapper_1<void, Self_T, Arg1_T>
00075 {
00076 public:
00077 typedef void (Self_T::*Func)(Arg1_T);
00078
00079 Auto_Member_Function_Wrapper_1(
00080 Func func,
00081 Exception_Handler const * handler = 0);
00082
00083 static VALUE call(VALUE self, VALUE ruby_arg1);
00084
00085 private:
00086 Func func_;
00087 Exception_Handler const * handler_;
00088 };
00089
00090
00091 template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T>
00092 class Auto_Member_Function_Wrapper_2
00093 {
00094 public:
00095 typedef Ret_T (Self_T::*Func)(Arg1_T, Arg2_T);
00096
00097 Auto_Member_Function_Wrapper_2(
00098 Func func,
00099 Exception_Handler const * handler = 0);
00100
00101 static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2);
00102
00103 private:
00104 Func func_;
00105 Exception_Handler const * handler_;
00106 };
00107
00108 template<typename Self_T, typename Arg1_T, typename Arg2_T>
00109 class Auto_Member_Function_Wrapper_2<void, Self_T, Arg1_T, Arg2_T>
00110 {
00111 public:
00112 typedef void (Self_T::*Func)(Arg1_T, Arg2_T);
00113
00114 Auto_Member_Function_Wrapper_2(
00115 Func func,
00116 Exception_Handler const * handler = 0);
00117
00118 static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2);
00119
00120 private:
00121 Func func_;
00122 Exception_Handler const * handler_;
00123 };
00124
00125
00126 template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T>
00127 class Auto_Member_Function_Wrapper_3
00128 {
00129 public:
00130 typedef Ret_T (Self_T::*Func)(Arg1_T, Arg2_T, Arg3_T);
00131
00132 Auto_Member_Function_Wrapper_3(
00133 Func func,
00134 Exception_Handler const * handler = 0);
00135
00136 static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3);
00137
00138 private:
00139 Func func_;
00140 Exception_Handler const * handler_;
00141 };
00142
00143 template<typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T>
00144 class Auto_Member_Function_Wrapper_3<void, Self_T, Arg1_T, Arg2_T, Arg3_T>
00145 {
00146 public:
00147 typedef void (Self_T::*Func)(Arg1_T, Arg2_T, Arg3_T);
00148
00149 Auto_Member_Function_Wrapper_3(
00150 Func func,
00151 Exception_Handler const * handler = 0);
00152
00153 static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3);
00154
00155 private:
00156 Func func_;
00157 Exception_Handler const * handler_;
00158 };
00159
00160
00161 template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T>
00162 class Auto_Member_Function_Wrapper_4
00163 {
00164 public:
00165 typedef Ret_T (Self_T::*Func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T);
00166
00167 Auto_Member_Function_Wrapper_4(
00168 Func func,
00169 Exception_Handler const * handler = 0);
00170
00171 static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4);
00172
00173 private:
00174 Func func_;
00175 Exception_Handler const * handler_;
00176 };
00177
00178 template<typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T>
00179 class Auto_Member_Function_Wrapper_4<void, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T>
00180 {
00181 public:
00182 typedef void (Self_T::*Func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T);
00183
00184 Auto_Member_Function_Wrapper_4(
00185 Func func,
00186 Exception_Handler const * handler = 0);
00187
00188 static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4);
00189
00190 private:
00191 Func func_;
00192 Exception_Handler const * handler_;
00193 };
00194
00195
00196 template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T>
00197 class Auto_Member_Function_Wrapper_5
00198 {
00199 public:
00200 typedef Ret_T (Self_T::*Func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T);
00201
00202 Auto_Member_Function_Wrapper_5(
00203 Func func,
00204 Exception_Handler const * handler = 0);
00205
00206 static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5);
00207
00208 private:
00209 Func func_;
00210 Exception_Handler const * handler_;
00211 };
00212
00213 template<typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T>
00214 class Auto_Member_Function_Wrapper_5<void, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T>
00215 {
00216 public:
00217 typedef void (Self_T::*Func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T);
00218
00219 Auto_Member_Function_Wrapper_5(
00220 Func func,
00221 Exception_Handler const * handler = 0);
00222
00223 static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5);
00224
00225 private:
00226 Func func_;
00227 Exception_Handler const * handler_;
00228 };
00229
00230
00231 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>
00232 class Auto_Member_Function_Wrapper_6
00233 {
00234 public:
00235 typedef Ret_T (Self_T::*Func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T);
00236
00237 Auto_Member_Function_Wrapper_6(
00238 Func func,
00239 Exception_Handler const * handler = 0);
00240
00241 static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6);
00242
00243 private:
00244 Func func_;
00245 Exception_Handler const * handler_;
00246 };
00247
00248 template<typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T>
00249 class Auto_Member_Function_Wrapper_6<void, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T>
00250 {
00251 public:
00252 typedef void (Self_T::*Func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T);
00253
00254 Auto_Member_Function_Wrapper_6(
00255 Func func,
00256 Exception_Handler const * handler = 0);
00257
00258 static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6);
00259
00260 private:
00261 Func func_;
00262 Exception_Handler const * handler_;
00263 };
00264
00265
00266 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>
00267 class Auto_Member_Function_Wrapper_7
00268 {
00269 public:
00270 typedef Ret_T (Self_T::*Func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T);
00271
00272 Auto_Member_Function_Wrapper_7(
00273 Func func,
00274 Exception_Handler const * handler = 0);
00275
00276 static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7);
00277
00278 private:
00279 Func func_;
00280 Exception_Handler const * handler_;
00281 };
00282
00283 template<typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T>
00284 class Auto_Member_Function_Wrapper_7<void, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T>
00285 {
00286 public:
00287 typedef void (Self_T::*Func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T);
00288
00289 Auto_Member_Function_Wrapper_7(
00290 Func func,
00291 Exception_Handler const * handler = 0);
00292
00293 static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7);
00294
00295 private:
00296 Func func_;
00297 Exception_Handler const * handler_;
00298 };
00299
00300
00301 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>
00302 class Auto_Member_Function_Wrapper_8
00303 {
00304 public:
00305 typedef Ret_T (Self_T::*Func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T);
00306
00307 Auto_Member_Function_Wrapper_8(
00308 Func func,
00309 Exception_Handler const * handler = 0);
00310
00311 static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8);
00312
00313 private:
00314 Func func_;
00315 Exception_Handler const * handler_;
00316 };
00317
00318 template<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>
00319 class Auto_Member_Function_Wrapper_8<void, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T>
00320 {
00321 public:
00322 typedef void (Self_T::*Func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T);
00323
00324 Auto_Member_Function_Wrapper_8(
00325 Func func,
00326 Exception_Handler const * handler = 0);
00327
00328 static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8);
00329
00330 private:
00331 Func func_;
00332 Exception_Handler const * handler_;
00333 };
00334
00335
00336 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>
00337 class Auto_Member_Function_Wrapper_9
00338 {
00339 public:
00340 typedef Ret_T (Self_T::*Func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T);
00341
00342 Auto_Member_Function_Wrapper_9(
00343 Func func,
00344 Exception_Handler const * handler = 0);
00345
00346 static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8, VALUE ruby_arg9);
00347
00348 private:
00349 Func func_;
00350 Exception_Handler const * handler_;
00351 };
00352
00353 template<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>
00354 class Auto_Member_Function_Wrapper_9<void, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T>
00355 {
00356 public:
00357 typedef void (Self_T::*Func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T);
00358
00359 Auto_Member_Function_Wrapper_9(
00360 Func func,
00361 Exception_Handler const * handler = 0);
00362
00363 static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8, VALUE ruby_arg9);
00364
00365 private:
00366 Func func_;
00367 Exception_Handler const * handler_;
00368 };
00369
00370
00371 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>
00372 class Auto_Member_Function_Wrapper_10
00373 {
00374 public:
00375 typedef 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);
00376
00377 Auto_Member_Function_Wrapper_10(
00378 Func func,
00379 Exception_Handler const * handler = 0);
00380
00381 static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8, VALUE ruby_arg9, VALUE ruby_arg10);
00382
00383 private:
00384 Func func_;
00385 Exception_Handler const * handler_;
00386 };
00387
00388 template<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>
00389 class Auto_Member_Function_Wrapper_10<void, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T>
00390 {
00391 public:
00392 typedef void (Self_T::*Func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T);
00393
00394 Auto_Member_Function_Wrapper_10(
00395 Func func,
00396 Exception_Handler const * handler = 0);
00397
00398 static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8, VALUE ruby_arg9, VALUE ruby_arg10);
00399
00400 private:
00401 Func func_;
00402 Exception_Handler const * handler_;
00403 };
00404
00405
00406 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>
00407 class Auto_Member_Function_Wrapper_11
00408 {
00409 public:
00410 typedef 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);
00411
00412 Auto_Member_Function_Wrapper_11(
00413 Func func,
00414 Exception_Handler const * handler = 0);
00415
00416 static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8, VALUE ruby_arg9, VALUE ruby_arg10, VALUE ruby_arg11);
00417
00418 private:
00419 Func func_;
00420 Exception_Handler const * handler_;
00421 };
00422
00423 template<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>
00424 class Auto_Member_Function_Wrapper_11<void, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T>
00425 {
00426 public:
00427 typedef void (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);
00428
00429 Auto_Member_Function_Wrapper_11(
00430 Func func,
00431 Exception_Handler const * handler = 0);
00432
00433 static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8, VALUE ruby_arg9, VALUE ruby_arg10, VALUE ruby_arg11);
00434
00435 private:
00436 Func func_;
00437 Exception_Handler const * handler_;
00438 };
00439
00440
00441 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>
00442 class Auto_Member_Function_Wrapper_12
00443 {
00444 public:
00445 typedef 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);
00446
00447 Auto_Member_Function_Wrapper_12(
00448 Func func,
00449 Exception_Handler const * handler = 0);
00450
00451 static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8, VALUE ruby_arg9, VALUE ruby_arg10, VALUE ruby_arg11, VALUE ruby_arg12);
00452
00453 private:
00454 Func func_;
00455 Exception_Handler const * handler_;
00456 };
00457
00458 template<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>
00459 class Auto_Member_Function_Wrapper_12<void, Self_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>
00460 {
00461 public:
00462 typedef void (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);
00463
00464 Auto_Member_Function_Wrapper_12(
00465 Func func,
00466 Exception_Handler const * handler = 0);
00467
00468 static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8, VALUE ruby_arg9, VALUE ruby_arg10, VALUE ruby_arg11, VALUE ruby_arg12);
00469
00470 private:
00471 Func func_;
00472 Exception_Handler const * handler_;
00473 };
00474
00475
00476 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>
00477 class Auto_Member_Function_Wrapper_13
00478 {
00479 public:
00480 typedef 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);
00481
00482 Auto_Member_Function_Wrapper_13(
00483 Func func,
00484 Exception_Handler const * handler = 0);
00485
00486 static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8, VALUE ruby_arg9, VALUE ruby_arg10, VALUE ruby_arg11, VALUE ruby_arg12, VALUE ruby_arg13);
00487
00488 private:
00489 Func func_;
00490 Exception_Handler const * handler_;
00491 };
00492
00493 template<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>
00494 class Auto_Member_Function_Wrapper_13<void, Self_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>
00495 {
00496 public:
00497 typedef void (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);
00498
00499 Auto_Member_Function_Wrapper_13(
00500 Func func,
00501 Exception_Handler const * handler = 0);
00502
00503 static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8, VALUE ruby_arg9, VALUE ruby_arg10, VALUE ruby_arg11, VALUE ruby_arg12, VALUE ruby_arg13);
00504
00505 private:
00506 Func func_;
00507 Exception_Handler const * handler_;
00508 };
00509
00510
00511 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>
00512 class Auto_Member_Function_Wrapper_14
00513 {
00514 public:
00515 typedef 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);
00516
00517 Auto_Member_Function_Wrapper_14(
00518 Func func,
00519 Exception_Handler const * handler = 0);
00520
00521 static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8, VALUE ruby_arg9, VALUE ruby_arg10, VALUE ruby_arg11, VALUE ruby_arg12, VALUE ruby_arg13, VALUE ruby_arg14);
00522
00523 private:
00524 Func func_;
00525 Exception_Handler const * handler_;
00526 };
00527
00528 template<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>
00529 class Auto_Member_Function_Wrapper_14<void, Self_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>
00530 {
00531 public:
00532 typedef void (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);
00533
00534 Auto_Member_Function_Wrapper_14(
00535 Func func,
00536 Exception_Handler const * handler = 0);
00537
00538 static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8, VALUE ruby_arg9, VALUE ruby_arg10, VALUE ruby_arg11, VALUE ruby_arg12, VALUE ruby_arg13, VALUE ruby_arg14);
00539
00540 private:
00541 Func func_;
00542 Exception_Handler const * handler_;
00543 };
00544
00545
00546 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>
00547 class Auto_Member_Function_Wrapper_15
00548 {
00549 public:
00550 typedef 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);
00551
00552 Auto_Member_Function_Wrapper_15(
00553 Func func,
00554 Exception_Handler const * handler = 0);
00555
00556 static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8, VALUE ruby_arg9, VALUE ruby_arg10, VALUE ruby_arg11, VALUE ruby_arg12, VALUE ruby_arg13, VALUE ruby_arg14, VALUE ruby_arg15);
00557
00558 private:
00559 Func func_;
00560 Exception_Handler const * handler_;
00561 };
00562
00563 template<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>
00564 class Auto_Member_Function_Wrapper_15<void, Self_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>
00565 {
00566 public:
00567 typedef void (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);
00568
00569 Auto_Member_Function_Wrapper_15(
00570 Func func,
00571 Exception_Handler const * handler = 0);
00572
00573 static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8, VALUE ruby_arg9, VALUE ruby_arg10, VALUE ruby_arg11, VALUE ruby_arg12, VALUE ruby_arg13, VALUE ruby_arg14, VALUE ruby_arg15);
00574
00575 private:
00576 Func func_;
00577 Exception_Handler const * handler_;
00578 };
00579
00580
00581 #endif // DOXYGEN
00582
00583 }
00584
00585 }
00586
00587 #include "Auto_Member_Function_Wrapper.ipp"
00588
00589 #endif // Exc_Ruby__detail__Auto_Member_Function_Wrapper__hpp_
00590