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