00001 #ifndef Exc_Ruby__Constructor__hpp_
00002 #define Exc_Ruby__Constructor__hpp_
00003
00004
00005
00006 #include <ruby.h>
00007
00008
00009 #undef TYPE
00010
00011 namespace Exc_Ruby
00012 {
00013
00014 template<typename T, typename Arg0_T=void, typename Arg1_T=void, typename Arg2_T=void, typename Arg3_T=void, typename Arg4_T=void, typename Arg5_T=void, typename Arg6_T=void, typename Arg7_T=void, typename Arg8_T=void, typename Arg9_T=void, typename Arg10_T=void, typename Arg11_T=void, typename Arg12_T=void, typename Arg13_T=void, typename Arg14_T=void, typename Arg15_T=void>
00015 class Constructor
00016 {
00017 private:
00018 Constructor()
00019 {
00020 }
00021 };
00022
00023 class Constructor_Base_0
00024 {
00025 public:
00026 virtual ~Constructor_Base_0() { }
00027
00028 virtual VALUE call_impl(VALUE self) = 0;
00029
00030 static VALUE call(VALUE self)
00031 {
00032 void * data = rb_cpp_method_data();
00033 Constructor_Base_0 * constructor =
00034 static_cast<Constructor_Base_0 *>(data);
00035 return constructor->call_impl(self);
00036 }
00037 };
00038
00039 template<typename T>
00040 class Constructor<T, void, void, void, void, void, void, void, void, void, void, void, void, void, void, void, void>
00041 : public Constructor_Base_0
00042 {
00043 public:
00044 virtual VALUE call_impl(VALUE self)
00045 {
00046
00047 DATA_PTR(self) = new T();
00048 return Qnil;
00049 }
00050 };
00051
00052 class Constructor_Base_1
00053 {
00054 public:
00055 virtual ~Constructor_Base_1() { }
00056
00057 virtual VALUE call_impl(VALUE self, VALUE ruby_arg1) = 0;
00058
00059 static VALUE call(VALUE self, VALUE ruby_arg1)
00060 {
00061 void * data = rb_cpp_method_data();
00062 Constructor_Base_1 * constructor =
00063 static_cast<Constructor_Base_1 *>(data);
00064 return constructor->call_impl(self, ruby_arg1);
00065 }
00066 };
00067
00068 template<typename T, typename Arg1_T>
00069 class Constructor<T, Arg1_T, void, void, void, void, void, void, void, void, void, void, void, void, void, void, void>
00070 : public Constructor_Base_1
00071 {
00072 public:
00073 virtual VALUE call_impl(VALUE self, VALUE ruby_arg1)
00074 {
00075 Arg1_T arg1(from_ruby<Arg1_T>(ruby_arg1));
00076 DATA_PTR(self) = new T(arg1);
00077 return Qnil;
00078 }
00079 };
00080
00081 class Constructor_Base_2
00082 {
00083 public:
00084 virtual ~Constructor_Base_2() { }
00085
00086 virtual VALUE call_impl(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2) = 0;
00087
00088 static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2)
00089 {
00090 void * data = rb_cpp_method_data();
00091 Constructor_Base_2 * constructor =
00092 static_cast<Constructor_Base_2 *>(data);
00093 return constructor->call_impl(self, ruby_arg1, ruby_arg2);
00094 }
00095 };
00096
00097 template<typename T, typename Arg1_T, typename Arg2_T>
00098 class Constructor<T, Arg1_T, Arg2_T, void, void, void, void, void, void, void, void, void, void, void, void, void, void>
00099 : public Constructor_Base_2
00100 {
00101 public:
00102 virtual VALUE call_impl(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2)
00103 {
00104 Arg1_T arg1(from_ruby<Arg1_T>(ruby_arg1)); Arg2_T arg2(from_ruby<Arg2_T>(ruby_arg2));
00105 DATA_PTR(self) = new T(arg1, arg2);
00106 return Qnil;
00107 }
00108 };
00109
00110 class Constructor_Base_3
00111 {
00112 public:
00113 virtual ~Constructor_Base_3() { }
00114
00115 virtual VALUE call_impl(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3) = 0;
00116
00117 static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3)
00118 {
00119 void * data = rb_cpp_method_data();
00120 Constructor_Base_3 * constructor =
00121 static_cast<Constructor_Base_3 *>(data);
00122 return constructor->call_impl(self, ruby_arg1, ruby_arg2, ruby_arg3);
00123 }
00124 };
00125
00126 template<typename T, typename Arg1_T, typename Arg2_T, typename Arg3_T>
00127 class Constructor<T, Arg1_T, Arg2_T, Arg3_T, void, void, void, void, void, void, void, void, void, void, void, void, void>
00128 : public Constructor_Base_3
00129 {
00130 public:
00131 virtual VALUE call_impl(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3)
00132 {
00133 Arg1_T arg1(from_ruby<Arg1_T>(ruby_arg1)); Arg2_T arg2(from_ruby<Arg2_T>(ruby_arg2)); Arg3_T arg3(from_ruby<Arg3_T>(ruby_arg3));
00134 DATA_PTR(self) = new T(arg1, arg2, arg3);
00135 return Qnil;
00136 }
00137 };
00138
00139 class Constructor_Base_4
00140 {
00141 public:
00142 virtual ~Constructor_Base_4() { }
00143
00144 virtual VALUE call_impl(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4) = 0;
00145
00146 static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4)
00147 {
00148 void * data = rb_cpp_method_data();
00149 Constructor_Base_4 * constructor =
00150 static_cast<Constructor_Base_4 *>(data);
00151 return constructor->call_impl(self, ruby_arg1, ruby_arg2, ruby_arg3, ruby_arg4);
00152 }
00153 };
00154
00155 template<typename T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T>
00156 class Constructor<T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, void, void, void, void, void, void, void, void, void, void, void, void>
00157 : public Constructor_Base_4
00158 {
00159 public:
00160 virtual VALUE call_impl(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4)
00161 {
00162 Arg1_T arg1(from_ruby<Arg1_T>(ruby_arg1)); Arg2_T arg2(from_ruby<Arg2_T>(ruby_arg2)); Arg3_T arg3(from_ruby<Arg3_T>(ruby_arg3)); Arg4_T arg4(from_ruby<Arg4_T>(ruby_arg4));
00163 DATA_PTR(self) = new T(arg1, arg2, arg3, arg4);
00164 return Qnil;
00165 }
00166 };
00167
00168 class Constructor_Base_5
00169 {
00170 public:
00171 virtual ~Constructor_Base_5() { }
00172
00173 virtual VALUE call_impl(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5) = 0;
00174
00175 static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5)
00176 {
00177 void * data = rb_cpp_method_data();
00178 Constructor_Base_5 * constructor =
00179 static_cast<Constructor_Base_5 *>(data);
00180 return constructor->call_impl(self, ruby_arg1, ruby_arg2, ruby_arg3, ruby_arg4, ruby_arg5);
00181 }
00182 };
00183
00184 template<typename T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T>
00185 class Constructor<T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, void, void, void, void, void, void, void, void, void, void, void>
00186 : public Constructor_Base_5
00187 {
00188 public:
00189 virtual VALUE call_impl(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5)
00190 {
00191 Arg1_T arg1(from_ruby<Arg1_T>(ruby_arg1)); Arg2_T arg2(from_ruby<Arg2_T>(ruby_arg2)); Arg3_T arg3(from_ruby<Arg3_T>(ruby_arg3)); Arg4_T arg4(from_ruby<Arg4_T>(ruby_arg4)); Arg5_T arg5(from_ruby<Arg5_T>(ruby_arg5));
00192 DATA_PTR(self) = new T(arg1, arg2, arg3, arg4, arg5);
00193 return Qnil;
00194 }
00195 };
00196
00197 class Constructor_Base_6
00198 {
00199 public:
00200 virtual ~Constructor_Base_6() { }
00201
00202 virtual VALUE call_impl(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6) = 0;
00203
00204 static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6)
00205 {
00206 void * data = rb_cpp_method_data();
00207 Constructor_Base_6 * constructor =
00208 static_cast<Constructor_Base_6 *>(data);
00209 return constructor->call_impl(self, ruby_arg1, ruby_arg2, ruby_arg3, ruby_arg4, ruby_arg5, ruby_arg6);
00210 }
00211 };
00212
00213 template<typename T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T>
00214 class Constructor<T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, void, void, void, void, void, void, void, void, void, void>
00215 : public Constructor_Base_6
00216 {
00217 public:
00218 virtual VALUE call_impl(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6)
00219 {
00220 Arg1_T arg1(from_ruby<Arg1_T>(ruby_arg1)); Arg2_T arg2(from_ruby<Arg2_T>(ruby_arg2)); Arg3_T arg3(from_ruby<Arg3_T>(ruby_arg3)); Arg4_T arg4(from_ruby<Arg4_T>(ruby_arg4)); Arg5_T arg5(from_ruby<Arg5_T>(ruby_arg5)); Arg6_T arg6(from_ruby<Arg6_T>(ruby_arg6));
00221 DATA_PTR(self) = new T(arg1, arg2, arg3, arg4, arg5, arg6);
00222 return Qnil;
00223 }
00224 };
00225
00226 class Constructor_Base_7
00227 {
00228 public:
00229 virtual ~Constructor_Base_7() { }
00230
00231 virtual VALUE call_impl(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7) = 0;
00232
00233 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)
00234 {
00235 void * data = rb_cpp_method_data();
00236 Constructor_Base_7 * constructor =
00237 static_cast<Constructor_Base_7 *>(data);
00238 return constructor->call_impl(self, ruby_arg1, ruby_arg2, ruby_arg3, ruby_arg4, ruby_arg5, ruby_arg6, ruby_arg7);
00239 }
00240 };
00241
00242 template<typename T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T>
00243 class Constructor<T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, void, void, void, void, void, void, void, void, void>
00244 : public Constructor_Base_7
00245 {
00246 public:
00247 virtual VALUE call_impl(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7)
00248 {
00249 Arg1_T arg1(from_ruby<Arg1_T>(ruby_arg1)); Arg2_T arg2(from_ruby<Arg2_T>(ruby_arg2)); Arg3_T arg3(from_ruby<Arg3_T>(ruby_arg3)); Arg4_T arg4(from_ruby<Arg4_T>(ruby_arg4)); Arg5_T arg5(from_ruby<Arg5_T>(ruby_arg5)); Arg6_T arg6(from_ruby<Arg6_T>(ruby_arg6)); Arg7_T arg7(from_ruby<Arg7_T>(ruby_arg7));
00250 DATA_PTR(self) = new T(arg1, arg2, arg3, arg4, arg5, arg6, arg7);
00251 return Qnil;
00252 }
00253 };
00254
00255 class Constructor_Base_8
00256 {
00257 public:
00258 virtual ~Constructor_Base_8() { }
00259
00260 virtual VALUE call_impl(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) = 0;
00261
00262 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)
00263 {
00264 void * data = rb_cpp_method_data();
00265 Constructor_Base_8 * constructor =
00266 static_cast<Constructor_Base_8 *>(data);
00267 return constructor->call_impl(self, ruby_arg1, ruby_arg2, ruby_arg3, ruby_arg4, ruby_arg5, ruby_arg6, ruby_arg7, ruby_arg8);
00268 }
00269 };
00270
00271 template<typename 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>
00272 class Constructor<T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, void, void, void, void, void, void, void, void>
00273 : public Constructor_Base_8
00274 {
00275 public:
00276 virtual VALUE call_impl(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)
00277 {
00278 Arg1_T arg1(from_ruby<Arg1_T>(ruby_arg1)); Arg2_T arg2(from_ruby<Arg2_T>(ruby_arg2)); Arg3_T arg3(from_ruby<Arg3_T>(ruby_arg3)); Arg4_T arg4(from_ruby<Arg4_T>(ruby_arg4)); Arg5_T arg5(from_ruby<Arg5_T>(ruby_arg5)); Arg6_T arg6(from_ruby<Arg6_T>(ruby_arg6)); Arg7_T arg7(from_ruby<Arg7_T>(ruby_arg7)); Arg8_T arg8(from_ruby<Arg8_T>(ruby_arg8));
00279 DATA_PTR(self) = new T(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
00280 return Qnil;
00281 }
00282 };
00283
00284 class Constructor_Base_9
00285 {
00286 public:
00287 virtual ~Constructor_Base_9() { }
00288
00289 virtual VALUE call_impl(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) = 0;
00290
00291 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)
00292 {
00293 void * data = rb_cpp_method_data();
00294 Constructor_Base_9 * constructor =
00295 static_cast<Constructor_Base_9 *>(data);
00296 return constructor->call_impl(self, ruby_arg1, ruby_arg2, ruby_arg3, ruby_arg4, ruby_arg5, ruby_arg6, ruby_arg7, ruby_arg8, ruby_arg9);
00297 }
00298 };
00299
00300 template<typename 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>
00301 class Constructor<T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, void, void, void, void, void, void, void>
00302 : public Constructor_Base_9
00303 {
00304 public:
00305 virtual VALUE call_impl(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)
00306 {
00307 Arg1_T arg1(from_ruby<Arg1_T>(ruby_arg1)); Arg2_T arg2(from_ruby<Arg2_T>(ruby_arg2)); Arg3_T arg3(from_ruby<Arg3_T>(ruby_arg3)); Arg4_T arg4(from_ruby<Arg4_T>(ruby_arg4)); Arg5_T arg5(from_ruby<Arg5_T>(ruby_arg5)); Arg6_T arg6(from_ruby<Arg6_T>(ruby_arg6)); Arg7_T arg7(from_ruby<Arg7_T>(ruby_arg7)); Arg8_T arg8(from_ruby<Arg8_T>(ruby_arg8)); Arg9_T arg9(from_ruby<Arg9_T>(ruby_arg9));
00308 DATA_PTR(self) = new T(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
00309 return Qnil;
00310 }
00311 };
00312
00313 class Constructor_Base_10
00314 {
00315 public:
00316 virtual ~Constructor_Base_10() { }
00317
00318 virtual VALUE call_impl(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) = 0;
00319
00320 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)
00321 {
00322 void * data = rb_cpp_method_data();
00323 Constructor_Base_10 * constructor =
00324 static_cast<Constructor_Base_10 *>(data);
00325 return constructor->call_impl(self, ruby_arg1, ruby_arg2, ruby_arg3, ruby_arg4, ruby_arg5, ruby_arg6, ruby_arg7, ruby_arg8, ruby_arg9, ruby_arg10);
00326 }
00327 };
00328
00329 template<typename 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>
00330 class Constructor<T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, void, void, void, void, void, void>
00331 : public Constructor_Base_10
00332 {
00333 public:
00334 virtual VALUE call_impl(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)
00335 {
00336 Arg1_T arg1(from_ruby<Arg1_T>(ruby_arg1)); Arg2_T arg2(from_ruby<Arg2_T>(ruby_arg2)); Arg3_T arg3(from_ruby<Arg3_T>(ruby_arg3)); Arg4_T arg4(from_ruby<Arg4_T>(ruby_arg4)); Arg5_T arg5(from_ruby<Arg5_T>(ruby_arg5)); Arg6_T arg6(from_ruby<Arg6_T>(ruby_arg6)); Arg7_T arg7(from_ruby<Arg7_T>(ruby_arg7)); Arg8_T arg8(from_ruby<Arg8_T>(ruby_arg8)); Arg9_T arg9(from_ruby<Arg9_T>(ruby_arg9)); Arg10_T arg10(from_ruby<Arg10_T>(ruby_arg10));
00337 DATA_PTR(self) = new T(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10);
00338 return Qnil;
00339 }
00340 };
00341
00342 class Constructor_Base_11
00343 {
00344 public:
00345 virtual ~Constructor_Base_11() { }
00346
00347 virtual VALUE call_impl(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) = 0;
00348
00349 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)
00350 {
00351 void * data = rb_cpp_method_data();
00352 Constructor_Base_11 * constructor =
00353 static_cast<Constructor_Base_11 *>(data);
00354 return constructor->call_impl(self, ruby_arg1, ruby_arg2, ruby_arg3, ruby_arg4, ruby_arg5, ruby_arg6, ruby_arg7, ruby_arg8, ruby_arg9, ruby_arg10, ruby_arg11);
00355 }
00356 };
00357
00358 template<typename 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>
00359 class Constructor<T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, void, void, void, void, void>
00360 : public Constructor_Base_11
00361 {
00362 public:
00363 virtual VALUE call_impl(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)
00364 {
00365 Arg1_T arg1(from_ruby<Arg1_T>(ruby_arg1)); Arg2_T arg2(from_ruby<Arg2_T>(ruby_arg2)); Arg3_T arg3(from_ruby<Arg3_T>(ruby_arg3)); Arg4_T arg4(from_ruby<Arg4_T>(ruby_arg4)); Arg5_T arg5(from_ruby<Arg5_T>(ruby_arg5)); Arg6_T arg6(from_ruby<Arg6_T>(ruby_arg6)); Arg7_T arg7(from_ruby<Arg7_T>(ruby_arg7)); Arg8_T arg8(from_ruby<Arg8_T>(ruby_arg8)); Arg9_T arg9(from_ruby<Arg9_T>(ruby_arg9)); Arg10_T arg10(from_ruby<Arg10_T>(ruby_arg10)); Arg11_T arg11(from_ruby<Arg11_T>(ruby_arg11));
00366 DATA_PTR(self) = new T(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11);
00367 return Qnil;
00368 }
00369 };
00370
00371 class Constructor_Base_12
00372 {
00373 public:
00374 virtual ~Constructor_Base_12() { }
00375
00376 virtual VALUE call_impl(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) = 0;
00377
00378 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)
00379 {
00380 void * data = rb_cpp_method_data();
00381 Constructor_Base_12 * constructor =
00382 static_cast<Constructor_Base_12 *>(data);
00383 return constructor->call_impl(self, ruby_arg1, ruby_arg2, ruby_arg3, ruby_arg4, ruby_arg5, ruby_arg6, ruby_arg7, ruby_arg8, ruby_arg9, ruby_arg10, ruby_arg11, ruby_arg12);
00384 }
00385 };
00386
00387 template<typename 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>
00388 class Constructor<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, void, void, void, void>
00389 : public Constructor_Base_12
00390 {
00391 public:
00392 virtual VALUE call_impl(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)
00393 {
00394 Arg1_T arg1(from_ruby<Arg1_T>(ruby_arg1)); Arg2_T arg2(from_ruby<Arg2_T>(ruby_arg2)); Arg3_T arg3(from_ruby<Arg3_T>(ruby_arg3)); Arg4_T arg4(from_ruby<Arg4_T>(ruby_arg4)); Arg5_T arg5(from_ruby<Arg5_T>(ruby_arg5)); Arg6_T arg6(from_ruby<Arg6_T>(ruby_arg6)); Arg7_T arg7(from_ruby<Arg7_T>(ruby_arg7)); Arg8_T arg8(from_ruby<Arg8_T>(ruby_arg8)); Arg9_T arg9(from_ruby<Arg9_T>(ruby_arg9)); Arg10_T arg10(from_ruby<Arg10_T>(ruby_arg10)); Arg11_T arg11(from_ruby<Arg11_T>(ruby_arg11)); Arg12_T arg12(from_ruby<Arg12_T>(ruby_arg12));
00395 DATA_PTR(self) = new T(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12);
00396 return Qnil;
00397 }
00398 };
00399
00400 class Constructor_Base_13
00401 {
00402 public:
00403 virtual ~Constructor_Base_13() { }
00404
00405 virtual VALUE call_impl(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) = 0;
00406
00407 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)
00408 {
00409 void * data = rb_cpp_method_data();
00410 Constructor_Base_13 * constructor =
00411 static_cast<Constructor_Base_13 *>(data);
00412 return constructor->call_impl(self, ruby_arg1, ruby_arg2, ruby_arg3, ruby_arg4, ruby_arg5, ruby_arg6, ruby_arg7, ruby_arg8, ruby_arg9, ruby_arg10, ruby_arg11, ruby_arg12, ruby_arg13);
00413 }
00414 };
00415
00416 template<typename 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>
00417 class Constructor<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, void, void, void>
00418 : public Constructor_Base_13
00419 {
00420 public:
00421 virtual VALUE call_impl(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)
00422 {
00423 Arg1_T arg1(from_ruby<Arg1_T>(ruby_arg1)); Arg2_T arg2(from_ruby<Arg2_T>(ruby_arg2)); Arg3_T arg3(from_ruby<Arg3_T>(ruby_arg3)); Arg4_T arg4(from_ruby<Arg4_T>(ruby_arg4)); Arg5_T arg5(from_ruby<Arg5_T>(ruby_arg5)); Arg6_T arg6(from_ruby<Arg6_T>(ruby_arg6)); Arg7_T arg7(from_ruby<Arg7_T>(ruby_arg7)); Arg8_T arg8(from_ruby<Arg8_T>(ruby_arg8)); Arg9_T arg9(from_ruby<Arg9_T>(ruby_arg9)); Arg10_T arg10(from_ruby<Arg10_T>(ruby_arg10)); Arg11_T arg11(from_ruby<Arg11_T>(ruby_arg11)); Arg12_T arg12(from_ruby<Arg12_T>(ruby_arg12)); Arg13_T arg13(from_ruby<Arg13_T>(ruby_arg13));
00424 DATA_PTR(self) = new T(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13);
00425 return Qnil;
00426 }
00427 };
00428
00429 class Constructor_Base_14
00430 {
00431 public:
00432 virtual ~Constructor_Base_14() { }
00433
00434 virtual VALUE call_impl(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) = 0;
00435
00436 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)
00437 {
00438 void * data = rb_cpp_method_data();
00439 Constructor_Base_14 * constructor =
00440 static_cast<Constructor_Base_14 *>(data);
00441 return constructor->call_impl(self, ruby_arg1, ruby_arg2, ruby_arg3, ruby_arg4, ruby_arg5, ruby_arg6, ruby_arg7, ruby_arg8, ruby_arg9, ruby_arg10, ruby_arg11, ruby_arg12, ruby_arg13, ruby_arg14);
00442 }
00443 };
00444
00445 template<typename 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>
00446 class Constructor<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, void, void>
00447 : public Constructor_Base_14
00448 {
00449 public:
00450 virtual VALUE call_impl(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)
00451 {
00452 Arg1_T arg1(from_ruby<Arg1_T>(ruby_arg1)); Arg2_T arg2(from_ruby<Arg2_T>(ruby_arg2)); Arg3_T arg3(from_ruby<Arg3_T>(ruby_arg3)); Arg4_T arg4(from_ruby<Arg4_T>(ruby_arg4)); Arg5_T arg5(from_ruby<Arg5_T>(ruby_arg5)); Arg6_T arg6(from_ruby<Arg6_T>(ruby_arg6)); Arg7_T arg7(from_ruby<Arg7_T>(ruby_arg7)); Arg8_T arg8(from_ruby<Arg8_T>(ruby_arg8)); Arg9_T arg9(from_ruby<Arg9_T>(ruby_arg9)); Arg10_T arg10(from_ruby<Arg10_T>(ruby_arg10)); Arg11_T arg11(from_ruby<Arg11_T>(ruby_arg11)); Arg12_T arg12(from_ruby<Arg12_T>(ruby_arg12)); Arg13_T arg13(from_ruby<Arg13_T>(ruby_arg13)); Arg14_T arg14(from_ruby<Arg14_T>(ruby_arg14));
00453 DATA_PTR(self) = new T(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14);
00454 return Qnil;
00455 }
00456 };
00457
00458 class Constructor_Base_15
00459 {
00460 public:
00461 virtual ~Constructor_Base_15() { }
00462
00463 virtual VALUE call_impl(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) = 0;
00464
00465 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)
00466 {
00467 void * data = rb_cpp_method_data();
00468 Constructor_Base_15 * constructor =
00469 static_cast<Constructor_Base_15 *>(data);
00470 return constructor->call_impl(self, ruby_arg1, ruby_arg2, ruby_arg3, ruby_arg4, ruby_arg5, ruby_arg6, ruby_arg7, ruby_arg8, ruby_arg9, ruby_arg10, ruby_arg11, ruby_arg12, ruby_arg13, ruby_arg14, ruby_arg15);
00471 }
00472 };
00473
00474 template<typename 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>
00475 class Constructor<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, void>
00476 : public Constructor_Base_15
00477 {
00478 public:
00479 virtual VALUE call_impl(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)
00480 {
00481 Arg1_T arg1(from_ruby<Arg1_T>(ruby_arg1)); Arg2_T arg2(from_ruby<Arg2_T>(ruby_arg2)); Arg3_T arg3(from_ruby<Arg3_T>(ruby_arg3)); Arg4_T arg4(from_ruby<Arg4_T>(ruby_arg4)); Arg5_T arg5(from_ruby<Arg5_T>(ruby_arg5)); Arg6_T arg6(from_ruby<Arg6_T>(ruby_arg6)); Arg7_T arg7(from_ruby<Arg7_T>(ruby_arg7)); Arg8_T arg8(from_ruby<Arg8_T>(ruby_arg8)); Arg9_T arg9(from_ruby<Arg9_T>(ruby_arg9)); Arg10_T arg10(from_ruby<Arg10_T>(ruby_arg10)); Arg11_T arg11(from_ruby<Arg11_T>(ruby_arg11)); Arg12_T arg12(from_ruby<Arg12_T>(ruby_arg12)); Arg13_T arg13(from_ruby<Arg13_T>(ruby_arg13)); Arg14_T arg14(from_ruby<Arg14_T>(ruby_arg14)); Arg15_T arg15(from_ruby<Arg15_T>(ruby_arg15));
00482 DATA_PTR(self) = new T(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15);
00483 return Qnil;
00484 }
00485 };
00486
00487
00488 }
00489
00490
00491 #endif // Exc_Ruby__Constructor__hpp_
00492