00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef __PLCORE_PARAMS_H__
00024 #define __PLCORE_PARAMS_H__
00025 #pragma once
00026
00027
00028
00029
00030
00031 #include "PLCore/Base/Type/Type.h"
00032 #include "PLCore/Base/Type/DefaultValue.h"
00033 #include "PLCore/Base/Tools/TypeTraits.h"
00034 #include "PLCore/Base/Tools/ParamsParser.h"
00035 #include "PLCore/Base/Tools/ParamsParserXml.h"
00036 #include "PLCore/Base/Func/Signature.h"
00037 #include "PLCore/Base/Func/DynParams.h"
00038
00039
00040
00041
00042
00043 namespace PLCore {
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056 template <typename R, typename T0 = NullType, typename T1 = NullType, typename T2 = NullType, typename T3 = NullType, typename T4 = NullType, typename T5 = NullType, typename T6 = NullType, typename T7 = NullType, typename T8 = NullType, typename T9 = NullType, typename T10 = NullType, typename T11 = NullType, typename T12 = NullType, typename T13 = NullType, typename T14 = NullType, typename T15 = NullType>
00057 class Params : public DynParams {
00058
00059
00060
00061
00062
00063 public:
00064
00065 typedef typename Type<R> ::_Type _R;
00066 typedef typename Type<T0> ::_Type _T0;
00067 typedef typename Type<T1> ::_Type _T1;
00068 typedef typename Type<T2> ::_Type _T2;
00069 typedef typename Type<T3> ::_Type _T3;
00070 typedef typename Type<T4> ::_Type _T4;
00071 typedef typename Type<T5> ::_Type _T5;
00072 typedef typename Type<T6> ::_Type _T6;
00073 typedef typename Type<T7> ::_Type _T7;
00074 typedef typename Type<T8> ::_Type _T8;
00075 typedef typename Type<T9> ::_Type _T9;
00076 typedef typename Type<T10>::_Type _T10;
00077 typedef typename Type<T11>::_Type _T11;
00078 typedef typename Type<T12>::_Type _T12;
00079 typedef typename Type<T13>::_Type _T13;
00080 typedef typename Type<T14>::_Type _T14;
00081 typedef typename Type<T15>::_Type _T15;
00082 typedef typename Type<R> ::_StorageType _SR;
00083 typedef typename Type<T0> ::_StorageType _ST0;
00084 typedef typename Type<T1> ::_StorageType _ST1;
00085 typedef typename Type<T2> ::_StorageType _ST2;
00086 typedef typename Type<T3> ::_StorageType _ST3;
00087 typedef typename Type<T4> ::_StorageType _ST4;
00088 typedef typename Type<T5> ::_StorageType _ST5;
00089 typedef typename Type<T6> ::_StorageType _ST6;
00090 typedef typename Type<T7> ::_StorageType _ST7;
00091 typedef typename Type<T8> ::_StorageType _ST8;
00092 typedef typename Type<T9> ::_StorageType _ST9;
00093 typedef typename Type<T10>::_StorageType _ST10;
00094 typedef typename Type<T11>::_StorageType _ST11;
00095 typedef typename Type<T12>::_StorageType _ST12;
00096 typedef typename Type<T13>::_StorageType _ST13;
00097 typedef typename Type<T14>::_StorageType _ST14;
00098 typedef typename Type<T15>::_StorageType _ST15;
00099
00100
00101
00102
00103
00104 public:
00105 _SR Return;
00106 _ST0 Param0;
00107 _ST1 Param1;
00108 _ST2 Param2;
00109 _ST3 Param3;
00110 _ST4 Param4;
00111 _ST5 Param5;
00112 _ST6 Param6;
00113 _ST7 Param7;
00114 _ST8 Param8;
00115 _ST9 Param9;
00116 _ST10 Param10;
00117 _ST11 Param11;
00118 _ST12 Param12;
00119 _ST13 Param13;
00120 _ST14 Param14;
00121 _ST15 Param15;
00122
00123
00124
00125
00126
00127 public:
00128 static Params FromString(const String &sParams) {
00129 ParamsParser cParser;
00130 _T0 t0 = (cParser.ParseString(sParams) ? Type<T0> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T0> ::Default());
00131 _T1 t1 = (cParser.Next() ? Type<T1> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T1> ::Default());
00132 _T2 t2 = (cParser.Next() ? Type<T2> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T2> ::Default());
00133 _T3 t3 = (cParser.Next() ? Type<T3> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T3> ::Default());
00134 _T4 t4 = (cParser.Next() ? Type<T4> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T4> ::Default());
00135 _T5 t5 = (cParser.Next() ? Type<T5> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T5> ::Default());
00136 _T6 t6 = (cParser.Next() ? Type<T6> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T6> ::Default());
00137 _T7 t7 = (cParser.Next() ? Type<T7> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T7> ::Default());
00138 _T8 t8 = (cParser.Next() ? Type<T8> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T8> ::Default());
00139 _T9 t9 = (cParser.Next() ? Type<T9> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T9> ::Default());
00140 _T10 t10 = (cParser.Next() ? Type<T10>::ConvertFromString(cParser.GetValue()) : DefaultValue<T10>::Default());
00141 _T11 t11 = (cParser.Next() ? Type<T11>::ConvertFromString(cParser.GetValue()) : DefaultValue<T11>::Default());
00142 _T12 t12 = (cParser.Next() ? Type<T12>::ConvertFromString(cParser.GetValue()) : DefaultValue<T12>::Default());
00143 _T13 t13 = (cParser.Next() ? Type<T13>::ConvertFromString(cParser.GetValue()) : DefaultValue<T13>::Default());
00144 _T14 t14 = (cParser.Next() ? Type<T14>::ConvertFromString(cParser.GetValue()) : DefaultValue<T14>::Default());
00145 _T15 t15 = (cParser.Next() ? Type<T15>::ConvertFromString(cParser.GetValue()) : DefaultValue<T15>::Default());
00146 return Params(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15);
00147 }
00148
00149 static Params FromXml(const XmlElement &cElement) {
00150 ParamsParserXml cParser;
00151 _T0 t0 = (cParser.ParseXml(cElement) ? Type<T0> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T0> ::Default());
00152 _T1 t1 = (cParser.Next() ? Type<T1> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T1> ::Default());
00153 _T2 t2 = (cParser.Next() ? Type<T2> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T2> ::Default());
00154 _T3 t3 = (cParser.Next() ? Type<T3> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T3> ::Default());
00155 _T4 t4 = (cParser.Next() ? Type<T4> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T4> ::Default());
00156 _T5 t5 = (cParser.Next() ? Type<T5> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T5> ::Default());
00157 _T6 t6 = (cParser.Next() ? Type<T6> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T6> ::Default());
00158 _T7 t7 = (cParser.Next() ? Type<T7> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T7> ::Default());
00159 _T8 t8 = (cParser.Next() ? Type<T8> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T8> ::Default());
00160 _T9 t9 = (cParser.Next() ? Type<T9> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T9> ::Default());
00161 _T10 t10 = (cParser.Next() ? Type<T10>::ConvertFromString(cParser.GetValue()) : DefaultValue<T10>::Default());
00162 _T11 t11 = (cParser.Next() ? Type<T11>::ConvertFromString(cParser.GetValue()) : DefaultValue<T11>::Default());
00163 _T12 t12 = (cParser.Next() ? Type<T12>::ConvertFromString(cParser.GetValue()) : DefaultValue<T12>::Default());
00164 _T13 t13 = (cParser.Next() ? Type<T13>::ConvertFromString(cParser.GetValue()) : DefaultValue<T13>::Default());
00165 _T14 t14 = (cParser.Next() ? Type<T14>::ConvertFromString(cParser.GetValue()) : DefaultValue<T14>::Default());
00166 _T15 t15 = (cParser.Next() ? Type<T15>::ConvertFromString(cParser.GetValue()) : DefaultValue<T15>::Default());
00167 return Params(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15);
00168 }
00169
00170
00171
00172
00173
00174 public:
00175 Params(const Params &cParams) :
00176 Return(DefaultValue<_SR>::Default()),
00177 Param0(cParams.Param0),
00178 Param1(cParams.Param1),
00179 Param2(cParams.Param2),
00180 Param3(cParams.Param3),
00181 Param4(cParams.Param4),
00182 Param5(cParams.Param5),
00183 Param6(cParams.Param6),
00184 Param7(cParams.Param7),
00185 Param8(cParams.Param8),
00186 Param9(cParams.Param9),
00187 Param10(cParams.Param10),
00188 Param11(cParams.Param11),
00189 Param12(cParams.Param12),
00190 Param13(cParams.Param13),
00191 Param14(cParams.Param14),
00192 Param15(cParams.Param15)
00193 {
00194 }
00195
00196 Params(_T0 t0, _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) :
00197 Return(DefaultValue<_SR>::Default()),
00198 Param0(Type<T0> ::ConvertRealToStorage(t0)),
00199 Param1(Type<T1> ::ConvertRealToStorage(t1)),
00200 Param2(Type<T2> ::ConvertRealToStorage(t2)),
00201 Param3(Type<T3> ::ConvertRealToStorage(t3)),
00202 Param4(Type<T4> ::ConvertRealToStorage(t4)),
00203 Param5(Type<T5> ::ConvertRealToStorage(t5)),
00204 Param6(Type<T6> ::ConvertRealToStorage(t6)),
00205 Param7(Type<T7> ::ConvertRealToStorage(t7)),
00206 Param8(Type<T8> ::ConvertRealToStorage(t8)),
00207 Param9(Type<T9> ::ConvertRealToStorage(t9)),
00208 Param10(Type<T10>::ConvertRealToStorage(t10)),
00209 Param11(Type<T11>::ConvertRealToStorage(t11)),
00210 Param12(Type<T12>::ConvertRealToStorage(t12)),
00211 Param13(Type<T13>::ConvertRealToStorage(t13)),
00212 Param14(Type<T14>::ConvertRealToStorage(t14)),
00213 Param15(Type<T15>::ConvertRealToStorage(t15))
00214 {
00215 }
00216
00217 virtual ~Params()
00218 {
00219 }
00220
00221 Params &operator =(const Params &cParams)
00222 {
00223 Return = cParams.Return;
00224 Param0 = cParams.Param0;
00225 Param1 = cParams.Param1;
00226 Param2 = cParams.Param2;
00227 Param3 = cParams.Param3;
00228 Param4 = cParams.Param4;
00229 Param5 = cParams.Param5;
00230 Param6 = cParams.Param6;
00231 Param7 = cParams.Param7;
00232 Param8 = cParams.Param8;
00233 Param9 = cParams.Param9;
00234 Param10 = cParams.Param10;
00235 Param11 = cParams.Param11;
00236 Param12 = cParams.Param12;
00237 Param13 = cParams.Param13;
00238 Param14 = cParams.Param14;
00239 Param15 = cParams.Param15;
00240 return *this;
00241 }
00242
00243 virtual String GetSignature() const override
00244 {
00245 return Signature<R, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15>::GetSignatureID();
00246 }
00247
00248 virtual int GetReturnTypeID() const override
00249 {
00250 return Type<R>::TypeID;
00251 }
00252
00253 virtual void *GetPointerToReturnValue() override
00254 {
00255 return (void*)&Return;
00256 }
00257
00258 virtual uint32 GetNumOfParameters() const override
00259 {
00260 return 16;
00261 }
00262
00263 virtual int GetParameterTypeID(uint32 nIndex) const override
00264 {
00265 switch (nIndex) {
00266 case 0: return Type<T0> ::TypeID;
00267 case 1: return Type<T1> ::TypeID;
00268 case 2: return Type<T2> ::TypeID;
00269 case 3: return Type<T3> ::TypeID;
00270 case 4: return Type<T4> ::TypeID;
00271 case 5: return Type<T5> ::TypeID;
00272 case 6: return Type<T6> ::TypeID;
00273 case 7: return Type<T7> ::TypeID;
00274 case 8: return Type<T8> ::TypeID;
00275 case 9: return Type<T9> ::TypeID;
00276 case 10: return Type<T10>::TypeID;
00277 case 11: return Type<T11>::TypeID;
00278 case 12: return Type<T12>::TypeID;
00279 case 13: return Type<T13>::TypeID;
00280 case 14: return Type<T14>::TypeID;
00281 case 15: return Type<T15>::TypeID;
00282 default: return TypeInvalid;
00283 }
00284 }
00285
00286 virtual void *GetPointerToParameterValue(uint32 nIndex) override
00287 {
00288 switch (nIndex) {
00289 case 0: return (void*)&Param0;
00290 case 1: return (void*)&Param1;
00291 case 2: return (void*)&Param2;
00292 case 3: return (void*)&Param3;
00293 case 4: return (void*)&Param4;
00294 case 5: return (void*)&Param5;
00295 case 6: return (void*)&Param6;
00296 case 7: return (void*)&Param7;
00297 case 8: return (void*)&Param8;
00298 case 9: return (void*)&Param9;
00299 case 10: return (void*)&Param10;
00300 case 11: return (void*)&Param11;
00301 case 12: return (void*)&Param12;
00302 case 13: return (void*)&Param13;
00303 case 14: return (void*)&Param14;
00304 case 15: return (void*)&Param15;
00305 default: return nullptr;
00306 }
00307 }
00308
00309 };
00310
00311
00312
00313
00314
00315
00316
00317
00318 template <typename T0, 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>
00319 class Params<void, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> : public DynParams {
00320 public:
00321 typedef typename Type<T0> ::_Type _T0;
00322 typedef typename Type<T1> ::_Type _T1;
00323 typedef typename Type<T2> ::_Type _T2;
00324 typedef typename Type<T3> ::_Type _T3;
00325 typedef typename Type<T4> ::_Type _T4;
00326 typedef typename Type<T5> ::_Type _T5;
00327 typedef typename Type<T6> ::_Type _T6;
00328 typedef typename Type<T7> ::_Type _T7;
00329 typedef typename Type<T8> ::_Type _T8;
00330 typedef typename Type<T9> ::_Type _T9;
00331 typedef typename Type<T10>::_Type _T10;
00332 typedef typename Type<T11>::_Type _T11;
00333 typedef typename Type<T12>::_Type _T12;
00334 typedef typename Type<T13>::_Type _T13;
00335 typedef typename Type<T14>::_Type _T14;
00336 typedef typename Type<T15>::_Type _T15;
00337 typedef typename Type<T0> ::_StorageType _ST0;
00338 typedef typename Type<T1> ::_StorageType _ST1;
00339 typedef typename Type<T2> ::_StorageType _ST2;
00340 typedef typename Type<T3> ::_StorageType _ST3;
00341 typedef typename Type<T4> ::_StorageType _ST4;
00342 typedef typename Type<T5> ::_StorageType _ST5;
00343 typedef typename Type<T6> ::_StorageType _ST6;
00344 typedef typename Type<T7> ::_StorageType _ST7;
00345 typedef typename Type<T8> ::_StorageType _ST8;
00346 typedef typename Type<T9> ::_StorageType _ST9;
00347 typedef typename Type<T10>::_StorageType _ST10;
00348 typedef typename Type<T11>::_StorageType _ST11;
00349 typedef typename Type<T12>::_StorageType _ST12;
00350 typedef typename Type<T13>::_StorageType _ST13;
00351 typedef typename Type<T14>::_StorageType _ST14;
00352 typedef typename Type<T15>::_StorageType _ST15;
00353
00354 public:
00355 _ST0 Param0;
00356 _ST1 Param1;
00357 _ST2 Param2;
00358 _ST3 Param3;
00359 _ST4 Param4;
00360 _ST5 Param5;
00361 _ST6 Param6;
00362 _ST7 Param7;
00363 _ST8 Param8;
00364 _ST9 Param9;
00365 _ST10 Param10;
00366 _ST11 Param11;
00367 _ST12 Param12;
00368 _ST13 Param13;
00369 _ST14 Param14;
00370 _ST15 Param15;
00371
00372 public:
00373 static Params FromString(const String &sParams) {
00374 ParamsParser cParser;
00375 _T0 t0 = (cParser.ParseString(sParams) ? Type<T0> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T0> ::Default());
00376 _T1 t1 = (cParser.Next() ? Type<T1> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T1> ::Default());
00377 _T2 t2 = (cParser.Next() ? Type<T2> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T2> ::Default());
00378 _T3 t3 = (cParser.Next() ? Type<T3> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T3> ::Default());
00379 _T4 t4 = (cParser.Next() ? Type<T4> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T4> ::Default());
00380 _T5 t5 = (cParser.Next() ? Type<T5> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T5> ::Default());
00381 _T6 t6 = (cParser.Next() ? Type<T6> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T6> ::Default());
00382 _T7 t7 = (cParser.Next() ? Type<T7> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T7> ::Default());
00383 _T8 t8 = (cParser.Next() ? Type<T8> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T8> ::Default());
00384 _T9 t9 = (cParser.Next() ? Type<T9> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T9> ::Default());
00385 _T10 t10 = (cParser.Next() ? Type<T10>::ConvertFromString(cParser.GetValue()) : DefaultValue<T10>::Default());
00386 _T11 t11 = (cParser.Next() ? Type<T11>::ConvertFromString(cParser.GetValue()) : DefaultValue<T11>::Default());
00387 _T12 t12 = (cParser.Next() ? Type<T12>::ConvertFromString(cParser.GetValue()) : DefaultValue<T12>::Default());
00388 _T13 t13 = (cParser.Next() ? Type<T13>::ConvertFromString(cParser.GetValue()) : DefaultValue<T13>::Default());
00389 _T14 t14 = (cParser.Next() ? Type<T14>::ConvertFromString(cParser.GetValue()) : DefaultValue<T14>::Default());
00390 _T15 t15 = (cParser.Next() ? Type<T15>::ConvertFromString(cParser.GetValue()) : DefaultValue<T15>::Default());
00391 return Params(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15);
00392 }
00393
00394 static Params FromXml(const XmlElement &cElement) {
00395 ParamsParserXml cParser;
00396 _T0 t0 = (cParser.ParseXml(cElement) ? Type<T0> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T0> ::Default());
00397 _T1 t1 = (cParser.Next() ? Type<T1> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T1> ::Default());
00398 _T2 t2 = (cParser.Next() ? Type<T2> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T2> ::Default());
00399 _T3 t3 = (cParser.Next() ? Type<T3> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T3> ::Default());
00400 _T4 t4 = (cParser.Next() ? Type<T4> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T4> ::Default());
00401 _T5 t5 = (cParser.Next() ? Type<T5> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T5> ::Default());
00402 _T6 t6 = (cParser.Next() ? Type<T6> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T6> ::Default());
00403 _T7 t7 = (cParser.Next() ? Type<T7> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T7> ::Default());
00404 _T8 t8 = (cParser.Next() ? Type<T8> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T8> ::Default());
00405 _T9 t9 = (cParser.Next() ? Type<T9> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T9> ::Default());
00406 _T10 t10 = (cParser.Next() ? Type<T10>::ConvertFromString(cParser.GetValue()) : DefaultValue<T10>::Default());
00407 _T11 t11 = (cParser.Next() ? Type<T11>::ConvertFromString(cParser.GetValue()) : DefaultValue<T11>::Default());
00408 _T12 t12 = (cParser.Next() ? Type<T12>::ConvertFromString(cParser.GetValue()) : DefaultValue<T12>::Default());
00409 _T13 t13 = (cParser.Next() ? Type<T13>::ConvertFromString(cParser.GetValue()) : DefaultValue<T13>::Default());
00410 _T14 t14 = (cParser.Next() ? Type<T14>::ConvertFromString(cParser.GetValue()) : DefaultValue<T14>::Default());
00411 _T15 t15 = (cParser.Next() ? Type<T15>::ConvertFromString(cParser.GetValue()) : DefaultValue<T15>::Default());
00412 return Params(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15);
00413 }
00414
00415 public:
00416 Params(const Params &cParams) :
00417 Param0(cParams.Param0),
00418 Param1(cParams.Param1),
00419 Param2(cParams.Param2),
00420 Param3(cParams.Param3),
00421 Param4(cParams.Param4),
00422 Param5(cParams.Param5),
00423 Param6(cParams.Param6),
00424 Param7(cParams.Param7),
00425 Param8(cParams.Param8),
00426 Param9(cParams.Param9),
00427 Param10(cParams.Param10),
00428 Param11(cParams.Param11),
00429 Param12(cParams.Param12),
00430 Param13(cParams.Param13),
00431 Param14(cParams.Param14),
00432 Param15(cParams.Param15)
00433 {
00434 }
00435
00436 Params(_T0 t0, _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) :
00437 Param0(Type<T0> ::ConvertRealToStorage(t0)),
00438 Param1(Type<T1> ::ConvertRealToStorage(t1)),
00439 Param2(Type<T2> ::ConvertRealToStorage(t2)),
00440 Param3(Type<T3> ::ConvertRealToStorage(t3)),
00441 Param4(Type<T4> ::ConvertRealToStorage(t4)),
00442 Param5(Type<T5> ::ConvertRealToStorage(t5)),
00443 Param6(Type<T6> ::ConvertRealToStorage(t6)),
00444 Param7(Type<T7> ::ConvertRealToStorage(t7)),
00445 Param8(Type<T8> ::ConvertRealToStorage(t8)),
00446 Param9(Type<T9> ::ConvertRealToStorage(t9)),
00447 Param10(Type<T10>::ConvertRealToStorage(t10)),
00448 Param11(Type<T11>::ConvertRealToStorage(t11)),
00449 Param12(Type<T12>::ConvertRealToStorage(t12)),
00450 Param13(Type<T13>::ConvertRealToStorage(t13)),
00451 Param14(Type<T14>::ConvertRealToStorage(t14)),
00452 Param15(Type<T15>::ConvertRealToStorage(t15))
00453 {
00454 }
00455
00456 virtual ~Params()
00457 {
00458 }
00459
00460 Params &operator =(const Params &cParams)
00461 {
00462 Param0 = cParams.Param0;
00463 Param1 = cParams.Param1;
00464 Param2 = cParams.Param2;
00465 Param3 = cParams.Param3;
00466 Param4 = cParams.Param4;
00467 Param5 = cParams.Param5;
00468 Param6 = cParams.Param6;
00469 Param7 = cParams.Param7;
00470 Param8 = cParams.Param8;
00471 Param9 = cParams.Param9;
00472 Param10 = cParams.Param10;
00473 Param11 = cParams.Param11;
00474 Param12 = cParams.Param12;
00475 Param13 = cParams.Param13;
00476 Param14 = cParams.Param14;
00477 Param15 = cParams.Param15;
00478 return *this;
00479 }
00480
00481 virtual String GetSignature() const override
00482 {
00483 return Signature<void, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15>::GetSignatureID();
00484 }
00485
00486 virtual uint32 GetNumOfParameters() const override
00487 {
00488 return 16;
00489 }
00490
00491 virtual int GetParameterTypeID(uint32 nIndex) const override
00492 {
00493 switch (nIndex) {
00494 case 0: return Type<T0> ::TypeID;
00495 case 1: return Type<T1> ::TypeID;
00496 case 2: return Type<T2> ::TypeID;
00497 case 3: return Type<T3> ::TypeID;
00498 case 4: return Type<T4> ::TypeID;
00499 case 5: return Type<T5> ::TypeID;
00500 case 6: return Type<T6> ::TypeID;
00501 case 7: return Type<T7> ::TypeID;
00502 case 8: return Type<T8> ::TypeID;
00503 case 9: return Type<T9> ::TypeID;
00504 case 10: return Type<T10>::TypeID;
00505 case 11: return Type<T11>::TypeID;
00506 case 12: return Type<T12>::TypeID;
00507 case 13: return Type<T13>::TypeID;
00508 case 14: return Type<T14>::TypeID;
00509 case 15: return Type<T15>::TypeID;
00510 default: return TypeInvalid;
00511 }
00512 }
00513
00514 virtual void *GetPointerToParameterValue(uint32 nIndex) override
00515 {
00516 switch (nIndex) {
00517 case 0: return (void*)&Param0;
00518 case 1: return (void*)&Param1;
00519 case 2: return (void*)&Param2;
00520 case 3: return (void*)&Param3;
00521 case 4: return (void*)&Param4;
00522 case 5: return (void*)&Param5;
00523 case 6: return (void*)&Param6;
00524 case 7: return (void*)&Param7;
00525 case 8: return (void*)&Param8;
00526 case 9: return (void*)&Param9;
00527 case 10: return (void*)&Param10;
00528 case 11: return (void*)&Param11;
00529 case 12: return (void*)&Param12;
00530 case 13: return (void*)&Param13;
00531 case 14: return (void*)&Param14;
00532 case 15: return (void*)&Param15;
00533 default: return nullptr;
00534 }
00535 }
00536 };
00537
00538
00539
00540
00541
00542
00543
00544
00545 template <typename R, typename T0, 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>
00546 class Params<R, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> : public DynParams {
00547 public:
00548 typedef typename Type<R> ::_Type _R;
00549 typedef typename Type<T0> ::_Type _T0;
00550 typedef typename Type<T1> ::_Type _T1;
00551 typedef typename Type<T2> ::_Type _T2;
00552 typedef typename Type<T3> ::_Type _T3;
00553 typedef typename Type<T4> ::_Type _T4;
00554 typedef typename Type<T5> ::_Type _T5;
00555 typedef typename Type<T6> ::_Type _T6;
00556 typedef typename Type<T7> ::_Type _T7;
00557 typedef typename Type<T8> ::_Type _T8;
00558 typedef typename Type<T9> ::_Type _T9;
00559 typedef typename Type<T10>::_Type _T10;
00560 typedef typename Type<T11>::_Type _T11;
00561 typedef typename Type<T12>::_Type _T12;
00562 typedef typename Type<T13>::_Type _T13;
00563 typedef typename Type<T14>::_Type _T14;
00564 typedef typename Type<R> ::_StorageType _SR;
00565 typedef typename Type<T0> ::_StorageType _ST0;
00566 typedef typename Type<T1> ::_StorageType _ST1;
00567 typedef typename Type<T2> ::_StorageType _ST2;
00568 typedef typename Type<T3> ::_StorageType _ST3;
00569 typedef typename Type<T4> ::_StorageType _ST4;
00570 typedef typename Type<T5> ::_StorageType _ST5;
00571 typedef typename Type<T6> ::_StorageType _ST6;
00572 typedef typename Type<T7> ::_StorageType _ST7;
00573 typedef typename Type<T8> ::_StorageType _ST8;
00574 typedef typename Type<T9> ::_StorageType _ST9;
00575 typedef typename Type<T10>::_StorageType _ST10;
00576 typedef typename Type<T11>::_StorageType _ST11;
00577 typedef typename Type<T12>::_StorageType _ST12;
00578 typedef typename Type<T13>::_StorageType _ST13;
00579 typedef typename Type<T14>::_StorageType _ST14;
00580
00581 public:
00582 _SR Return;
00583 _ST0 Param0;
00584 _ST1 Param1;
00585 _ST2 Param2;
00586 _ST3 Param3;
00587 _ST4 Param4;
00588 _ST5 Param5;
00589 _ST6 Param6;
00590 _ST7 Param7;
00591 _ST8 Param8;
00592 _ST9 Param9;
00593 _ST10 Param10;
00594 _ST11 Param11;
00595 _ST12 Param12;
00596 _ST13 Param13;
00597 _ST14 Param14;
00598
00599 public:
00600 static Params FromString(const String &sParams) {
00601 ParamsParser cParser;
00602 _T0 t0 = (cParser.ParseString(sParams) ? Type<T0> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T0> ::Default());
00603 _T1 t1 = (cParser.Next() ? Type<T1> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T1> ::Default());
00604 _T2 t2 = (cParser.Next() ? Type<T2> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T2> ::Default());
00605 _T3 t3 = (cParser.Next() ? Type<T3> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T3> ::Default());
00606 _T4 t4 = (cParser.Next() ? Type<T4> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T4> ::Default());
00607 _T5 t5 = (cParser.Next() ? Type<T5> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T5> ::Default());
00608 _T6 t6 = (cParser.Next() ? Type<T6> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T6> ::Default());
00609 _T7 t7 = (cParser.Next() ? Type<T7> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T7> ::Default());
00610 _T8 t8 = (cParser.Next() ? Type<T8> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T8> ::Default());
00611 _T9 t9 = (cParser.Next() ? Type<T9> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T9> ::Default());
00612 _T10 t10 = (cParser.Next() ? Type<T10>::ConvertFromString(cParser.GetValue()) : DefaultValue<T10>::Default());
00613 _T11 t11 = (cParser.Next() ? Type<T11>::ConvertFromString(cParser.GetValue()) : DefaultValue<T11>::Default());
00614 _T12 t12 = (cParser.Next() ? Type<T12>::ConvertFromString(cParser.GetValue()) : DefaultValue<T12>::Default());
00615 _T13 t13 = (cParser.Next() ? Type<T13>::ConvertFromString(cParser.GetValue()) : DefaultValue<T13>::Default());
00616 _T14 t14 = (cParser.Next() ? Type<T14>::ConvertFromString(cParser.GetValue()) : DefaultValue<T14>::Default());
00617 return Params(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14);
00618 }
00619
00620 static Params FromXml(const XmlElement &cElement) {
00621 ParamsParserXml cParser;
00622 _T0 t0 = (cParser.ParseXml(cElement) ? Type<T0> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T0> ::Default());
00623 _T1 t1 = (cParser.Next() ? Type<T1> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T1> ::Default());
00624 _T2 t2 = (cParser.Next() ? Type<T2> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T2> ::Default());
00625 _T3 t3 = (cParser.Next() ? Type<T3> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T3> ::Default());
00626 _T4 t4 = (cParser.Next() ? Type<T4> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T4> ::Default());
00627 _T5 t5 = (cParser.Next() ? Type<T5> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T5> ::Default());
00628 _T6 t6 = (cParser.Next() ? Type<T6> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T6> ::Default());
00629 _T7 t7 = (cParser.Next() ? Type<T7> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T7> ::Default());
00630 _T8 t8 = (cParser.Next() ? Type<T8> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T8> ::Default());
00631 _T9 t9 = (cParser.Next() ? Type<T9> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T9> ::Default());
00632 _T10 t10 = (cParser.Next() ? Type<T10>::ConvertFromString(cParser.GetValue()) : DefaultValue<T10>::Default());
00633 _T11 t11 = (cParser.Next() ? Type<T11>::ConvertFromString(cParser.GetValue()) : DefaultValue<T11>::Default());
00634 _T12 t12 = (cParser.Next() ? Type<T12>::ConvertFromString(cParser.GetValue()) : DefaultValue<T12>::Default());
00635 _T13 t13 = (cParser.Next() ? Type<T13>::ConvertFromString(cParser.GetValue()) : DefaultValue<T13>::Default());
00636 _T14 t14 = (cParser.Next() ? Type<T14>::ConvertFromString(cParser.GetValue()) : DefaultValue<T14>::Default());
00637 return Params(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14);
00638 }
00639
00640 public:
00641 Params(const Params &cParams) :
00642 Return(DefaultValue<_SR>::Default()),
00643 Param0(cParams.Param0),
00644 Param1(cParams.Param1),
00645 Param2(cParams.Param2),
00646 Param3(cParams.Param3),
00647 Param4(cParams.Param4),
00648 Param5(cParams.Param5),
00649 Param6(cParams.Param6),
00650 Param7(cParams.Param7),
00651 Param8(cParams.Param8),
00652 Param9(cParams.Param9),
00653 Param10(cParams.Param10),
00654 Param11(cParams.Param11),
00655 Param12(cParams.Param12),
00656 Param13(cParams.Param13),
00657 Param14(cParams.Param14)
00658 {
00659 }
00660
00661 Params(_T0 t0, _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) :
00662 Return(DefaultValue<_SR>::Default()),
00663 Param0(Type<T0> ::ConvertRealToStorage(t0)),
00664 Param1(Type<T1> ::ConvertRealToStorage(t1)),
00665 Param2(Type<T2> ::ConvertRealToStorage(t2)),
00666 Param3(Type<T3> ::ConvertRealToStorage(t3)),
00667 Param4(Type<T4> ::ConvertRealToStorage(t4)),
00668 Param5(Type<T5> ::ConvertRealToStorage(t5)),
00669 Param6(Type<T6> ::ConvertRealToStorage(t6)),
00670 Param7(Type<T7> ::ConvertRealToStorage(t7)),
00671 Param8(Type<T8> ::ConvertRealToStorage(t8)),
00672 Param9(Type<T9> ::ConvertRealToStorage(t9)),
00673 Param10(Type<T10>::ConvertRealToStorage(t10)),
00674 Param11(Type<T11>::ConvertRealToStorage(t11)),
00675 Param12(Type<T12>::ConvertRealToStorage(t12)),
00676 Param13(Type<T13>::ConvertRealToStorage(t13)),
00677 Param14(Type<T14>::ConvertRealToStorage(t14))
00678 {
00679 }
00680
00681 virtual ~Params()
00682 {
00683 }
00684
00685 Params &operator =(const Params &cParams)
00686 {
00687 Return = cParams.Return;
00688 Param0 = cParams.Param0;
00689 Param1 = cParams.Param1;
00690 Param2 = cParams.Param2;
00691 Param3 = cParams.Param3;
00692 Param4 = cParams.Param4;
00693 Param5 = cParams.Param5;
00694 Param6 = cParams.Param6;
00695 Param7 = cParams.Param7;
00696 Param8 = cParams.Param8;
00697 Param9 = cParams.Param9;
00698 Param10 = cParams.Param10;
00699 Param11 = cParams.Param11;
00700 Param12 = cParams.Param12;
00701 Param13 = cParams.Param13;
00702 Param14 = cParams.Param14;
00703 return *this;
00704 }
00705
00706 virtual String GetSignature() const override
00707 {
00708 return Signature<R, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14>::GetSignatureID();
00709 }
00710
00711 virtual int GetReturnTypeID() const override
00712 {
00713 return Type<R>::TypeID;
00714 }
00715
00716 virtual void *GetPointerToReturnValue() override
00717 {
00718 return (void*)&Return;
00719 }
00720
00721 virtual uint32 GetNumOfParameters() const override
00722 {
00723 return 15;
00724 }
00725
00726 virtual int GetParameterTypeID(uint32 nIndex) const override
00727 {
00728 switch (nIndex) {
00729 case 0: return Type<T0> ::TypeID;
00730 case 1: return Type<T1> ::TypeID;
00731 case 2: return Type<T2> ::TypeID;
00732 case 3: return Type<T3> ::TypeID;
00733 case 4: return Type<T4> ::TypeID;
00734 case 5: return Type<T5> ::TypeID;
00735 case 6: return Type<T6> ::TypeID;
00736 case 7: return Type<T7> ::TypeID;
00737 case 8: return Type<T8> ::TypeID;
00738 case 9: return Type<T9> ::TypeID;
00739 case 10: return Type<T10>::TypeID;
00740 case 11: return Type<T11>::TypeID;
00741 case 12: return Type<T12>::TypeID;
00742 case 13: return Type<T13>::TypeID;
00743 case 14: return Type<T14>::TypeID;
00744 default: return TypeInvalid;
00745 }
00746 }
00747
00748 virtual void *GetPointerToParameterValue(uint32 nIndex) override
00749 {
00750 switch (nIndex) {
00751 case 0: return (void*)&Param0;
00752 case 1: return (void*)&Param1;
00753 case 2: return (void*)&Param2;
00754 case 3: return (void*)&Param3;
00755 case 4: return (void*)&Param4;
00756 case 5: return (void*)&Param5;
00757 case 6: return (void*)&Param6;
00758 case 7: return (void*)&Param7;
00759 case 8: return (void*)&Param8;
00760 case 9: return (void*)&Param9;
00761 case 10: return (void*)&Param10;
00762 case 11: return (void*)&Param11;
00763 case 12: return (void*)&Param12;
00764 case 13: return (void*)&Param13;
00765 case 14: return (void*)&Param14;
00766 default: return nullptr;
00767 }
00768 }
00769 };
00770
00771
00772
00773
00774
00775
00776
00777
00778 template <typename T0, 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>
00779 class Params<void, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> : public DynParams {
00780 public:
00781 typedef typename Type<T0> ::_Type _T0;
00782 typedef typename Type<T1> ::_Type _T1;
00783 typedef typename Type<T2> ::_Type _T2;
00784 typedef typename Type<T3> ::_Type _T3;
00785 typedef typename Type<T4> ::_Type _T4;
00786 typedef typename Type<T5> ::_Type _T5;
00787 typedef typename Type<T6> ::_Type _T6;
00788 typedef typename Type<T7> ::_Type _T7;
00789 typedef typename Type<T8> ::_Type _T8;
00790 typedef typename Type<T9> ::_Type _T9;
00791 typedef typename Type<T10>::_Type _T10;
00792 typedef typename Type<T11>::_Type _T11;
00793 typedef typename Type<T12>::_Type _T12;
00794 typedef typename Type<T13>::_Type _T13;
00795 typedef typename Type<T14>::_Type _T14;
00796 typedef typename Type<T0> ::_StorageType _ST0;
00797 typedef typename Type<T1> ::_StorageType _ST1;
00798 typedef typename Type<T2> ::_StorageType _ST2;
00799 typedef typename Type<T3> ::_StorageType _ST3;
00800 typedef typename Type<T4> ::_StorageType _ST4;
00801 typedef typename Type<T5> ::_StorageType _ST5;
00802 typedef typename Type<T6> ::_StorageType _ST6;
00803 typedef typename Type<T7> ::_StorageType _ST7;
00804 typedef typename Type<T8> ::_StorageType _ST8;
00805 typedef typename Type<T9> ::_StorageType _ST9;
00806 typedef typename Type<T10>::_StorageType _ST10;
00807 typedef typename Type<T11>::_StorageType _ST11;
00808 typedef typename Type<T12>::_StorageType _ST12;
00809 typedef typename Type<T13>::_StorageType _ST13;
00810 typedef typename Type<T14>::_StorageType _ST14;
00811
00812 public:
00813 _ST0 Param0;
00814 _ST1 Param1;
00815 _ST2 Param2;
00816 _ST3 Param3;
00817 _ST4 Param4;
00818 _ST5 Param5;
00819 _ST6 Param6;
00820 _ST7 Param7;
00821 _ST8 Param8;
00822 _ST9 Param9;
00823 _ST10 Param10;
00824 _ST11 Param11;
00825 _ST12 Param12;
00826 _ST13 Param13;
00827 _ST14 Param14;
00828
00829 public:
00830 static Params FromString(const String &sParams) {
00831 ParamsParser cParser;
00832 _T0 t0 = (cParser.ParseString(sParams) ? Type<T0> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T0> ::Default());
00833 _T1 t1 = (cParser.Next() ? Type<T1> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T1> ::Default());
00834 _T2 t2 = (cParser.Next() ? Type<T2> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T2> ::Default());
00835 _T3 t3 = (cParser.Next() ? Type<T3> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T3> ::Default());
00836 _T4 t4 = (cParser.Next() ? Type<T4> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T4> ::Default());
00837 _T5 t5 = (cParser.Next() ? Type<T5> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T5> ::Default());
00838 _T6 t6 = (cParser.Next() ? Type<T6> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T6> ::Default());
00839 _T7 t7 = (cParser.Next() ? Type<T7> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T7> ::Default());
00840 _T8 t8 = (cParser.Next() ? Type<T8> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T8> ::Default());
00841 _T9 t9 = (cParser.Next() ? Type<T9> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T9> ::Default());
00842 _T10 t10 = (cParser.Next() ? Type<T10>::ConvertFromString(cParser.GetValue()) : DefaultValue<T10>::Default());
00843 _T11 t11 = (cParser.Next() ? Type<T11>::ConvertFromString(cParser.GetValue()) : DefaultValue<T11>::Default());
00844 _T12 t12 = (cParser.Next() ? Type<T12>::ConvertFromString(cParser.GetValue()) : DefaultValue<T12>::Default());
00845 _T13 t13 = (cParser.Next() ? Type<T13>::ConvertFromString(cParser.GetValue()) : DefaultValue<T13>::Default());
00846 _T14 t14 = (cParser.Next() ? Type<T14>::ConvertFromString(cParser.GetValue()) : DefaultValue<T14>::Default());
00847 return Params(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14);
00848 }
00849
00850 static Params FromXml(const XmlElement &cElement) {
00851 ParamsParserXml cParser;
00852 _T0 t0 = (cParser.ParseXml(cElement) ? Type<T0> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T0> ::Default());
00853 _T1 t1 = (cParser.Next() ? Type<T1> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T1> ::Default());
00854 _T2 t2 = (cParser.Next() ? Type<T2> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T2> ::Default());
00855 _T3 t3 = (cParser.Next() ? Type<T3> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T3> ::Default());
00856 _T4 t4 = (cParser.Next() ? Type<T4> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T4> ::Default());
00857 _T5 t5 = (cParser.Next() ? Type<T5> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T5> ::Default());
00858 _T6 t6 = (cParser.Next() ? Type<T6> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T6> ::Default());
00859 _T7 t7 = (cParser.Next() ? Type<T7> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T7> ::Default());
00860 _T8 t8 = (cParser.Next() ? Type<T8> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T8> ::Default());
00861 _T9 t9 = (cParser.Next() ? Type<T9> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T9> ::Default());
00862 _T10 t10 = (cParser.Next() ? Type<T10>::ConvertFromString(cParser.GetValue()) : DefaultValue<T10>::Default());
00863 _T11 t11 = (cParser.Next() ? Type<T11>::ConvertFromString(cParser.GetValue()) : DefaultValue<T11>::Default());
00864 _T12 t12 = (cParser.Next() ? Type<T12>::ConvertFromString(cParser.GetValue()) : DefaultValue<T12>::Default());
00865 _T13 t13 = (cParser.Next() ? Type<T13>::ConvertFromString(cParser.GetValue()) : DefaultValue<T13>::Default());
00866 _T14 t14 = (cParser.Next() ? Type<T14>::ConvertFromString(cParser.GetValue()) : DefaultValue<T14>::Default());
00867 return Params(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14);
00868 }
00869
00870 public:
00871 Params(const Params &cParams) :
00872 Param0(cParams.Param0),
00873 Param1(cParams.Param1),
00874 Param2(cParams.Param2),
00875 Param3(cParams.Param3),
00876 Param4(cParams.Param4),
00877 Param5(cParams.Param5),
00878 Param6(cParams.Param6),
00879 Param7(cParams.Param7),
00880 Param8(cParams.Param8),
00881 Param9(cParams.Param9),
00882 Param10(cParams.Param10),
00883 Param11(cParams.Param11),
00884 Param12(cParams.Param12),
00885 Param13(cParams.Param13),
00886 Param14(cParams.Param14)
00887 {
00888 }
00889
00890 Params(_T0 t0, _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) :
00891 Param0(Type<T0> ::ConvertRealToStorage(t0)),
00892 Param1(Type<T1> ::ConvertRealToStorage(t1)),
00893 Param2(Type<T2> ::ConvertRealToStorage(t2)),
00894 Param3(Type<T3> ::ConvertRealToStorage(t3)),
00895 Param4(Type<T4> ::ConvertRealToStorage(t4)),
00896 Param5(Type<T5> ::ConvertRealToStorage(t5)),
00897 Param6(Type<T6> ::ConvertRealToStorage(t6)),
00898 Param7(Type<T7> ::ConvertRealToStorage(t7)),
00899 Param8(Type<T8> ::ConvertRealToStorage(t8)),
00900 Param9(Type<T9> ::ConvertRealToStorage(t9)),
00901 Param10(Type<T10>::ConvertRealToStorage(t10)),
00902 Param11(Type<T11>::ConvertRealToStorage(t11)),
00903 Param12(Type<T12>::ConvertRealToStorage(t12)),
00904 Param13(Type<T13>::ConvertRealToStorage(t13)),
00905 Param14(Type<T14>::ConvertRealToStorage(t14))
00906 {
00907 }
00908
00909 virtual ~Params()
00910 {
00911 }
00912
00913 Params &operator =(const Params &cParams)
00914 {
00915 Param0 = cParams.Param0;
00916 Param1 = cParams.Param1;
00917 Param2 = cParams.Param2;
00918 Param3 = cParams.Param3;
00919 Param4 = cParams.Param4;
00920 Param5 = cParams.Param5;
00921 Param6 = cParams.Param6;
00922 Param7 = cParams.Param7;
00923 Param8 = cParams.Param8;
00924 Param9 = cParams.Param9;
00925 Param10 = cParams.Param10;
00926 Param11 = cParams.Param11;
00927 Param12 = cParams.Param12;
00928 Param13 = cParams.Param13;
00929 Param14 = cParams.Param14;
00930 return *this;
00931 }
00932
00933 virtual String GetSignature() const override
00934 {
00935 return Signature<void, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14>::GetSignatureID();
00936 }
00937
00938 virtual uint32 GetNumOfParameters() const override
00939 {
00940 return 15;
00941 }
00942
00943 virtual int GetParameterTypeID(uint32 nIndex) const override
00944 {
00945 switch (nIndex) {
00946 case 0: return Type<T0> ::TypeID;
00947 case 1: return Type<T1> ::TypeID;
00948 case 2: return Type<T2> ::TypeID;
00949 case 3: return Type<T3> ::TypeID;
00950 case 4: return Type<T4> ::TypeID;
00951 case 5: return Type<T5> ::TypeID;
00952 case 6: return Type<T6> ::TypeID;
00953 case 7: return Type<T7> ::TypeID;
00954 case 8: return Type<T8> ::TypeID;
00955 case 9: return Type<T9> ::TypeID;
00956 case 10: return Type<T10>::TypeID;
00957 case 11: return Type<T11>::TypeID;
00958 case 12: return Type<T12>::TypeID;
00959 case 13: return Type<T13>::TypeID;
00960 case 14: return Type<T14>::TypeID;
00961 default: return TypeInvalid;
00962 }
00963 }
00964
00965 virtual void *GetPointerToParameterValue(uint32 nIndex) override
00966 {
00967 switch (nIndex) {
00968 case 0: return (void*)&Param0;
00969 case 1: return (void*)&Param1;
00970 case 2: return (void*)&Param2;
00971 case 3: return (void*)&Param3;
00972 case 4: return (void*)&Param4;
00973 case 5: return (void*)&Param5;
00974 case 6: return (void*)&Param6;
00975 case 7: return (void*)&Param7;
00976 case 8: return (void*)&Param8;
00977 case 9: return (void*)&Param9;
00978 case 10: return (void*)&Param10;
00979 case 11: return (void*)&Param11;
00980 case 12: return (void*)&Param12;
00981 case 13: return (void*)&Param13;
00982 case 14: return (void*)&Param14;
00983 default: return nullptr;
00984 }
00985 }
00986 };
00987
00988
00989
00990
00991
00992
00993
00994
00995 template <typename R, typename T0, 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>
00996 class Params<R, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> : public DynParams {
00997 public:
00998 typedef typename Type<R> ::_Type _R;
00999 typedef typename Type<T0> ::_Type _T0;
01000 typedef typename Type<T1> ::_Type _T1;
01001 typedef typename Type<T2> ::_Type _T2;
01002 typedef typename Type<T3> ::_Type _T3;
01003 typedef typename Type<T4> ::_Type _T4;
01004 typedef typename Type<T5> ::_Type _T5;
01005 typedef typename Type<T6> ::_Type _T6;
01006 typedef typename Type<T7> ::_Type _T7;
01007 typedef typename Type<T8> ::_Type _T8;
01008 typedef typename Type<T9> ::_Type _T9;
01009 typedef typename Type<T10>::_Type _T10;
01010 typedef typename Type<T11>::_Type _T11;
01011 typedef typename Type<T12>::_Type _T12;
01012 typedef typename Type<T13>::_Type _T13;
01013 typedef typename Type<R> ::_StorageType _SR;
01014 typedef typename Type<T0> ::_StorageType _ST0;
01015 typedef typename Type<T1> ::_StorageType _ST1;
01016 typedef typename Type<T2> ::_StorageType _ST2;
01017 typedef typename Type<T3> ::_StorageType _ST3;
01018 typedef typename Type<T4> ::_StorageType _ST4;
01019 typedef typename Type<T5> ::_StorageType _ST5;
01020 typedef typename Type<T6> ::_StorageType _ST6;
01021 typedef typename Type<T7> ::_StorageType _ST7;
01022 typedef typename Type<T8> ::_StorageType _ST8;
01023 typedef typename Type<T9> ::_StorageType _ST9;
01024 typedef typename Type<T10>::_StorageType _ST10;
01025 typedef typename Type<T11>::_StorageType _ST11;
01026 typedef typename Type<T12>::_StorageType _ST12;
01027 typedef typename Type<T13>::_StorageType _ST13;
01028
01029 public:
01030 _SR Return;
01031 _ST0 Param0;
01032 _ST1 Param1;
01033 _ST2 Param2;
01034 _ST3 Param3;
01035 _ST4 Param4;
01036 _ST5 Param5;
01037 _ST6 Param6;
01038 _ST7 Param7;
01039 _ST8 Param8;
01040 _ST9 Param9;
01041 _ST10 Param10;
01042 _ST11 Param11;
01043 _ST12 Param12;
01044 _ST13 Param13;
01045
01046 public:
01047 static Params FromString(const String &sParams) {
01048 ParamsParser cParser;
01049 _T0 t0 = (cParser.ParseString(sParams) ? Type<T0> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T0> ::Default());
01050 _T1 t1 = (cParser.Next() ? Type<T1> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T1> ::Default());
01051 _T2 t2 = (cParser.Next() ? Type<T2> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T2> ::Default());
01052 _T3 t3 = (cParser.Next() ? Type<T3> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T3> ::Default());
01053 _T4 t4 = (cParser.Next() ? Type<T4> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T4> ::Default());
01054 _T5 t5 = (cParser.Next() ? Type<T5> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T5> ::Default());
01055 _T6 t6 = (cParser.Next() ? Type<T6> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T6> ::Default());
01056 _T7 t7 = (cParser.Next() ? Type<T7> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T7> ::Default());
01057 _T8 t8 = (cParser.Next() ? Type<T8> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T8> ::Default());
01058 _T9 t9 = (cParser.Next() ? Type<T9> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T9> ::Default());
01059 _T10 t10 = (cParser.Next() ? Type<T10>::ConvertFromString(cParser.GetValue()) : DefaultValue<T10>::Default());
01060 _T11 t11 = (cParser.Next() ? Type<T11>::ConvertFromString(cParser.GetValue()) : DefaultValue<T11>::Default());
01061 _T12 t12 = (cParser.Next() ? Type<T12>::ConvertFromString(cParser.GetValue()) : DefaultValue<T12>::Default());
01062 _T13 t13 = (cParser.Next() ? Type<T13>::ConvertFromString(cParser.GetValue()) : DefaultValue<T13>::Default());
01063 return Params(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13);
01064 }
01065
01066 static Params FromXml(const XmlElement &cElement) {
01067 ParamsParserXml cParser;
01068 _T0 t0 = (cParser.ParseXml(cElement) ? Type<T0> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T0> ::Default());
01069 _T1 t1 = (cParser.Next() ? Type<T1> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T1> ::Default());
01070 _T2 t2 = (cParser.Next() ? Type<T2> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T2> ::Default());
01071 _T3 t3 = (cParser.Next() ? Type<T3> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T3> ::Default());
01072 _T4 t4 = (cParser.Next() ? Type<T4> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T4> ::Default());
01073 _T5 t5 = (cParser.Next() ? Type<T5> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T5> ::Default());
01074 _T6 t6 = (cParser.Next() ? Type<T6> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T6> ::Default());
01075 _T7 t7 = (cParser.Next() ? Type<T7> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T7> ::Default());
01076 _T8 t8 = (cParser.Next() ? Type<T8> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T8> ::Default());
01077 _T9 t9 = (cParser.Next() ? Type<T9> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T9> ::Default());
01078 _T10 t10 = (cParser.Next() ? Type<T10>::ConvertFromString(cParser.GetValue()) : DefaultValue<T10>::Default());
01079 _T11 t11 = (cParser.Next() ? Type<T11>::ConvertFromString(cParser.GetValue()) : DefaultValue<T11>::Default());
01080 _T12 t12 = (cParser.Next() ? Type<T12>::ConvertFromString(cParser.GetValue()) : DefaultValue<T12>::Default());
01081 _T13 t13 = (cParser.Next() ? Type<T13>::ConvertFromString(cParser.GetValue()) : DefaultValue<T13>::Default());
01082 return Params(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13);
01083 }
01084
01085 public:
01086 Params(const Params &cParams) :
01087 Return(DefaultValue<_SR>::Default()),
01088 Param0(cParams.Param0),
01089 Param1(cParams.Param1),
01090 Param2(cParams.Param2),
01091 Param3(cParams.Param3),
01092 Param4(cParams.Param4),
01093 Param5(cParams.Param5),
01094 Param6(cParams.Param6),
01095 Param7(cParams.Param7),
01096 Param8(cParams.Param8),
01097 Param9(cParams.Param9),
01098 Param10(cParams.Param10),
01099 Param11(cParams.Param11),
01100 Param12(cParams.Param12),
01101 Param13(cParams.Param13)
01102 {
01103 }
01104
01105 Params(_T0 t0, _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) :
01106 Return(DefaultValue<_SR>::Default()),
01107 Param0(Type<T0> ::ConvertRealToStorage(t0)),
01108 Param1(Type<T1> ::ConvertRealToStorage(t1)),
01109 Param2(Type<T2> ::ConvertRealToStorage(t2)),
01110 Param3(Type<T3> ::ConvertRealToStorage(t3)),
01111 Param4(Type<T4> ::ConvertRealToStorage(t4)),
01112 Param5(Type<T5> ::ConvertRealToStorage(t5)),
01113 Param6(Type<T6> ::ConvertRealToStorage(t6)),
01114 Param7(Type<T7> ::ConvertRealToStorage(t7)),
01115 Param8(Type<T8> ::ConvertRealToStorage(t8)),
01116 Param9(Type<T9> ::ConvertRealToStorage(t9)),
01117 Param10(Type<T10>::ConvertRealToStorage(t10)),
01118 Param11(Type<T11>::ConvertRealToStorage(t11)),
01119 Param12(Type<T12>::ConvertRealToStorage(t12)),
01120 Param13(Type<T13>::ConvertRealToStorage(t13))
01121 {
01122 }
01123
01124 virtual ~Params()
01125 {
01126 }
01127
01128 Params &operator =(const Params &cParams)
01129 {
01130 Return = cParams.Return;
01131 Param0 = cParams.Param0;
01132 Param1 = cParams.Param1;
01133 Param2 = cParams.Param2;
01134 Param3 = cParams.Param3;
01135 Param4 = cParams.Param4;
01136 Param5 = cParams.Param5;
01137 Param6 = cParams.Param6;
01138 Param7 = cParams.Param7;
01139 Param8 = cParams.Param8;
01140 Param9 = cParams.Param9;
01141 Param10 = cParams.Param10;
01142 Param11 = cParams.Param11;
01143 Param12 = cParams.Param12;
01144 Param13 = cParams.Param13;
01145 return *this;
01146 }
01147
01148 virtual String GetSignature() const override
01149 {
01150 return Signature<R, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13>::GetSignatureID();
01151 }
01152
01153 virtual int GetReturnTypeID() const override
01154 {
01155 return Type<R>::TypeID;
01156 }
01157
01158 virtual void *GetPointerToReturnValue() override
01159 {
01160 return (void*)&Return;
01161 }
01162
01163 virtual uint32 GetNumOfParameters() const override
01164 {
01165 return 14;
01166 }
01167
01168 virtual int GetParameterTypeID(uint32 nIndex) const override
01169 {
01170 switch (nIndex) {
01171 case 0: return Type<T0> ::TypeID;
01172 case 1: return Type<T1> ::TypeID;
01173 case 2: return Type<T2> ::TypeID;
01174 case 3: return Type<T3> ::TypeID;
01175 case 4: return Type<T4> ::TypeID;
01176 case 5: return Type<T5> ::TypeID;
01177 case 6: return Type<T6> ::TypeID;
01178 case 7: return Type<T7> ::TypeID;
01179 case 8: return Type<T8> ::TypeID;
01180 case 9: return Type<T9> ::TypeID;
01181 case 10: return Type<T10>::TypeID;
01182 case 11: return Type<T11>::TypeID;
01183 case 12: return Type<T12>::TypeID;
01184 case 13: return Type<T13>::TypeID;
01185 default: return TypeInvalid;
01186 }
01187 }
01188
01189 virtual void *GetPointerToParameterValue(uint32 nIndex) override
01190 {
01191 switch (nIndex) {
01192 case 0: return (void*)&Param0;
01193 case 1: return (void*)&Param1;
01194 case 2: return (void*)&Param2;
01195 case 3: return (void*)&Param3;
01196 case 4: return (void*)&Param4;
01197 case 5: return (void*)&Param5;
01198 case 6: return (void*)&Param6;
01199 case 7: return (void*)&Param7;
01200 case 8: return (void*)&Param8;
01201 case 9: return (void*)&Param9;
01202 case 10: return (void*)&Param10;
01203 case 11: return (void*)&Param11;
01204 case 12: return (void*)&Param12;
01205 case 13: return (void*)&Param13;
01206 default: return nullptr;
01207 }
01208 }
01209 };
01210
01211
01212
01213
01214
01215
01216
01217
01218 template <typename T0, 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>
01219 class Params<void, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> : public DynParams {
01220 public:
01221 typedef typename Type<T0> ::_Type _T0;
01222 typedef typename Type<T1> ::_Type _T1;
01223 typedef typename Type<T2> ::_Type _T2;
01224 typedef typename Type<T3> ::_Type _T3;
01225 typedef typename Type<T4> ::_Type _T4;
01226 typedef typename Type<T5> ::_Type _T5;
01227 typedef typename Type<T6> ::_Type _T6;
01228 typedef typename Type<T7> ::_Type _T7;
01229 typedef typename Type<T8> ::_Type _T8;
01230 typedef typename Type<T9> ::_Type _T9;
01231 typedef typename Type<T10>::_Type _T10;
01232 typedef typename Type<T11>::_Type _T11;
01233 typedef typename Type<T12>::_Type _T12;
01234 typedef typename Type<T13>::_Type _T13;
01235 typedef typename Type<T0> ::_StorageType _ST0;
01236 typedef typename Type<T1> ::_StorageType _ST1;
01237 typedef typename Type<T2> ::_StorageType _ST2;
01238 typedef typename Type<T3> ::_StorageType _ST3;
01239 typedef typename Type<T4> ::_StorageType _ST4;
01240 typedef typename Type<T5> ::_StorageType _ST5;
01241 typedef typename Type<T6> ::_StorageType _ST6;
01242 typedef typename Type<T7> ::_StorageType _ST7;
01243 typedef typename Type<T8> ::_StorageType _ST8;
01244 typedef typename Type<T9> ::_StorageType _ST9;
01245 typedef typename Type<T10>::_StorageType _ST10;
01246 typedef typename Type<T11>::_StorageType _ST11;
01247 typedef typename Type<T12>::_StorageType _ST12;
01248 typedef typename Type<T13>::_StorageType _ST13;
01249
01250 public:
01251 _ST0 Param0;
01252 _ST1 Param1;
01253 _ST2 Param2;
01254 _ST3 Param3;
01255 _ST4 Param4;
01256 _ST5 Param5;
01257 _ST6 Param6;
01258 _ST7 Param7;
01259 _ST8 Param8;
01260 _ST9 Param9;
01261 _ST10 Param10;
01262 _ST11 Param11;
01263 _ST12 Param12;
01264 _ST13 Param13;
01265
01266 public:
01267 static Params FromString(const String &sParams) {
01268 ParamsParser cParser;
01269 _T0 t0 = (cParser.ParseString(sParams) ? Type<T0> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T0> ::Default());
01270 _T1 t1 = (cParser.Next() ? Type<T1> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T1> ::Default());
01271 _T2 t2 = (cParser.Next() ? Type<T2> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T2> ::Default());
01272 _T3 t3 = (cParser.Next() ? Type<T3> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T3> ::Default());
01273 _T4 t4 = (cParser.Next() ? Type<T4> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T4> ::Default());
01274 _T5 t5 = (cParser.Next() ? Type<T5> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T5> ::Default());
01275 _T6 t6 = (cParser.Next() ? Type<T6> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T6> ::Default());
01276 _T7 t7 = (cParser.Next() ? Type<T7> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T7> ::Default());
01277 _T8 t8 = (cParser.Next() ? Type<T8> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T8> ::Default());
01278 _T9 t9 = (cParser.Next() ? Type<T9> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T9> ::Default());
01279 _T10 t10 = (cParser.Next() ? Type<T10>::ConvertFromString(cParser.GetValue()) : DefaultValue<T10>::Default());
01280 _T11 t11 = (cParser.Next() ? Type<T11>::ConvertFromString(cParser.GetValue()) : DefaultValue<T11>::Default());
01281 _T12 t12 = (cParser.Next() ? Type<T12>::ConvertFromString(cParser.GetValue()) : DefaultValue<T12>::Default());
01282 _T13 t13 = (cParser.Next() ? Type<T13>::ConvertFromString(cParser.GetValue()) : DefaultValue<T13>::Default());
01283 return Params(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13);
01284 }
01285
01286 static Params FromXml(const XmlElement &cElement) {
01287 ParamsParserXml cParser;
01288 _T0 t0 = (cParser.ParseXml(cElement) ? Type<T0> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T0> ::Default());
01289 _T1 t1 = (cParser.Next() ? Type<T1> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T1> ::Default());
01290 _T2 t2 = (cParser.Next() ? Type<T2> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T2> ::Default());
01291 _T3 t3 = (cParser.Next() ? Type<T3> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T3> ::Default());
01292 _T4 t4 = (cParser.Next() ? Type<T4> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T4> ::Default());
01293 _T5 t5 = (cParser.Next() ? Type<T5> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T5> ::Default());
01294 _T6 t6 = (cParser.Next() ? Type<T6> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T6> ::Default());
01295 _T7 t7 = (cParser.Next() ? Type<T7> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T7> ::Default());
01296 _T8 t8 = (cParser.Next() ? Type<T8> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T8> ::Default());
01297 _T9 t9 = (cParser.Next() ? Type<T9> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T9> ::Default());
01298 _T10 t10 = (cParser.Next() ? Type<T10>::ConvertFromString(cParser.GetValue()) : DefaultValue<T10>::Default());
01299 _T11 t11 = (cParser.Next() ? Type<T11>::ConvertFromString(cParser.GetValue()) : DefaultValue<T11>::Default());
01300 _T12 t12 = (cParser.Next() ? Type<T12>::ConvertFromString(cParser.GetValue()) : DefaultValue<T12>::Default());
01301 _T13 t13 = (cParser.Next() ? Type<T13>::ConvertFromString(cParser.GetValue()) : DefaultValue<T13>::Default());
01302 return Params(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13);
01303 }
01304
01305 public:
01306 Params(const Params &cParams) :
01307 Param0(cParams.Param0),
01308 Param1(cParams.Param1),
01309 Param2(cParams.Param2),
01310 Param3(cParams.Param3),
01311 Param4(cParams.Param4),
01312 Param5(cParams.Param5),
01313 Param6(cParams.Param6),
01314 Param7(cParams.Param7),
01315 Param8(cParams.Param8),
01316 Param9(cParams.Param9),
01317 Param10(cParams.Param10),
01318 Param11(cParams.Param11),
01319 Param12(cParams.Param12),
01320 Param13(cParams.Param13)
01321 {
01322 }
01323
01324 Params(_T0 t0, _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) :
01325 Param0(Type<T0> ::ConvertRealToStorage(t0)),
01326 Param1(Type<T1> ::ConvertRealToStorage(t1)),
01327 Param2(Type<T2> ::ConvertRealToStorage(t2)),
01328 Param3(Type<T3> ::ConvertRealToStorage(t3)),
01329 Param4(Type<T4> ::ConvertRealToStorage(t4)),
01330 Param5(Type<T5> ::ConvertRealToStorage(t5)),
01331 Param6(Type<T6> ::ConvertRealToStorage(t6)),
01332 Param7(Type<T7> ::ConvertRealToStorage(t7)),
01333 Param8(Type<T8> ::ConvertRealToStorage(t8)),
01334 Param9(Type<T9> ::ConvertRealToStorage(t9)),
01335 Param10(Type<T10>::ConvertRealToStorage(t10)),
01336 Param11(Type<T11>::ConvertRealToStorage(t11)),
01337 Param12(Type<T12>::ConvertRealToStorage(t12)),
01338 Param13(Type<T13>::ConvertRealToStorage(t13))
01339 {
01340 }
01341
01342 virtual ~Params()
01343 {
01344 }
01345
01346 Params &operator =(const Params &cParams)
01347 {
01348 Param0 = cParams.Param0;
01349 Param1 = cParams.Param1;
01350 Param2 = cParams.Param2;
01351 Param3 = cParams.Param3;
01352 Param4 = cParams.Param4;
01353 Param5 = cParams.Param5;
01354 Param6 = cParams.Param6;
01355 Param7 = cParams.Param7;
01356 Param8 = cParams.Param8;
01357 Param9 = cParams.Param9;
01358 Param10 = cParams.Param10;
01359 Param11 = cParams.Param11;
01360 Param12 = cParams.Param12;
01361 Param13 = cParams.Param13;
01362 return *this;
01363 }
01364
01365 virtual String GetSignature() const override
01366 {
01367 return Signature<void, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13>::GetSignatureID();
01368 }
01369
01370 virtual uint32 GetNumOfParameters() const override
01371 {
01372 return 14;
01373 }
01374
01375 virtual int GetParameterTypeID(uint32 nIndex) const override
01376 {
01377 switch (nIndex) {
01378 case 0: return Type<T0> ::TypeID;
01379 case 1: return Type<T1> ::TypeID;
01380 case 2: return Type<T2> ::TypeID;
01381 case 3: return Type<T3> ::TypeID;
01382 case 4: return Type<T4> ::TypeID;
01383 case 5: return Type<T5> ::TypeID;
01384 case 6: return Type<T6> ::TypeID;
01385 case 7: return Type<T7> ::TypeID;
01386 case 8: return Type<T8> ::TypeID;
01387 case 9: return Type<T9> ::TypeID;
01388 case 10: return Type<T10>::TypeID;
01389 case 11: return Type<T11>::TypeID;
01390 case 12: return Type<T12>::TypeID;
01391 case 13: return Type<T13>::TypeID;
01392 default: return TypeInvalid;
01393 }
01394 }
01395
01396 virtual void *GetPointerToParameterValue(uint32 nIndex) override
01397 {
01398 switch (nIndex) {
01399 case 0: return (void*)&Param0;
01400 case 1: return (void*)&Param1;
01401 case 2: return (void*)&Param2;
01402 case 3: return (void*)&Param3;
01403 case 4: return (void*)&Param4;
01404 case 5: return (void*)&Param5;
01405 case 6: return (void*)&Param6;
01406 case 7: return (void*)&Param7;
01407 case 8: return (void*)&Param8;
01408 case 9: return (void*)&Param9;
01409 case 10: return (void*)&Param10;
01410 case 11: return (void*)&Param11;
01411 case 12: return (void*)&Param12;
01412 case 13: return (void*)&Param13;
01413 default: return nullptr;
01414 }
01415 }
01416 };
01417
01418
01419
01420
01421
01422
01423
01424
01425 template <typename R, typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12>
01426 class Params<R, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> : public DynParams {
01427 public:
01428 typedef typename Type<R> ::_Type _R;
01429 typedef typename Type<T0> ::_Type _T0;
01430 typedef typename Type<T1> ::_Type _T1;
01431 typedef typename Type<T2> ::_Type _T2;
01432 typedef typename Type<T3> ::_Type _T3;
01433 typedef typename Type<T4> ::_Type _T4;
01434 typedef typename Type<T5> ::_Type _T5;
01435 typedef typename Type<T6> ::_Type _T6;
01436 typedef typename Type<T7> ::_Type _T7;
01437 typedef typename Type<T8> ::_Type _T8;
01438 typedef typename Type<T9> ::_Type _T9;
01439 typedef typename Type<T10>::_Type _T10;
01440 typedef typename Type<T11>::_Type _T11;
01441 typedef typename Type<T12>::_Type _T12;
01442 typedef typename Type<R> ::_StorageType _SR;
01443 typedef typename Type<T0> ::_StorageType _ST0;
01444 typedef typename Type<T1> ::_StorageType _ST1;
01445 typedef typename Type<T2> ::_StorageType _ST2;
01446 typedef typename Type<T3> ::_StorageType _ST3;
01447 typedef typename Type<T4> ::_StorageType _ST4;
01448 typedef typename Type<T5> ::_StorageType _ST5;
01449 typedef typename Type<T6> ::_StorageType _ST6;
01450 typedef typename Type<T7> ::_StorageType _ST7;
01451 typedef typename Type<T8> ::_StorageType _ST8;
01452 typedef typename Type<T9> ::_StorageType _ST9;
01453 typedef typename Type<T10>::_StorageType _ST10;
01454 typedef typename Type<T11>::_StorageType _ST11;
01455 typedef typename Type<T12>::_StorageType _ST12;
01456
01457 public:
01458 _SR Return;
01459 _ST0 Param0;
01460 _ST1 Param1;
01461 _ST2 Param2;
01462 _ST3 Param3;
01463 _ST4 Param4;
01464 _ST5 Param5;
01465 _ST6 Param6;
01466 _ST7 Param7;
01467 _ST8 Param8;
01468 _ST9 Param9;
01469 _ST10 Param10;
01470 _ST11 Param11;
01471 _ST12 Param12;
01472
01473 public:
01474 static Params FromString(const String &sParams) {
01475 ParamsParser cParser;
01476 _T0 t0 = (cParser.ParseString(sParams) ? Type<T0> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T0> ::Default());
01477 _T1 t1 = (cParser.Next() ? Type<T1> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T1> ::Default());
01478 _T2 t2 = (cParser.Next() ? Type<T2> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T2> ::Default());
01479 _T3 t3 = (cParser.Next() ? Type<T3> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T3> ::Default());
01480 _T4 t4 = (cParser.Next() ? Type<T4> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T4> ::Default());
01481 _T5 t5 = (cParser.Next() ? Type<T5> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T5> ::Default());
01482 _T6 t6 = (cParser.Next() ? Type<T6> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T6> ::Default());
01483 _T7 t7 = (cParser.Next() ? Type<T7> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T7> ::Default());
01484 _T8 t8 = (cParser.Next() ? Type<T8> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T8> ::Default());
01485 _T9 t9 = (cParser.Next() ? Type<T9> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T9> ::Default());
01486 _T10 t10 = (cParser.Next() ? Type<T10>::ConvertFromString(cParser.GetValue()) : DefaultValue<T10>::Default());
01487 _T11 t11 = (cParser.Next() ? Type<T11>::ConvertFromString(cParser.GetValue()) : DefaultValue<T11>::Default());
01488 _T12 t12 = (cParser.Next() ? Type<T12>::ConvertFromString(cParser.GetValue()) : DefaultValue<T12>::Default());
01489 return Params(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12);
01490 }
01491
01492 static Params FromXml(const XmlElement &cElement) {
01493 ParamsParserXml cParser;
01494 _T0 t0 = (cParser.ParseXml(cElement) ? Type<T0> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T0> ::Default());
01495 _T1 t1 = (cParser.Next() ? Type<T1> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T1> ::Default());
01496 _T2 t2 = (cParser.Next() ? Type<T2> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T2> ::Default());
01497 _T3 t3 = (cParser.Next() ? Type<T3> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T3> ::Default());
01498 _T4 t4 = (cParser.Next() ? Type<T4> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T4> ::Default());
01499 _T5 t5 = (cParser.Next() ? Type<T5> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T5> ::Default());
01500 _T6 t6 = (cParser.Next() ? Type<T6> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T6> ::Default());
01501 _T7 t7 = (cParser.Next() ? Type<T7> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T7> ::Default());
01502 _T8 t8 = (cParser.Next() ? Type<T8> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T8> ::Default());
01503 _T9 t9 = (cParser.Next() ? Type<T9> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T9> ::Default());
01504 _T10 t10 = (cParser.Next() ? Type<T10>::ConvertFromString(cParser.GetValue()) : DefaultValue<T10>::Default());
01505 _T11 t11 = (cParser.Next() ? Type<T11>::ConvertFromString(cParser.GetValue()) : DefaultValue<T11>::Default());
01506 _T12 t12 = (cParser.Next() ? Type<T12>::ConvertFromString(cParser.GetValue()) : DefaultValue<T12>::Default());
01507 return Params(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12);
01508 }
01509
01510 public:
01511 Params(const Params &cParams) :
01512 Return(DefaultValue<_SR>::Default()),
01513 Param0(cParams.Param0),
01514 Param1(cParams.Param1),
01515 Param2(cParams.Param2),
01516 Param3(cParams.Param3),
01517 Param4(cParams.Param4),
01518 Param5(cParams.Param5),
01519 Param6(cParams.Param6),
01520 Param7(cParams.Param7),
01521 Param8(cParams.Param8),
01522 Param9(cParams.Param9),
01523 Param10(cParams.Param10),
01524 Param11(cParams.Param11),
01525 Param12(cParams.Param12)
01526 {
01527 }
01528
01529 Params(_T0 t0, _T1 t1, _T2 t2, _T3 t3, _T4 t4, _T5 t5, _T6 t6, _T7 t7, _T8 t8, _T9 t9, _T10 t10, _T11 t11, _T12 t12) :
01530 Return(DefaultValue<_SR>::Default()),
01531 Param0(Type<T0> ::ConvertRealToStorage(t0)),
01532 Param1(Type<T1> ::ConvertRealToStorage(t1)),
01533 Param2(Type<T2> ::ConvertRealToStorage(t2)),
01534 Param3(Type<T3> ::ConvertRealToStorage(t3)),
01535 Param4(Type<T4> ::ConvertRealToStorage(t4)),
01536 Param5(Type<T5> ::ConvertRealToStorage(t5)),
01537 Param6(Type<T6> ::ConvertRealToStorage(t6)),
01538 Param7(Type<T7> ::ConvertRealToStorage(t7)),
01539 Param8(Type<T8> ::ConvertRealToStorage(t8)),
01540 Param9(Type<T9> ::ConvertRealToStorage(t9)),
01541 Param10(Type<T10>::ConvertRealToStorage(t10)),
01542 Param11(Type<T11>::ConvertRealToStorage(t11)),
01543 Param12(Type<T12>::ConvertRealToStorage(t12))
01544 {
01545 }
01546
01547 virtual ~Params()
01548 {
01549 }
01550
01551 Params &operator =(const Params &cParams)
01552 {
01553 Return = cParams.Return;
01554 Param0 = cParams.Param0;
01555 Param1 = cParams.Param1;
01556 Param2 = cParams.Param2;
01557 Param3 = cParams.Param3;
01558 Param4 = cParams.Param4;
01559 Param5 = cParams.Param5;
01560 Param6 = cParams.Param6;
01561 Param7 = cParams.Param7;
01562 Param8 = cParams.Param8;
01563 Param9 = cParams.Param9;
01564 Param10 = cParams.Param10;
01565 Param11 = cParams.Param11;
01566 Param12 = cParams.Param12;
01567 return *this;
01568 }
01569
01570 virtual String GetSignature() const override
01571 {
01572 return Signature<R, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>::GetSignatureID();
01573 }
01574
01575 virtual int GetReturnTypeID() const override
01576 {
01577 return Type<R>::TypeID;
01578 }
01579
01580 virtual void *GetPointerToReturnValue() override
01581 {
01582 return (void*)&Return;
01583 }
01584
01585 virtual uint32 GetNumOfParameters() const override
01586 {
01587 return 13;
01588 }
01589
01590 virtual int GetParameterTypeID(uint32 nIndex) const override
01591 {
01592 switch (nIndex) {
01593 case 0: return Type<T0> ::TypeID;
01594 case 1: return Type<T1> ::TypeID;
01595 case 2: return Type<T2> ::TypeID;
01596 case 3: return Type<T3> ::TypeID;
01597 case 4: return Type<T4> ::TypeID;
01598 case 5: return Type<T5> ::TypeID;
01599 case 6: return Type<T6> ::TypeID;
01600 case 7: return Type<T7> ::TypeID;
01601 case 8: return Type<T8> ::TypeID;
01602 case 9: return Type<T9> ::TypeID;
01603 case 10: return Type<T10>::TypeID;
01604 case 11: return Type<T11>::TypeID;
01605 case 12: return Type<T12>::TypeID;
01606 default: return TypeInvalid;
01607 }
01608 }
01609
01610 virtual void *GetPointerToParameterValue(uint32 nIndex) override
01611 {
01612 switch (nIndex) {
01613 case 0: return (void*)&Param0;
01614 case 1: return (void*)&Param1;
01615 case 2: return (void*)&Param2;
01616 case 3: return (void*)&Param3;
01617 case 4: return (void*)&Param4;
01618 case 5: return (void*)&Param5;
01619 case 6: return (void*)&Param6;
01620 case 7: return (void*)&Param7;
01621 case 8: return (void*)&Param8;
01622 case 9: return (void*)&Param9;
01623 case 10: return (void*)&Param10;
01624 case 11: return (void*)&Param11;
01625 case 12: return (void*)&Param12;
01626 default: return nullptr;
01627 }
01628 }
01629 };
01630
01631
01632
01633
01634
01635
01636
01637
01638 template <typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12>
01639 class Params<void, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> : public DynParams {
01640 public:
01641 typedef typename Type<T0> ::_Type _T0;
01642 typedef typename Type<T1> ::_Type _T1;
01643 typedef typename Type<T2> ::_Type _T2;
01644 typedef typename Type<T3> ::_Type _T3;
01645 typedef typename Type<T4> ::_Type _T4;
01646 typedef typename Type<T5> ::_Type _T5;
01647 typedef typename Type<T6> ::_Type _T6;
01648 typedef typename Type<T7> ::_Type _T7;
01649 typedef typename Type<T8> ::_Type _T8;
01650 typedef typename Type<T9> ::_Type _T9;
01651 typedef typename Type<T10>::_Type _T10;
01652 typedef typename Type<T11>::_Type _T11;
01653 typedef typename Type<T12>::_Type _T12;
01654 typedef typename Type<T0> ::_StorageType _ST0;
01655 typedef typename Type<T1> ::_StorageType _ST1;
01656 typedef typename Type<T2> ::_StorageType _ST2;
01657 typedef typename Type<T3> ::_StorageType _ST3;
01658 typedef typename Type<T4> ::_StorageType _ST4;
01659 typedef typename Type<T5> ::_StorageType _ST5;
01660 typedef typename Type<T6> ::_StorageType _ST6;
01661 typedef typename Type<T7> ::_StorageType _ST7;
01662 typedef typename Type<T8> ::_StorageType _ST8;
01663 typedef typename Type<T9> ::_StorageType _ST9;
01664 typedef typename Type<T10>::_StorageType _ST10;
01665 typedef typename Type<T11>::_StorageType _ST11;
01666 typedef typename Type<T12>::_StorageType _ST12;
01667
01668 public:
01669 _ST0 Param0;
01670 _ST1 Param1;
01671 _ST2 Param2;
01672 _ST3 Param3;
01673 _ST4 Param4;
01674 _ST5 Param5;
01675 _ST6 Param6;
01676 _ST7 Param7;
01677 _ST8 Param8;
01678 _ST9 Param9;
01679 _ST10 Param10;
01680 _ST11 Param11;
01681 _ST12 Param12;
01682
01683 public:
01684 static Params FromString(const String &sParams) {
01685 ParamsParser cParser;
01686 _T0 t0 = (cParser.ParseString(sParams) ? Type<T0> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T0> ::Default());
01687 _T1 t1 = (cParser.Next() ? Type<T1> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T1> ::Default());
01688 _T2 t2 = (cParser.Next() ? Type<T2> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T2> ::Default());
01689 _T3 t3 = (cParser.Next() ? Type<T3> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T3> ::Default());
01690 _T4 t4 = (cParser.Next() ? Type<T4> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T4> ::Default());
01691 _T5 t5 = (cParser.Next() ? Type<T5> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T5> ::Default());
01692 _T6 t6 = (cParser.Next() ? Type<T6> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T6> ::Default());
01693 _T7 t7 = (cParser.Next() ? Type<T7> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T7> ::Default());
01694 _T8 t8 = (cParser.Next() ? Type<T8> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T8> ::Default());
01695 _T9 t9 = (cParser.Next() ? Type<T9> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T9> ::Default());
01696 _T10 t10 = (cParser.Next() ? Type<T10>::ConvertFromString(cParser.GetValue()) : DefaultValue<T10>::Default());
01697 _T11 t11 = (cParser.Next() ? Type<T11>::ConvertFromString(cParser.GetValue()) : DefaultValue<T11>::Default());
01698 _T12 t12 = (cParser.Next() ? Type<T12>::ConvertFromString(cParser.GetValue()) : DefaultValue<T12>::Default());
01699 return Params(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12);
01700 }
01701
01702 static Params FromXml(const XmlElement &cElement) {
01703 ParamsParserXml cParser;
01704 _T0 t0 = (cParser.ParseXml(cElement) ? Type<T0> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T0> ::Default());
01705 _T1 t1 = (cParser.Next() ? Type<T1> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T1> ::Default());
01706 _T2 t2 = (cParser.Next() ? Type<T2> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T2> ::Default());
01707 _T3 t3 = (cParser.Next() ? Type<T3> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T3> ::Default());
01708 _T4 t4 = (cParser.Next() ? Type<T4> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T4> ::Default());
01709 _T5 t5 = (cParser.Next() ? Type<T5> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T5> ::Default());
01710 _T6 t6 = (cParser.Next() ? Type<T6> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T6> ::Default());
01711 _T7 t7 = (cParser.Next() ? Type<T7> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T7> ::Default());
01712 _T8 t8 = (cParser.Next() ? Type<T8> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T8> ::Default());
01713 _T9 t9 = (cParser.Next() ? Type<T9> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T9> ::Default());
01714 _T10 t10 = (cParser.Next() ? Type<T10>::ConvertFromString(cParser.GetValue()) : DefaultValue<T10>::Default());
01715 _T11 t11 = (cParser.Next() ? Type<T11>::ConvertFromString(cParser.GetValue()) : DefaultValue<T11>::Default());
01716 _T12 t12 = (cParser.Next() ? Type<T12>::ConvertFromString(cParser.GetValue()) : DefaultValue<T12>::Default());
01717 return Params(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12);
01718 }
01719
01720 public:
01721 Params(const Params &cParams) :
01722 Param0(cParams.Param0),
01723 Param1(cParams.Param1),
01724 Param2(cParams.Param2),
01725 Param3(cParams.Param3),
01726 Param4(cParams.Param4),
01727 Param5(cParams.Param5),
01728 Param6(cParams.Param6),
01729 Param7(cParams.Param7),
01730 Param8(cParams.Param8),
01731 Param9(cParams.Param9),
01732 Param10(cParams.Param10),
01733 Param11(cParams.Param11),
01734 Param12(cParams.Param12)
01735 {
01736 }
01737
01738 Params(_T0 t0, _T1 t1, _T2 t2, _T3 t3, _T4 t4, _T5 t5, _T6 t6, _T7 t7, _T8 t8, _T9 t9, _T10 t10, _T11 t11, _T12 t12) :
01739 Param0(Type<T0> ::ConvertRealToStorage(t0)),
01740 Param1(Type<T1> ::ConvertRealToStorage(t1)),
01741 Param2(Type<T2> ::ConvertRealToStorage(t2)),
01742 Param3(Type<T3> ::ConvertRealToStorage(t3)),
01743 Param4(Type<T4> ::ConvertRealToStorage(t4)),
01744 Param5(Type<T5> ::ConvertRealToStorage(t5)),
01745 Param6(Type<T6> ::ConvertRealToStorage(t6)),
01746 Param7(Type<T7> ::ConvertRealToStorage(t7)),
01747 Param8(Type<T8> ::ConvertRealToStorage(t8)),
01748 Param9(Type<T9> ::ConvertRealToStorage(t9)),
01749 Param10(Type<T10>::ConvertRealToStorage(t10)),
01750 Param11(Type<T11>::ConvertRealToStorage(t11)),
01751 Param12(Type<T12>::ConvertRealToStorage(t12))
01752 {
01753 }
01754
01755 virtual ~Params()
01756 {
01757 }
01758
01759 Params &operator =(const Params &cParams)
01760 {
01761 Param0 = cParams.Param0;
01762 Param1 = cParams.Param1;
01763 Param2 = cParams.Param2;
01764 Param3 = cParams.Param3;
01765 Param4 = cParams.Param4;
01766 Param5 = cParams.Param5;
01767 Param6 = cParams.Param6;
01768 Param7 = cParams.Param7;
01769 Param8 = cParams.Param8;
01770 Param9 = cParams.Param9;
01771 Param10 = cParams.Param10;
01772 Param11 = cParams.Param11;
01773 Param12 = cParams.Param12;
01774 return *this;
01775 }
01776
01777 virtual String GetSignature() const override
01778 {
01779 return Signature<void, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>::GetSignatureID();
01780 }
01781
01782 virtual uint32 GetNumOfParameters() const override
01783 {
01784 return 13;
01785 }
01786
01787 virtual int GetParameterTypeID(uint32 nIndex) const override
01788 {
01789 switch (nIndex) {
01790 case 0: return Type<T0> ::TypeID;
01791 case 1: return Type<T1> ::TypeID;
01792 case 2: return Type<T2> ::TypeID;
01793 case 3: return Type<T3> ::TypeID;
01794 case 4: return Type<T4> ::TypeID;
01795 case 5: return Type<T5> ::TypeID;
01796 case 6: return Type<T6> ::TypeID;
01797 case 7: return Type<T7> ::TypeID;
01798 case 8: return Type<T8> ::TypeID;
01799 case 9: return Type<T9> ::TypeID;
01800 case 10: return Type<T10>::TypeID;
01801 case 11: return Type<T11>::TypeID;
01802 case 12: return Type<T12>::TypeID;
01803 default: return TypeInvalid;
01804 }
01805 }
01806
01807 virtual void *GetPointerToParameterValue(uint32 nIndex) override
01808 {
01809 switch (nIndex) {
01810 case 0: return (void*)&Param0;
01811 case 1: return (void*)&Param1;
01812 case 2: return (void*)&Param2;
01813 case 3: return (void*)&Param3;
01814 case 4: return (void*)&Param4;
01815 case 5: return (void*)&Param5;
01816 case 6: return (void*)&Param6;
01817 case 7: return (void*)&Param7;
01818 case 8: return (void*)&Param8;
01819 case 9: return (void*)&Param9;
01820 case 10: return (void*)&Param10;
01821 case 11: return (void*)&Param11;
01822 case 12: return (void*)&Param12;
01823 default: return nullptr;
01824 }
01825 }
01826 };
01827
01828
01829
01830
01831
01832
01833
01834
01835 template <typename R, typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11>
01836 class Params<R, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> : public DynParams {
01837 public:
01838 typedef typename Type<R> ::_Type _R;
01839 typedef typename Type<T0> ::_Type _T0;
01840 typedef typename Type<T1> ::_Type _T1;
01841 typedef typename Type<T2> ::_Type _T2;
01842 typedef typename Type<T3> ::_Type _T3;
01843 typedef typename Type<T4> ::_Type _T4;
01844 typedef typename Type<T5> ::_Type _T5;
01845 typedef typename Type<T6> ::_Type _T6;
01846 typedef typename Type<T7> ::_Type _T7;
01847 typedef typename Type<T8> ::_Type _T8;
01848 typedef typename Type<T9> ::_Type _T9;
01849 typedef typename Type<T10>::_Type _T10;
01850 typedef typename Type<T11>::_Type _T11;
01851 typedef typename Type<R> ::_StorageType _SR;
01852 typedef typename Type<T0> ::_StorageType _ST0;
01853 typedef typename Type<T1> ::_StorageType _ST1;
01854 typedef typename Type<T2> ::_StorageType _ST2;
01855 typedef typename Type<T3> ::_StorageType _ST3;
01856 typedef typename Type<T4> ::_StorageType _ST4;
01857 typedef typename Type<T5> ::_StorageType _ST5;
01858 typedef typename Type<T6> ::_StorageType _ST6;
01859 typedef typename Type<T7> ::_StorageType _ST7;
01860 typedef typename Type<T8> ::_StorageType _ST8;
01861 typedef typename Type<T9> ::_StorageType _ST9;
01862 typedef typename Type<T10>::_StorageType _ST10;
01863 typedef typename Type<T11>::_StorageType _ST11;
01864
01865 public:
01866 _SR Return;
01867 _ST0 Param0;
01868 _ST1 Param1;
01869 _ST2 Param2;
01870 _ST3 Param3;
01871 _ST4 Param4;
01872 _ST5 Param5;
01873 _ST6 Param6;
01874 _ST7 Param7;
01875 _ST8 Param8;
01876 _ST9 Param9;
01877 _ST10 Param10;
01878 _ST11 Param11;
01879
01880 public:
01881 static Params FromString(const String &sParams) {
01882 ParamsParser cParser;
01883 _T0 t0 = (cParser.ParseString(sParams) ? Type<T0> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T0> ::Default());
01884 _T1 t1 = (cParser.Next() ? Type<T1> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T1> ::Default());
01885 _T2 t2 = (cParser.Next() ? Type<T2> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T2> ::Default());
01886 _T3 t3 = (cParser.Next() ? Type<T3> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T3> ::Default());
01887 _T4 t4 = (cParser.Next() ? Type<T4> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T4> ::Default());
01888 _T5 t5 = (cParser.Next() ? Type<T5> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T5> ::Default());
01889 _T6 t6 = (cParser.Next() ? Type<T6> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T6> ::Default());
01890 _T7 t7 = (cParser.Next() ? Type<T7> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T7> ::Default());
01891 _T8 t8 = (cParser.Next() ? Type<T8> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T8> ::Default());
01892 _T9 t9 = (cParser.Next() ? Type<T9> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T9> ::Default());
01893 _T10 t10 = (cParser.Next() ? Type<T10>::ConvertFromString(cParser.GetValue()) : DefaultValue<T10>::Default());
01894 _T11 t11 = (cParser.Next() ? Type<T11>::ConvertFromString(cParser.GetValue()) : DefaultValue<T11>::Default());
01895 return Params(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11);
01896 }
01897
01898 static Params FromXml(const XmlElement &cElement) {
01899 ParamsParserXml cParser;
01900 _T0 t0 = (cParser.ParseXml(cElement) ? Type<T0> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T0> ::Default());
01901 _T1 t1 = (cParser.Next() ? Type<T1> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T1> ::Default());
01902 _T2 t2 = (cParser.Next() ? Type<T2> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T2> ::Default());
01903 _T3 t3 = (cParser.Next() ? Type<T3> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T3> ::Default());
01904 _T4 t4 = (cParser.Next() ? Type<T4> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T4> ::Default());
01905 _T5 t5 = (cParser.Next() ? Type<T5> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T5> ::Default());
01906 _T6 t6 = (cParser.Next() ? Type<T6> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T6> ::Default());
01907 _T7 t7 = (cParser.Next() ? Type<T7> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T7> ::Default());
01908 _T8 t8 = (cParser.Next() ? Type<T8> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T8> ::Default());
01909 _T9 t9 = (cParser.Next() ? Type<T9> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T9> ::Default());
01910 _T10 t10 = (cParser.Next() ? Type<T10>::ConvertFromString(cParser.GetValue()) : DefaultValue<T10>::Default());
01911 _T11 t11 = (cParser.Next() ? Type<T11>::ConvertFromString(cParser.GetValue()) : DefaultValue<T11>::Default());
01912 return Params(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11);
01913 }
01914
01915 public:
01916 Params(const Params &cParams) :
01917 Return(DefaultValue<_SR>::Default()),
01918 Param0(cParams.Param0),
01919 Param1(cParams.Param1),
01920 Param2(cParams.Param2),
01921 Param3(cParams.Param3),
01922 Param4(cParams.Param4),
01923 Param5(cParams.Param5),
01924 Param6(cParams.Param6),
01925 Param7(cParams.Param7),
01926 Param8(cParams.Param8),
01927 Param9(cParams.Param9),
01928 Param10(cParams.Param10),
01929 Param11(cParams.Param11)
01930 {
01931 }
01932
01933 Params(_T0 t0, _T1 t1, _T2 t2, _T3 t3, _T4 t4, _T5 t5, _T6 t6, _T7 t7, _T8 t8, _T9 t9, _T10 t10, _T11 t11) :
01934 Return(DefaultValue<_SR>::Default()),
01935 Param0(Type<T0> ::ConvertRealToStorage(t0)),
01936 Param1(Type<T1> ::ConvertRealToStorage(t1)),
01937 Param2(Type<T2> ::ConvertRealToStorage(t2)),
01938 Param3(Type<T3> ::ConvertRealToStorage(t3)),
01939 Param4(Type<T4> ::ConvertRealToStorage(t4)),
01940 Param5(Type<T5> ::ConvertRealToStorage(t5)),
01941 Param6(Type<T6> ::ConvertRealToStorage(t6)),
01942 Param7(Type<T7> ::ConvertRealToStorage(t7)),
01943 Param8(Type<T8> ::ConvertRealToStorage(t8)),
01944 Param9(Type<T9> ::ConvertRealToStorage(t9)),
01945 Param10(Type<T10>::ConvertRealToStorage(t10)),
01946 Param11(Type<T11>::ConvertRealToStorage(t11))
01947 {
01948 }
01949
01950 virtual ~Params()
01951 {
01952 }
01953
01954 Params &operator =(const Params &cParams)
01955 {
01956 Return = cParams.Return;
01957 Param0 = cParams.Param0;
01958 Param1 = cParams.Param1;
01959 Param2 = cParams.Param2;
01960 Param3 = cParams.Param3;
01961 Param4 = cParams.Param4;
01962 Param5 = cParams.Param5;
01963 Param6 = cParams.Param6;
01964 Param7 = cParams.Param7;
01965 Param8 = cParams.Param8;
01966 Param9 = cParams.Param9;
01967 Param10 = cParams.Param10;
01968 Param11 = cParams.Param11;
01969 return *this;
01970 }
01971
01972 virtual String GetSignature() const override
01973 {
01974 return Signature<R, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>::GetSignatureID();
01975 }
01976
01977 virtual int GetReturnTypeID() const override
01978 {
01979 return Type<R>::TypeID;
01980 }
01981
01982 virtual void *GetPointerToReturnValue() override
01983 {
01984 return (void*)&Return;
01985 }
01986
01987 virtual uint32 GetNumOfParameters() const override
01988 {
01989 return 12;
01990 }
01991
01992 virtual int GetParameterTypeID(uint32 nIndex) const override
01993 {
01994 switch (nIndex) {
01995 case 0: return Type<T0> ::TypeID;
01996 case 1: return Type<T1> ::TypeID;
01997 case 2: return Type<T2> ::TypeID;
01998 case 3: return Type<T3> ::TypeID;
01999 case 4: return Type<T4> ::TypeID;
02000 case 5: return Type<T5> ::TypeID;
02001 case 6: return Type<T6> ::TypeID;
02002 case 7: return Type<T7> ::TypeID;
02003 case 8: return Type<T8> ::TypeID;
02004 case 9: return Type<T9> ::TypeID;
02005 case 10: return Type<T10>::TypeID;
02006 case 11: return Type<T11>::TypeID;
02007 default: return TypeInvalid;
02008 }
02009 }
02010
02011 virtual void *GetPointerToParameterValue(uint32 nIndex) override
02012 {
02013 switch (nIndex) {
02014 case 0: return (void*)&Param0;
02015 case 1: return (void*)&Param1;
02016 case 2: return (void*)&Param2;
02017 case 3: return (void*)&Param3;
02018 case 4: return (void*)&Param4;
02019 case 5: return (void*)&Param5;
02020 case 6: return (void*)&Param6;
02021 case 7: return (void*)&Param7;
02022 case 8: return (void*)&Param8;
02023 case 9: return (void*)&Param9;
02024 case 10: return (void*)&Param10;
02025 case 11: return (void*)&Param11;
02026 default: return nullptr;
02027 }
02028 }
02029 };
02030
02031
02032
02033
02034
02035
02036
02037
02038 template <typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11>
02039 class Params<void, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> : public DynParams {
02040 public:
02041 typedef typename Type<T0> ::_Type _T0;
02042 typedef typename Type<T1> ::_Type _T1;
02043 typedef typename Type<T2> ::_Type _T2;
02044 typedef typename Type<T3> ::_Type _T3;
02045 typedef typename Type<T4> ::_Type _T4;
02046 typedef typename Type<T5> ::_Type _T5;
02047 typedef typename Type<T6> ::_Type _T6;
02048 typedef typename Type<T7> ::_Type _T7;
02049 typedef typename Type<T8> ::_Type _T8;
02050 typedef typename Type<T9> ::_Type _T9;
02051 typedef typename Type<T10>::_Type _T10;
02052 typedef typename Type<T11>::_Type _T11;
02053 typedef typename Type<T0> ::_StorageType _ST0;
02054 typedef typename Type<T1> ::_StorageType _ST1;
02055 typedef typename Type<T2> ::_StorageType _ST2;
02056 typedef typename Type<T3> ::_StorageType _ST3;
02057 typedef typename Type<T4> ::_StorageType _ST4;
02058 typedef typename Type<T5> ::_StorageType _ST5;
02059 typedef typename Type<T6> ::_StorageType _ST6;
02060 typedef typename Type<T7> ::_StorageType _ST7;
02061 typedef typename Type<T8> ::_StorageType _ST8;
02062 typedef typename Type<T9> ::_StorageType _ST9;
02063 typedef typename Type<T10>::_StorageType _ST10;
02064 typedef typename Type<T11>::_StorageType _ST11;
02065
02066 public:
02067 _ST0 Param0;
02068 _ST1 Param1;
02069 _ST2 Param2;
02070 _ST3 Param3;
02071 _ST4 Param4;
02072 _ST5 Param5;
02073 _ST6 Param6;
02074 _ST7 Param7;
02075 _ST8 Param8;
02076 _ST9 Param9;
02077 _ST10 Param10;
02078 _ST11 Param11;
02079
02080 public:
02081 static Params FromString(const String &sParams) {
02082 ParamsParser cParser;
02083 _T0 t0 = (cParser.ParseString(sParams) ? Type<T0> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T0> ::Default());
02084 _T1 t1 = (cParser.Next() ? Type<T1> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T1> ::Default());
02085 _T2 t2 = (cParser.Next() ? Type<T2> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T2> ::Default());
02086 _T3 t3 = (cParser.Next() ? Type<T3> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T3> ::Default());
02087 _T4 t4 = (cParser.Next() ? Type<T4> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T4> ::Default());
02088 _T5 t5 = (cParser.Next() ? Type<T5> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T5> ::Default());
02089 _T6 t6 = (cParser.Next() ? Type<T6> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T6> ::Default());
02090 _T7 t7 = (cParser.Next() ? Type<T7> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T7> ::Default());
02091 _T8 t8 = (cParser.Next() ? Type<T8> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T8> ::Default());
02092 _T9 t9 = (cParser.Next() ? Type<T9> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T9> ::Default());
02093 _T10 t10 = (cParser.Next() ? Type<T10>::ConvertFromString(cParser.GetValue()) : DefaultValue<T10>::Default());
02094 _T11 t11 = (cParser.Next() ? Type<T11>::ConvertFromString(cParser.GetValue()) : DefaultValue<T11>::Default());
02095 return Params(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11);
02096 }
02097
02098 static Params FromXml(const XmlElement &cElement) {
02099 ParamsParserXml cParser;
02100 _T0 t0 = (cParser.ParseXml(cElement) ? Type<T0> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T0> ::Default());
02101 _T1 t1 = (cParser.Next() ? Type<T1> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T1> ::Default());
02102 _T2 t2 = (cParser.Next() ? Type<T2> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T2> ::Default());
02103 _T3 t3 = (cParser.Next() ? Type<T3> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T3> ::Default());
02104 _T4 t4 = (cParser.Next() ? Type<T4> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T4> ::Default());
02105 _T5 t5 = (cParser.Next() ? Type<T5> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T5> ::Default());
02106 _T6 t6 = (cParser.Next() ? Type<T6> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T6> ::Default());
02107 _T7 t7 = (cParser.Next() ? Type<T7> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T7> ::Default());
02108 _T8 t8 = (cParser.Next() ? Type<T8> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T8> ::Default());
02109 _T9 t9 = (cParser.Next() ? Type<T9> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T9> ::Default());
02110 _T10 t10 = (cParser.Next() ? Type<T10>::ConvertFromString(cParser.GetValue()) : DefaultValue<T10>::Default());
02111 _T11 t11 = (cParser.Next() ? Type<T11>::ConvertFromString(cParser.GetValue()) : DefaultValue<T11>::Default());
02112 return Params(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11);
02113 }
02114
02115 public:
02116 Params(const Params &cParams) :
02117 Param0(cParams.Param0),
02118 Param1(cParams.Param1),
02119 Param2(cParams.Param2),
02120 Param3(cParams.Param3),
02121 Param4(cParams.Param4),
02122 Param5(cParams.Param5),
02123 Param6(cParams.Param6),
02124 Param7(cParams.Param7),
02125 Param8(cParams.Param8),
02126 Param9(cParams.Param9),
02127 Param10(cParams.Param10),
02128 Param11(cParams.Param11)
02129 {
02130 }
02131
02132 Params(_T0 t0, _T1 t1, _T2 t2, _T3 t3, _T4 t4, _T5 t5, _T6 t6, _T7 t7, _T8 t8, _T9 t9, _T10 t10, _T11 t11) :
02133 Param0(Type<T0> ::ConvertRealToStorage(t0)),
02134 Param1(Type<T1> ::ConvertRealToStorage(t1)),
02135 Param2(Type<T2> ::ConvertRealToStorage(t2)),
02136 Param3(Type<T3> ::ConvertRealToStorage(t3)),
02137 Param4(Type<T4> ::ConvertRealToStorage(t4)),
02138 Param5(Type<T5> ::ConvertRealToStorage(t5)),
02139 Param6(Type<T6> ::ConvertRealToStorage(t6)),
02140 Param7(Type<T7> ::ConvertRealToStorage(t7)),
02141 Param8(Type<T8> ::ConvertRealToStorage(t8)),
02142 Param9(Type<T9> ::ConvertRealToStorage(t9)),
02143 Param10(Type<T10>::ConvertRealToStorage(t10)),
02144 Param11(Type<T11>::ConvertRealToStorage(t11))
02145 {
02146 }
02147
02148 virtual ~Params()
02149 {
02150 }
02151
02152 Params &operator =(const Params &cParams)
02153 {
02154 Param0 = cParams.Param0;
02155 Param1 = cParams.Param1;
02156 Param2 = cParams.Param2;
02157 Param3 = cParams.Param3;
02158 Param4 = cParams.Param4;
02159 Param5 = cParams.Param5;
02160 Param6 = cParams.Param6;
02161 Param7 = cParams.Param7;
02162 Param8 = cParams.Param8;
02163 Param9 = cParams.Param9;
02164 Param10 = cParams.Param10;
02165 Param11 = cParams.Param11;
02166 return *this;
02167 }
02168
02169 virtual String GetSignature() const override
02170 {
02171 return Signature<void, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>::GetSignatureID();
02172 }
02173
02174 virtual uint32 GetNumOfParameters() const override
02175 {
02176 return 12;
02177 }
02178
02179 virtual int GetParameterTypeID(uint32 nIndex) const override
02180 {
02181 switch (nIndex) {
02182 case 0: return Type<T0> ::TypeID;
02183 case 1: return Type<T1> ::TypeID;
02184 case 2: return Type<T2> ::TypeID;
02185 case 3: return Type<T3> ::TypeID;
02186 case 4: return Type<T4> ::TypeID;
02187 case 5: return Type<T5> ::TypeID;
02188 case 6: return Type<T6> ::TypeID;
02189 case 7: return Type<T7> ::TypeID;
02190 case 8: return Type<T8> ::TypeID;
02191 case 9: return Type<T9> ::TypeID;
02192 case 10: return Type<T10>::TypeID;
02193 case 11: return Type<T11>::TypeID;
02194 default: return TypeInvalid;
02195 }
02196 }
02197
02198 virtual void *GetPointerToParameterValue(uint32 nIndex) override
02199 {
02200 switch (nIndex) {
02201 case 0: return (void*)&Param0;
02202 case 1: return (void*)&Param1;
02203 case 2: return (void*)&Param2;
02204 case 3: return (void*)&Param3;
02205 case 4: return (void*)&Param4;
02206 case 5: return (void*)&Param5;
02207 case 6: return (void*)&Param6;
02208 case 7: return (void*)&Param7;
02209 case 8: return (void*)&Param8;
02210 case 9: return (void*)&Param9;
02211 case 10: return (void*)&Param10;
02212 case 11: return (void*)&Param11;
02213 default: return nullptr;
02214 }
02215 }
02216 };
02217
02218
02219
02220
02221
02222
02223
02224
02225 template <typename R, typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10>
02226 class Params<R, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> : public DynParams {
02227 public:
02228 typedef typename Type<R> ::_Type _R;
02229 typedef typename Type<T0> ::_Type _T0;
02230 typedef typename Type<T1> ::_Type _T1;
02231 typedef typename Type<T2> ::_Type _T2;
02232 typedef typename Type<T3> ::_Type _T3;
02233 typedef typename Type<T4> ::_Type _T4;
02234 typedef typename Type<T5> ::_Type _T5;
02235 typedef typename Type<T6> ::_Type _T6;
02236 typedef typename Type<T7> ::_Type _T7;
02237 typedef typename Type<T8> ::_Type _T8;
02238 typedef typename Type<T9> ::_Type _T9;
02239 typedef typename Type<T10>::_Type _T10;
02240 typedef typename Type<R> ::_StorageType _SR;
02241 typedef typename Type<T0> ::_StorageType _ST0;
02242 typedef typename Type<T1> ::_StorageType _ST1;
02243 typedef typename Type<T2> ::_StorageType _ST2;
02244 typedef typename Type<T3> ::_StorageType _ST3;
02245 typedef typename Type<T4> ::_StorageType _ST4;
02246 typedef typename Type<T5> ::_StorageType _ST5;
02247 typedef typename Type<T6> ::_StorageType _ST6;
02248 typedef typename Type<T7> ::_StorageType _ST7;
02249 typedef typename Type<T8> ::_StorageType _ST8;
02250 typedef typename Type<T9> ::_StorageType _ST9;
02251 typedef typename Type<T10>::_StorageType _ST10;
02252
02253 public:
02254 _SR Return;
02255 _ST0 Param0;
02256 _ST1 Param1;
02257 _ST2 Param2;
02258 _ST3 Param3;
02259 _ST4 Param4;
02260 _ST5 Param5;
02261 _ST6 Param6;
02262 _ST7 Param7;
02263 _ST8 Param8;
02264 _ST9 Param9;
02265 _ST10 Param10;
02266
02267 public:
02268 static Params FromString(const String &sParams) {
02269 ParamsParser cParser;
02270 _T0 t0 = (cParser.ParseString(sParams) ? Type<T0> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T0> ::Default());
02271 _T1 t1 = (cParser.Next() ? Type<T1> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T1> ::Default());
02272 _T2 t2 = (cParser.Next() ? Type<T2> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T2> ::Default());
02273 _T3 t3 = (cParser.Next() ? Type<T3> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T3> ::Default());
02274 _T4 t4 = (cParser.Next() ? Type<T4> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T4> ::Default());
02275 _T5 t5 = (cParser.Next() ? Type<T5> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T5> ::Default());
02276 _T6 t6 = (cParser.Next() ? Type<T6> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T6> ::Default());
02277 _T7 t7 = (cParser.Next() ? Type<T7> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T7> ::Default());
02278 _T8 t8 = (cParser.Next() ? Type<T8> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T8> ::Default());
02279 _T9 t9 = (cParser.Next() ? Type<T9> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T9> ::Default());
02280 _T10 t10 = (cParser.Next() ? Type<T10>::ConvertFromString(cParser.GetValue()) : DefaultValue<T10>::Default());
02281 return Params(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10);
02282 }
02283
02284 static Params FromXml(const XmlElement &cElement) {
02285 ParamsParserXml cParser;
02286 _T0 t0 = (cParser.ParseXml(cElement) ? Type<T0> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T0> ::Default());
02287 _T1 t1 = (cParser.Next() ? Type<T1> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T1> ::Default());
02288 _T2 t2 = (cParser.Next() ? Type<T2> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T2> ::Default());
02289 _T3 t3 = (cParser.Next() ? Type<T3> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T3> ::Default());
02290 _T4 t4 = (cParser.Next() ? Type<T4> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T4> ::Default());
02291 _T5 t5 = (cParser.Next() ? Type<T5> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T5> ::Default());
02292 _T6 t6 = (cParser.Next() ? Type<T6> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T6> ::Default());
02293 _T7 t7 = (cParser.Next() ? Type<T7> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T7> ::Default());
02294 _T8 t8 = (cParser.Next() ? Type<T8> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T8> ::Default());
02295 _T9 t9 = (cParser.Next() ? Type<T9> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T9> ::Default());
02296 _T10 t10 = (cParser.Next() ? Type<T10>::ConvertFromString(cParser.GetValue()) : DefaultValue<T10>::Default());
02297 return Params(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10);
02298 }
02299
02300 public:
02301 Params(const Params &cParams) :
02302 Return(DefaultValue<_SR>::Default()),
02303 Param0(cParams.Param0),
02304 Param1(cParams.Param1),
02305 Param2(cParams.Param2),
02306 Param3(cParams.Param3),
02307 Param4(cParams.Param4),
02308 Param5(cParams.Param5),
02309 Param6(cParams.Param6),
02310 Param7(cParams.Param7),
02311 Param8(cParams.Param8),
02312 Param9(cParams.Param9),
02313 Param10(cParams.Param10)
02314 {
02315 }
02316
02317 Params(_T0 t0, _T1 t1, _T2 t2, _T3 t3, _T4 t4, _T5 t5, _T6 t6, _T7 t7, _T8 t8, _T9 t9, _T10 t10) :
02318 Return(DefaultValue<_SR>::Default()),
02319 Param0(Type<T0> ::ConvertRealToStorage(t0)),
02320 Param1(Type<T1> ::ConvertRealToStorage(t1)),
02321 Param2(Type<T2> ::ConvertRealToStorage(t2)),
02322 Param3(Type<T3> ::ConvertRealToStorage(t3)),
02323 Param4(Type<T4> ::ConvertRealToStorage(t4)),
02324 Param5(Type<T5> ::ConvertRealToStorage(t5)),
02325 Param6(Type<T6> ::ConvertRealToStorage(t6)),
02326 Param7(Type<T7> ::ConvertRealToStorage(t7)),
02327 Param8(Type<T8> ::ConvertRealToStorage(t8)),
02328 Param9(Type<T9> ::ConvertRealToStorage(t9)),
02329 Param10(Type<T10>::ConvertRealToStorage(t10))
02330 {
02331 }
02332
02333 virtual ~Params()
02334 {
02335 }
02336
02337 Params &operator =(const Params &cParams)
02338 {
02339 Return = cParams.Return;
02340 Param0 = cParams.Param0;
02341 Param1 = cParams.Param1;
02342 Param2 = cParams.Param2;
02343 Param3 = cParams.Param3;
02344 Param4 = cParams.Param4;
02345 Param5 = cParams.Param5;
02346 Param6 = cParams.Param6;
02347 Param7 = cParams.Param7;
02348 Param8 = cParams.Param8;
02349 Param9 = cParams.Param9;
02350 Param10 = cParams.Param10;
02351 return *this;
02352 }
02353
02354 virtual String GetSignature() const override
02355 {
02356 return Signature<R, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>::GetSignatureID();
02357 }
02358
02359 virtual int GetReturnTypeID() const override
02360 {
02361 return Type<R>::TypeID;
02362 }
02363
02364 virtual void *GetPointerToReturnValue() override
02365 {
02366 return (void*)&Return;
02367 }
02368
02369 virtual uint32 GetNumOfParameters() const override
02370 {
02371 return 11;
02372 }
02373
02374 virtual int GetParameterTypeID(uint32 nIndex) const override
02375 {
02376 switch (nIndex) {
02377 case 0: return Type<T0> ::TypeID;
02378 case 1: return Type<T1> ::TypeID;
02379 case 2: return Type<T2> ::TypeID;
02380 case 3: return Type<T3> ::TypeID;
02381 case 4: return Type<T4> ::TypeID;
02382 case 5: return Type<T5> ::TypeID;
02383 case 6: return Type<T6> ::TypeID;
02384 case 7: return Type<T7> ::TypeID;
02385 case 8: return Type<T8> ::TypeID;
02386 case 9: return Type<T9> ::TypeID;
02387 case 10: return Type<T10>::TypeID;
02388 default: return TypeInvalid;
02389 }
02390 }
02391
02392 virtual void *GetPointerToParameterValue(uint32 nIndex) override
02393 {
02394 switch (nIndex) {
02395 case 0: return (void*)&Param0;
02396 case 1: return (void*)&Param1;
02397 case 2: return (void*)&Param2;
02398 case 3: return (void*)&Param3;
02399 case 4: return (void*)&Param4;
02400 case 5: return (void*)&Param5;
02401 case 6: return (void*)&Param6;
02402 case 7: return (void*)&Param7;
02403 case 8: return (void*)&Param8;
02404 case 9: return (void*)&Param9;
02405 case 10: return (void*)&Param10;
02406 default: return nullptr;
02407 }
02408 }
02409 };
02410
02411
02412
02413
02414
02415
02416
02417
02418 template <typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10>
02419 class Params<void, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> : public DynParams {
02420 public:
02421 typedef typename Type<T0> ::_Type _T0;
02422 typedef typename Type<T1> ::_Type _T1;
02423 typedef typename Type<T2> ::_Type _T2;
02424 typedef typename Type<T3> ::_Type _T3;
02425 typedef typename Type<T4> ::_Type _T4;
02426 typedef typename Type<T5> ::_Type _T5;
02427 typedef typename Type<T6> ::_Type _T6;
02428 typedef typename Type<T7> ::_Type _T7;
02429 typedef typename Type<T8> ::_Type _T8;
02430 typedef typename Type<T9> ::_Type _T9;
02431 typedef typename Type<T10>::_Type _T10;
02432 typedef typename Type<T0> ::_StorageType _ST0;
02433 typedef typename Type<T1> ::_StorageType _ST1;
02434 typedef typename Type<T2> ::_StorageType _ST2;
02435 typedef typename Type<T3> ::_StorageType _ST3;
02436 typedef typename Type<T4> ::_StorageType _ST4;
02437 typedef typename Type<T5> ::_StorageType _ST5;
02438 typedef typename Type<T6> ::_StorageType _ST6;
02439 typedef typename Type<T7> ::_StorageType _ST7;
02440 typedef typename Type<T8> ::_StorageType _ST8;
02441 typedef typename Type<T9> ::_StorageType _ST9;
02442 typedef typename Type<T10>::_StorageType _ST10;
02443
02444 public:
02445 _ST0 Param0;
02446 _ST1 Param1;
02447 _ST2 Param2;
02448 _ST3 Param3;
02449 _ST4 Param4;
02450 _ST5 Param5;
02451 _ST6 Param6;
02452 _ST7 Param7;
02453 _ST8 Param8;
02454 _ST9 Param9;
02455 _ST10 Param10;
02456
02457 public:
02458 static Params FromString(const String &sParams) {
02459 ParamsParser cParser;
02460 _T0 t0 = (cParser.ParseString(sParams) ? Type<T0> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T0> ::Default());
02461 _T1 t1 = (cParser.Next() ? Type<T1> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T1> ::Default());
02462 _T2 t2 = (cParser.Next() ? Type<T2> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T2> ::Default());
02463 _T3 t3 = (cParser.Next() ? Type<T3> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T3> ::Default());
02464 _T4 t4 = (cParser.Next() ? Type<T4> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T4> ::Default());
02465 _T5 t5 = (cParser.Next() ? Type<T5> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T5> ::Default());
02466 _T6 t6 = (cParser.Next() ? Type<T6> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T6> ::Default());
02467 _T7 t7 = (cParser.Next() ? Type<T7> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T7> ::Default());
02468 _T8 t8 = (cParser.Next() ? Type<T8> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T8> ::Default());
02469 _T9 t9 = (cParser.Next() ? Type<T9> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T9> ::Default());
02470 _T10 t10 = (cParser.Next() ? Type<T10>::ConvertFromString(cParser.GetValue()) : DefaultValue<T10>::Default());
02471 return Params(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10);
02472 }
02473
02474 static Params FromXml(const XmlElement &cElement) {
02475 ParamsParserXml cParser;
02476 _T0 t0 = (cParser.ParseXml(cElement) ? Type<T0> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T0> ::Default());
02477 _T1 t1 = (cParser.Next() ? Type<T1> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T1> ::Default());
02478 _T2 t2 = (cParser.Next() ? Type<T2> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T2> ::Default());
02479 _T3 t3 = (cParser.Next() ? Type<T3> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T3> ::Default());
02480 _T4 t4 = (cParser.Next() ? Type<T4> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T4> ::Default());
02481 _T5 t5 = (cParser.Next() ? Type<T5> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T5> ::Default());
02482 _T6 t6 = (cParser.Next() ? Type<T6> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T6> ::Default());
02483 _T7 t7 = (cParser.Next() ? Type<T7> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T7> ::Default());
02484 _T8 t8 = (cParser.Next() ? Type<T8> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T8> ::Default());
02485 _T9 t9 = (cParser.Next() ? Type<T9> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T9> ::Default());
02486 _T10 t10 = (cParser.Next() ? Type<T10>::ConvertFromString(cParser.GetValue()) : DefaultValue<T10>::Default());
02487 return Params(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10);
02488 }
02489
02490 public:
02491 Params(const Params &cParams) :
02492 Param0(cParams.Param0),
02493 Param1(cParams.Param1),
02494 Param2(cParams.Param2),
02495 Param3(cParams.Param3),
02496 Param4(cParams.Param4),
02497 Param5(cParams.Param5),
02498 Param6(cParams.Param6),
02499 Param7(cParams.Param7),
02500 Param8(cParams.Param8),
02501 Param9(cParams.Param9),
02502 Param10(cParams.Param10)
02503 {
02504 }
02505
02506 Params(_T0 t0, _T1 t1, _T2 t2, _T3 t3, _T4 t4, _T5 t5, _T6 t6, _T7 t7, _T8 t8, _T9 t9, _T10 t10) :
02507 Param0(Type<T0> ::ConvertRealToStorage(t0)),
02508 Param1(Type<T1> ::ConvertRealToStorage(t1)),
02509 Param2(Type<T2> ::ConvertRealToStorage(t2)),
02510 Param3(Type<T3> ::ConvertRealToStorage(t3)),
02511 Param4(Type<T4> ::ConvertRealToStorage(t4)),
02512 Param5(Type<T5> ::ConvertRealToStorage(t5)),
02513 Param6(Type<T6> ::ConvertRealToStorage(t6)),
02514 Param7(Type<T7> ::ConvertRealToStorage(t7)),
02515 Param8(Type<T8> ::ConvertRealToStorage(t8)),
02516 Param9(Type<T9> ::ConvertRealToStorage(t9)),
02517 Param10(Type<T10>::ConvertRealToStorage(t10))
02518 {
02519 }
02520
02521 virtual ~Params()
02522 {
02523 }
02524
02525 Params &operator =(const Params &cParams)
02526 {
02527 Param0 = cParams.Param0;
02528 Param1 = cParams.Param1;
02529 Param2 = cParams.Param2;
02530 Param3 = cParams.Param3;
02531 Param4 = cParams.Param4;
02532 Param5 = cParams.Param5;
02533 Param6 = cParams.Param6;
02534 Param7 = cParams.Param7;
02535 Param8 = cParams.Param8;
02536 Param9 = cParams.Param9;
02537 Param10 = cParams.Param10;
02538 return *this;
02539 }
02540
02541 virtual String GetSignature() const override
02542 {
02543 return Signature<void, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>::GetSignatureID();
02544 }
02545
02546 virtual uint32 GetNumOfParameters() const override
02547 {
02548 return 11;
02549 }
02550
02551 virtual int GetParameterTypeID(uint32 nIndex) const override
02552 {
02553 switch (nIndex) {
02554 case 0: return Type<T0> ::TypeID;
02555 case 1: return Type<T1> ::TypeID;
02556 case 2: return Type<T2> ::TypeID;
02557 case 3: return Type<T3> ::TypeID;
02558 case 4: return Type<T4> ::TypeID;
02559 case 5: return Type<T5> ::TypeID;
02560 case 6: return Type<T6> ::TypeID;
02561 case 7: return Type<T7> ::TypeID;
02562 case 8: return Type<T8> ::TypeID;
02563 case 9: return Type<T9> ::TypeID;
02564 case 10: return Type<T10>::TypeID;
02565 default: return TypeInvalid;
02566 }
02567 }
02568
02569 virtual void *GetPointerToParameterValue(uint32 nIndex) override
02570 {
02571 switch (nIndex) {
02572 case 0: return (void*)&Param0;
02573 case 1: return (void*)&Param1;
02574 case 2: return (void*)&Param2;
02575 case 3: return (void*)&Param3;
02576 case 4: return (void*)&Param4;
02577 case 5: return (void*)&Param5;
02578 case 6: return (void*)&Param6;
02579 case 7: return (void*)&Param7;
02580 case 8: return (void*)&Param8;
02581 case 9: return (void*)&Param9;
02582 case 10: return (void*)&Param10;
02583 default: return nullptr;
02584 }
02585 }
02586 };
02587
02588
02589
02590
02591
02592
02593
02594
02595 template <typename R, typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9>
02596 class Params<R, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> : public DynParams {
02597 public:
02598 typedef typename Type<R> ::_Type _R;
02599 typedef typename Type<T0> ::_Type _T0;
02600 typedef typename Type<T1> ::_Type _T1;
02601 typedef typename Type<T2> ::_Type _T2;
02602 typedef typename Type<T3> ::_Type _T3;
02603 typedef typename Type<T4> ::_Type _T4;
02604 typedef typename Type<T5> ::_Type _T5;
02605 typedef typename Type<T6> ::_Type _T6;
02606 typedef typename Type<T7> ::_Type _T7;
02607 typedef typename Type<T8> ::_Type _T8;
02608 typedef typename Type<T9> ::_Type _T9;
02609 typedef typename Type<R> ::_StorageType _SR;
02610 typedef typename Type<T0>::_StorageType _ST0;
02611 typedef typename Type<T1>::_StorageType _ST1;
02612 typedef typename Type<T2>::_StorageType _ST2;
02613 typedef typename Type<T3>::_StorageType _ST3;
02614 typedef typename Type<T4>::_StorageType _ST4;
02615 typedef typename Type<T5>::_StorageType _ST5;
02616 typedef typename Type<T6>::_StorageType _ST6;
02617 typedef typename Type<T7>::_StorageType _ST7;
02618 typedef typename Type<T8>::_StorageType _ST8;
02619 typedef typename Type<T9>::_StorageType _ST9;
02620
02621 public:
02622 _SR Return;
02623 _ST0 Param0;
02624 _ST1 Param1;
02625 _ST2 Param2;
02626 _ST3 Param3;
02627 _ST4 Param4;
02628 _ST5 Param5;
02629 _ST6 Param6;
02630 _ST7 Param7;
02631 _ST8 Param8;
02632 _ST9 Param9;
02633
02634 public:
02635 static Params FromString(const String &sParams) {
02636 ParamsParser cParser;
02637 _T0 t0 = (cParser.ParseString(sParams) ? Type<T0> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T0> ::Default());
02638 _T1 t1 = (cParser.Next() ? Type<T1> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T1> ::Default());
02639 _T2 t2 = (cParser.Next() ? Type<T2> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T2> ::Default());
02640 _T3 t3 = (cParser.Next() ? Type<T3> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T3> ::Default());
02641 _T4 t4 = (cParser.Next() ? Type<T4> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T4> ::Default());
02642 _T5 t5 = (cParser.Next() ? Type<T5> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T5> ::Default());
02643 _T6 t6 = (cParser.Next() ? Type<T6> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T6> ::Default());
02644 _T7 t7 = (cParser.Next() ? Type<T7> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T7> ::Default());
02645 _T8 t8 = (cParser.Next() ? Type<T8> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T8> ::Default());
02646 _T9 t9 = (cParser.Next() ? Type<T9> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T9> ::Default());
02647 return Params(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9);
02648 }
02649
02650 static Params FromXml(const XmlElement &cElement) {
02651 ParamsParserXml cParser;
02652 _T0 t0 = (cParser.ParseXml(cElement) ? Type<T0> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T0> ::Default());
02653 _T1 t1 = (cParser.Next() ? Type<T1> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T1> ::Default());
02654 _T2 t2 = (cParser.Next() ? Type<T2> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T2> ::Default());
02655 _T3 t3 = (cParser.Next() ? Type<T3> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T3> ::Default());
02656 _T4 t4 = (cParser.Next() ? Type<T4> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T4> ::Default());
02657 _T5 t5 = (cParser.Next() ? Type<T5> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T5> ::Default());
02658 _T6 t6 = (cParser.Next() ? Type<T6> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T6> ::Default());
02659 _T7 t7 = (cParser.Next() ? Type<T7> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T7> ::Default());
02660 _T8 t8 = (cParser.Next() ? Type<T8> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T8> ::Default());
02661 _T9 t9 = (cParser.Next() ? Type<T9> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T9> ::Default());
02662 return Params(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9);
02663 }
02664
02665 public:
02666 Params(const Params &cParams) :
02667 Return(DefaultValue<_SR>::Default()),
02668 Param0(cParams.Param0),
02669 Param1(cParams.Param1),
02670 Param2(cParams.Param2),
02671 Param3(cParams.Param3),
02672 Param4(cParams.Param4),
02673 Param5(cParams.Param5),
02674 Param6(cParams.Param6),
02675 Param7(cParams.Param7),
02676 Param8(cParams.Param8),
02677 Param9(cParams.Param9)
02678 {
02679 }
02680
02681 Params(_T0 t0, _T1 t1, _T2 t2, _T3 t3, _T4 t4, _T5 t5, _T6 t6, _T7 t7, _T8 t8, _T9 t9) :
02682 Return(DefaultValue<_SR>::Default()),
02683 Param0(Type<T0> ::ConvertRealToStorage(t0)),
02684 Param1(Type<T1> ::ConvertRealToStorage(t1)),
02685 Param2(Type<T2> ::ConvertRealToStorage(t2)),
02686 Param3(Type<T3> ::ConvertRealToStorage(t3)),
02687 Param4(Type<T4> ::ConvertRealToStorage(t4)),
02688 Param5(Type<T5> ::ConvertRealToStorage(t5)),
02689 Param6(Type<T6> ::ConvertRealToStorage(t6)),
02690 Param7(Type<T7> ::ConvertRealToStorage(t7)),
02691 Param8(Type<T8> ::ConvertRealToStorage(t8)),
02692 Param9(Type<T9> ::ConvertRealToStorage(t9))
02693 {
02694 }
02695
02696 virtual ~Params()
02697 {
02698 }
02699
02700 Params &operator =(const Params &cParams)
02701 {
02702 Return = cParams.Return;
02703 Param0 = cParams.Param0;
02704 Param1 = cParams.Param1;
02705 Param2 = cParams.Param2;
02706 Param3 = cParams.Param3;
02707 Param4 = cParams.Param4;
02708 Param5 = cParams.Param5;
02709 Param6 = cParams.Param6;
02710 Param7 = cParams.Param7;
02711 Param8 = cParams.Param8;
02712 Param9 = cParams.Param9;
02713 return *this;
02714 }
02715
02716 virtual String GetSignature() const override
02717 {
02718 return Signature<R, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>::GetSignatureID();
02719 }
02720
02721 virtual int GetReturnTypeID() const override
02722 {
02723 return Type<R>::TypeID;
02724 }
02725
02726 virtual void *GetPointerToReturnValue() override
02727 {
02728 return (void*)&Return;
02729 }
02730
02731 virtual uint32 GetNumOfParameters() const override
02732 {
02733 return 10;
02734 }
02735
02736 virtual int GetParameterTypeID(uint32 nIndex) const override
02737 {
02738 switch (nIndex) {
02739 case 0: return Type<T0> ::TypeID;
02740 case 1: return Type<T1> ::TypeID;
02741 case 2: return Type<T2> ::TypeID;
02742 case 3: return Type<T3> ::TypeID;
02743 case 4: return Type<T4> ::TypeID;
02744 case 5: return Type<T5> ::TypeID;
02745 case 6: return Type<T6> ::TypeID;
02746 case 7: return Type<T7> ::TypeID;
02747 case 8: return Type<T8> ::TypeID;
02748 case 9: return Type<T9> ::TypeID;
02749 default: return TypeInvalid;
02750 }
02751 }
02752
02753 virtual void *GetPointerToParameterValue(uint32 nIndex) override
02754 {
02755 switch (nIndex) {
02756 case 0: return (void*)&Param0;
02757 case 1: return (void*)&Param1;
02758 case 2: return (void*)&Param2;
02759 case 3: return (void*)&Param3;
02760 case 4: return (void*)&Param4;
02761 case 5: return (void*)&Param5;
02762 case 6: return (void*)&Param6;
02763 case 7: return (void*)&Param7;
02764 case 8: return (void*)&Param8;
02765 case 9: return (void*)&Param9;
02766 default: return nullptr;
02767 }
02768 }
02769 };
02770
02771
02772
02773
02774
02775
02776
02777
02778 template <typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9>
02779 class Params<void, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> : public DynParams {
02780 public:
02781 typedef typename Type<T0> ::_Type _T0;
02782 typedef typename Type<T1> ::_Type _T1;
02783 typedef typename Type<T2> ::_Type _T2;
02784 typedef typename Type<T3> ::_Type _T3;
02785 typedef typename Type<T4> ::_Type _T4;
02786 typedef typename Type<T5> ::_Type _T5;
02787 typedef typename Type<T6> ::_Type _T6;
02788 typedef typename Type<T7> ::_Type _T7;
02789 typedef typename Type<T8> ::_Type _T8;
02790 typedef typename Type<T9> ::_Type _T9;
02791 typedef typename Type<T0>::_StorageType _ST0;
02792 typedef typename Type<T1>::_StorageType _ST1;
02793 typedef typename Type<T2>::_StorageType _ST2;
02794 typedef typename Type<T3>::_StorageType _ST3;
02795 typedef typename Type<T4>::_StorageType _ST4;
02796 typedef typename Type<T5>::_StorageType _ST5;
02797 typedef typename Type<T6>::_StorageType _ST6;
02798 typedef typename Type<T7>::_StorageType _ST7;
02799 typedef typename Type<T8>::_StorageType _ST8;
02800 typedef typename Type<T9>::_StorageType _ST9;
02801
02802 public:
02803 _ST0 Param0;
02804 _ST1 Param1;
02805 _ST2 Param2;
02806 _ST3 Param3;
02807 _ST4 Param4;
02808 _ST5 Param5;
02809 _ST6 Param6;
02810 _ST7 Param7;
02811 _ST8 Param8;
02812 _ST9 Param9;
02813
02814 public:
02815 static Params FromString(const String &sParams) {
02816 ParamsParser cParser;
02817 _T0 t0 = (cParser.ParseString(sParams) ? Type<T0> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T0> ::Default());
02818 _T1 t1 = (cParser.Next() ? Type<T1> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T1> ::Default());
02819 _T2 t2 = (cParser.Next() ? Type<T2> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T2> ::Default());
02820 _T3 t3 = (cParser.Next() ? Type<T3> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T3> ::Default());
02821 _T4 t4 = (cParser.Next() ? Type<T4> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T4> ::Default());
02822 _T5 t5 = (cParser.Next() ? Type<T5> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T5> ::Default());
02823 _T6 t6 = (cParser.Next() ? Type<T6> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T6> ::Default());
02824 _T7 t7 = (cParser.Next() ? Type<T7> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T7> ::Default());
02825 _T8 t8 = (cParser.Next() ? Type<T8> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T8> ::Default());
02826 _T9 t9 = (cParser.Next() ? Type<T9> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T9> ::Default());
02827 return Params(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9);
02828 }
02829
02830 static Params FromXml(const XmlElement &cElement) {
02831 ParamsParserXml cParser;
02832 _T0 t0 = (cParser.ParseXml(cElement) ? Type<T0> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T0> ::Default());
02833 _T1 t1 = (cParser.Next() ? Type<T1> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T1> ::Default());
02834 _T2 t2 = (cParser.Next() ? Type<T2> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T2> ::Default());
02835 _T3 t3 = (cParser.Next() ? Type<T3> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T3> ::Default());
02836 _T4 t4 = (cParser.Next() ? Type<T4> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T4> ::Default());
02837 _T5 t5 = (cParser.Next() ? Type<T5> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T5> ::Default());
02838 _T6 t6 = (cParser.Next() ? Type<T6> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T6> ::Default());
02839 _T7 t7 = (cParser.Next() ? Type<T7> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T7> ::Default());
02840 _T8 t8 = (cParser.Next() ? Type<T8> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T8> ::Default());
02841 _T9 t9 = (cParser.Next() ? Type<T9> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T9> ::Default());
02842 return Params(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9);
02843 }
02844
02845 public:
02846 Params(const Params &cParams) :
02847 Param0(cParams.Param0),
02848 Param1(cParams.Param1),
02849 Param2(cParams.Param2),
02850 Param3(cParams.Param3),
02851 Param4(cParams.Param4),
02852 Param5(cParams.Param5),
02853 Param6(cParams.Param6),
02854 Param7(cParams.Param7),
02855 Param8(cParams.Param8),
02856 Param9(cParams.Param9)
02857 {
02858 }
02859
02860 Params(_T0 t0, _T1 t1, _T2 t2, _T3 t3, _T4 t4, _T5 t5, _T6 t6, _T7 t7, _T8 t8, _T9 t9) :
02861 Param0(Type<T0> ::ConvertRealToStorage(t0)),
02862 Param1(Type<T1> ::ConvertRealToStorage(t1)),
02863 Param2(Type<T2> ::ConvertRealToStorage(t2)),
02864 Param3(Type<T3> ::ConvertRealToStorage(t3)),
02865 Param4(Type<T4> ::ConvertRealToStorage(t4)),
02866 Param5(Type<T5> ::ConvertRealToStorage(t5)),
02867 Param6(Type<T6> ::ConvertRealToStorage(t6)),
02868 Param7(Type<T7> ::ConvertRealToStorage(t7)),
02869 Param8(Type<T8> ::ConvertRealToStorage(t8)),
02870 Param9(Type<T9> ::ConvertRealToStorage(t9))
02871 {
02872 }
02873
02874 virtual ~Params()
02875 {
02876 }
02877
02878 Params &operator =(const Params &cParams)
02879 {
02880 Param0 = cParams.Param0;
02881 Param1 = cParams.Param1;
02882 Param2 = cParams.Param2;
02883 Param3 = cParams.Param3;
02884 Param4 = cParams.Param4;
02885 Param5 = cParams.Param5;
02886 Param6 = cParams.Param6;
02887 Param7 = cParams.Param7;
02888 Param8 = cParams.Param8;
02889 Param9 = cParams.Param9;
02890 return *this;
02891 }
02892
02893 virtual String GetSignature() const override
02894 {
02895 return Signature<void, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>::GetSignatureID();
02896 }
02897
02898 virtual uint32 GetNumOfParameters() const override
02899 {
02900 return 10;
02901 }
02902
02903 virtual int GetParameterTypeID(uint32 nIndex) const override
02904 {
02905 switch (nIndex) {
02906 case 0: return Type<T0> ::TypeID;
02907 case 1: return Type<T1> ::TypeID;
02908 case 2: return Type<T2> ::TypeID;
02909 case 3: return Type<T3> ::TypeID;
02910 case 4: return Type<T4> ::TypeID;
02911 case 5: return Type<T5> ::TypeID;
02912 case 6: return Type<T6> ::TypeID;
02913 case 7: return Type<T7> ::TypeID;
02914 case 8: return Type<T8> ::TypeID;
02915 case 9: return Type<T9> ::TypeID;
02916 default: return TypeInvalid;
02917 }
02918 }
02919
02920 virtual void *GetPointerToParameterValue(uint32 nIndex) override
02921 {
02922 switch (nIndex) {
02923 case 0: return (void*)&Param0;
02924 case 1: return (void*)&Param1;
02925 case 2: return (void*)&Param2;
02926 case 3: return (void*)&Param3;
02927 case 4: return (void*)&Param4;
02928 case 5: return (void*)&Param5;
02929 case 6: return (void*)&Param6;
02930 case 7: return (void*)&Param7;
02931 case 8: return (void*)&Param8;
02932 case 9: return (void*)&Param9;
02933 default: return nullptr;
02934 }
02935 }
02936 };
02937
02938
02939
02940
02941
02942
02943
02944
02945 template <typename R, typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8>
02946 class Params<R, T0, T1, T2, T3, T4, T5, T6, T7, T8> : public DynParams {
02947 public:
02948 typedef typename Type<R> ::_Type _R;
02949 typedef typename Type<T0> ::_Type _T0;
02950 typedef typename Type<T1> ::_Type _T1;
02951 typedef typename Type<T2> ::_Type _T2;
02952 typedef typename Type<T3> ::_Type _T3;
02953 typedef typename Type<T4> ::_Type _T4;
02954 typedef typename Type<T5> ::_Type _T5;
02955 typedef typename Type<T6> ::_Type _T6;
02956 typedef typename Type<T7> ::_Type _T7;
02957 typedef typename Type<T8> ::_Type _T8;
02958 typedef typename Type<R> ::_StorageType _SR;
02959 typedef typename Type<T0>::_StorageType _ST0;
02960 typedef typename Type<T1>::_StorageType _ST1;
02961 typedef typename Type<T2>::_StorageType _ST2;
02962 typedef typename Type<T3>::_StorageType _ST3;
02963 typedef typename Type<T4>::_StorageType _ST4;
02964 typedef typename Type<T5>::_StorageType _ST5;
02965 typedef typename Type<T6>::_StorageType _ST6;
02966 typedef typename Type<T7>::_StorageType _ST7;
02967 typedef typename Type<T8>::_StorageType _ST8;
02968
02969 public:
02970 _SR Return;
02971 _ST0 Param0;
02972 _ST1 Param1;
02973 _ST2 Param2;
02974 _ST3 Param3;
02975 _ST4 Param4;
02976 _ST5 Param5;
02977 _ST6 Param6;
02978 _ST7 Param7;
02979 _ST8 Param8;
02980
02981 public:
02982 static Params FromString(const String &sParams) {
02983 ParamsParser cParser;
02984 _T0 t0 = (cParser.ParseString(sParams) ? Type<T0> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T0> ::Default());
02985 _T1 t1 = (cParser.Next() ? Type<T1> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T1> ::Default());
02986 _T2 t2 = (cParser.Next() ? Type<T2> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T2> ::Default());
02987 _T3 t3 = (cParser.Next() ? Type<T3> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T3> ::Default());
02988 _T4 t4 = (cParser.Next() ? Type<T4> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T4> ::Default());
02989 _T5 t5 = (cParser.Next() ? Type<T5> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T5> ::Default());
02990 _T6 t6 = (cParser.Next() ? Type<T6> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T6> ::Default());
02991 _T7 t7 = (cParser.Next() ? Type<T7> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T7> ::Default());
02992 _T8 t8 = (cParser.Next() ? Type<T8> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T8> ::Default());
02993 return Params(t0, t1, t2, t3, t4, t5, t6, t7, t8);
02994 }
02995
02996 static Params FromXml(const XmlElement &cElement) {
02997 ParamsParserXml cParser;
02998 _T0 t0 = (cParser.ParseXml(cElement) ? Type<T0> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T0> ::Default());
02999 _T1 t1 = (cParser.Next() ? Type<T1> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T1> ::Default());
03000 _T2 t2 = (cParser.Next() ? Type<T2> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T2> ::Default());
03001 _T3 t3 = (cParser.Next() ? Type<T3> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T3> ::Default());
03002 _T4 t4 = (cParser.Next() ? Type<T4> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T4> ::Default());
03003 _T5 t5 = (cParser.Next() ? Type<T5> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T5> ::Default());
03004 _T6 t6 = (cParser.Next() ? Type<T6> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T6> ::Default());
03005 _T7 t7 = (cParser.Next() ? Type<T7> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T7> ::Default());
03006 _T8 t8 = (cParser.Next() ? Type<T8> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T8> ::Default());
03007 return Params(t0, t1, t2, t3, t4, t5, t6, t7, t8);
03008 }
03009
03010 public:
03011 Params(const Params &cParams) :
03012 Return(DefaultValue<_SR>::Default()),
03013 Param0(cParams.Param0),
03014 Param1(cParams.Param1),
03015 Param2(cParams.Param2),
03016 Param3(cParams.Param3),
03017 Param4(cParams.Param4),
03018 Param5(cParams.Param5),
03019 Param6(cParams.Param6),
03020 Param7(cParams.Param7),
03021 Param8(cParams.Param8)
03022 {
03023 }
03024
03025 Params(_T0 t0, _T1 t1, _T2 t2, _T3 t3, _T4 t4, _T5 t5, _T6 t6, _T7 t7, _T8 t8) :
03026 Return(DefaultValue<_SR>::Default()),
03027 Param0(Type<T0> ::ConvertRealToStorage(t0)),
03028 Param1(Type<T1> ::ConvertRealToStorage(t1)),
03029 Param2(Type<T2> ::ConvertRealToStorage(t2)),
03030 Param3(Type<T3> ::ConvertRealToStorage(t3)),
03031 Param4(Type<T4> ::ConvertRealToStorage(t4)),
03032 Param5(Type<T5> ::ConvertRealToStorage(t5)),
03033 Param6(Type<T6> ::ConvertRealToStorage(t6)),
03034 Param7(Type<T7> ::ConvertRealToStorage(t7)),
03035 Param8(Type<T8> ::ConvertRealToStorage(t8))
03036 {
03037 }
03038
03039 virtual ~Params()
03040 {
03041 }
03042
03043 Params &operator =(const Params &cParams)
03044 {
03045 Return = cParams.Return;
03046 Param0 = cParams.Param0;
03047 Param1 = cParams.Param1;
03048 Param2 = cParams.Param2;
03049 Param3 = cParams.Param3;
03050 Param4 = cParams.Param4;
03051 Param5 = cParams.Param5;
03052 Param6 = cParams.Param6;
03053 Param7 = cParams.Param7;
03054 Param8 = cParams.Param8;
03055 return *this;
03056 }
03057
03058 virtual String GetSignature() const override
03059 {
03060 return Signature<R, T0, T1, T2, T3, T4, T5, T6, T7, T8>::GetSignatureID();
03061 }
03062
03063 virtual int GetReturnTypeID() const override
03064 {
03065 return Type<R>::TypeID;
03066 }
03067
03068 virtual void *GetPointerToReturnValue() override
03069 {
03070 return (void*)&Return;
03071 }
03072
03073 virtual uint32 GetNumOfParameters() const override
03074 {
03075 return 9;
03076 }
03077
03078 virtual int GetParameterTypeID(uint32 nIndex) const override
03079 {
03080 switch (nIndex) {
03081 case 0: return Type<T0> ::TypeID;
03082 case 1: return Type<T1> ::TypeID;
03083 case 2: return Type<T2> ::TypeID;
03084 case 3: return Type<T3> ::TypeID;
03085 case 4: return Type<T4> ::TypeID;
03086 case 5: return Type<T5> ::TypeID;
03087 case 6: return Type<T6> ::TypeID;
03088 case 7: return Type<T7> ::TypeID;
03089 case 8: return Type<T8> ::TypeID;
03090 default: return TypeInvalid;
03091 }
03092 }
03093
03094 virtual void *GetPointerToParameterValue(uint32 nIndex) override
03095 {
03096 switch (nIndex) {
03097 case 0: return (void*)&Param0;
03098 case 1: return (void*)&Param1;
03099 case 2: return (void*)&Param2;
03100 case 3: return (void*)&Param3;
03101 case 4: return (void*)&Param4;
03102 case 5: return (void*)&Param5;
03103 case 6: return (void*)&Param6;
03104 case 7: return (void*)&Param7;
03105 case 8: return (void*)&Param8;
03106 default: return nullptr;
03107 }
03108 }
03109 };
03110
03111
03112
03113
03114
03115
03116
03117
03118 template <typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8>
03119 class Params<void, T0, T1, T2, T3, T4, T5, T6, T7, T8> : public DynParams {
03120 public:
03121 typedef typename Type<T0> ::_Type _T0;
03122 typedef typename Type<T1> ::_Type _T1;
03123 typedef typename Type<T2> ::_Type _T2;
03124 typedef typename Type<T3> ::_Type _T3;
03125 typedef typename Type<T4> ::_Type _T4;
03126 typedef typename Type<T5> ::_Type _T5;
03127 typedef typename Type<T6> ::_Type _T6;
03128 typedef typename Type<T7> ::_Type _T7;
03129 typedef typename Type<T8> ::_Type _T8;
03130 typedef typename Type<T0>::_StorageType _ST0;
03131 typedef typename Type<T1>::_StorageType _ST1;
03132 typedef typename Type<T2>::_StorageType _ST2;
03133 typedef typename Type<T3>::_StorageType _ST3;
03134 typedef typename Type<T4>::_StorageType _ST4;
03135 typedef typename Type<T5>::_StorageType _ST5;
03136 typedef typename Type<T6>::_StorageType _ST6;
03137 typedef typename Type<T7>::_StorageType _ST7;
03138 typedef typename Type<T8>::_StorageType _ST8;
03139
03140 public:
03141 _ST0 Param0;
03142 _ST1 Param1;
03143 _ST2 Param2;
03144 _ST3 Param3;
03145 _ST4 Param4;
03146 _ST5 Param5;
03147 _ST6 Param6;
03148 _ST7 Param7;
03149 _ST8 Param8;
03150
03151 public:
03152 static Params FromString(const String &sParams) {
03153 ParamsParser cParser;
03154 _T0 t0 = (cParser.ParseString(sParams) ? Type<T0> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T0> ::Default());
03155 _T1 t1 = (cParser.Next() ? Type<T1> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T1> ::Default());
03156 _T2 t2 = (cParser.Next() ? Type<T2> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T2> ::Default());
03157 _T3 t3 = (cParser.Next() ? Type<T3> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T3> ::Default());
03158 _T4 t4 = (cParser.Next() ? Type<T4> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T4> ::Default());
03159 _T5 t5 = (cParser.Next() ? Type<T5> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T5> ::Default());
03160 _T6 t6 = (cParser.Next() ? Type<T6> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T6> ::Default());
03161 _T7 t7 = (cParser.Next() ? Type<T7> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T7> ::Default());
03162 _T8 t8 = (cParser.Next() ? Type<T8> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T8> ::Default());
03163 return Params(t0, t1, t2, t3, t4, t5, t6, t7, t8);
03164 }
03165
03166 static Params FromXml(const XmlElement &cElement) {
03167 ParamsParserXml cParser;
03168 _T0 t0 = (cParser.ParseXml(cElement) ? Type<T0> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T0> ::Default());
03169 _T1 t1 = (cParser.Next() ? Type<T1> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T1> ::Default());
03170 _T2 t2 = (cParser.Next() ? Type<T2> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T2> ::Default());
03171 _T3 t3 = (cParser.Next() ? Type<T3> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T3> ::Default());
03172 _T4 t4 = (cParser.Next() ? Type<T4> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T4> ::Default());
03173 _T5 t5 = (cParser.Next() ? Type<T5> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T5> ::Default());
03174 _T6 t6 = (cParser.Next() ? Type<T6> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T6> ::Default());
03175 _T7 t7 = (cParser.Next() ? Type<T7> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T7> ::Default());
03176 _T8 t8 = (cParser.Next() ? Type<T8> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T8> ::Default());
03177 return Params(t0, t1, t2, t3, t4, t5, t6, t7, t8);
03178 }
03179
03180 public:
03181 Params(const Params &cParams) :
03182 Param0(cParams.Param0),
03183 Param1(cParams.Param1),
03184 Param2(cParams.Param2),
03185 Param3(cParams.Param3),
03186 Param4(cParams.Param4),
03187 Param5(cParams.Param5),
03188 Param6(cParams.Param6),
03189 Param7(cParams.Param7),
03190 Param8(cParams.Param8)
03191 {
03192 }
03193
03194 Params(_T0 t0, _T1 t1, _T2 t2, _T3 t3, _T4 t4, _T5 t5, _T6 t6, _T7 t7, _T8 t8) :
03195 Param0(Type<T0> ::ConvertRealToStorage(t0)),
03196 Param1(Type<T1> ::ConvertRealToStorage(t1)),
03197 Param2(Type<T2> ::ConvertRealToStorage(t2)),
03198 Param3(Type<T3> ::ConvertRealToStorage(t3)),
03199 Param4(Type<T4> ::ConvertRealToStorage(t4)),
03200 Param5(Type<T5> ::ConvertRealToStorage(t5)),
03201 Param6(Type<T6> ::ConvertRealToStorage(t6)),
03202 Param7(Type<T7> ::ConvertRealToStorage(t7)),
03203 Param8(Type<T8> ::ConvertRealToStorage(t8))
03204 {
03205 }
03206
03207 virtual ~Params()
03208 {
03209 }
03210
03211 Params &operator =(const Params &cParams)
03212 {
03213 Param0 = cParams.Param0;
03214 Param1 = cParams.Param1;
03215 Param2 = cParams.Param2;
03216 Param3 = cParams.Param3;
03217 Param4 = cParams.Param4;
03218 Param5 = cParams.Param5;
03219 Param6 = cParams.Param6;
03220 Param7 = cParams.Param7;
03221 Param8 = cParams.Param8;
03222 return *this;
03223 }
03224
03225 virtual String GetSignature() const override
03226 {
03227 return Signature<void, T0, T1, T2, T3, T4, T5, T6, T7, T8>::GetSignatureID();
03228 }
03229
03230 virtual uint32 GetNumOfParameters() const override
03231 {
03232 return 9;
03233 }
03234
03235 virtual int GetParameterTypeID(uint32 nIndex) const override
03236 {
03237 switch (nIndex) {
03238 case 0: return Type<T0> ::TypeID;
03239 case 1: return Type<T1> ::TypeID;
03240 case 2: return Type<T2> ::TypeID;
03241 case 3: return Type<T3> ::TypeID;
03242 case 4: return Type<T4> ::TypeID;
03243 case 5: return Type<T5> ::TypeID;
03244 case 6: return Type<T6> ::TypeID;
03245 case 7: return Type<T7> ::TypeID;
03246 case 8: return Type<T8> ::TypeID;
03247 default: return TypeInvalid;
03248 }
03249 }
03250
03251 virtual void *GetPointerToParameterValue(uint32 nIndex) override
03252 {
03253 switch (nIndex) {
03254 case 0: return (void*)&Param0;
03255 case 1: return (void*)&Param1;
03256 case 2: return (void*)&Param2;
03257 case 3: return (void*)&Param3;
03258 case 4: return (void*)&Param4;
03259 case 5: return (void*)&Param5;
03260 case 6: return (void*)&Param6;
03261 case 7: return (void*)&Param7;
03262 case 8: return (void*)&Param8;
03263 default: return nullptr;
03264 }
03265 }
03266 };
03267
03268
03269
03270
03271
03272
03273
03274
03275 template <typename R, typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7>
03276 class Params<R, T0, T1, T2, T3, T4, T5, T6, T7> : public DynParams {
03277 public:
03278 typedef typename Type<R> ::_Type _R;
03279 typedef typename Type<T0> ::_Type _T0;
03280 typedef typename Type<T1> ::_Type _T1;
03281 typedef typename Type<T2> ::_Type _T2;
03282 typedef typename Type<T3> ::_Type _T3;
03283 typedef typename Type<T4> ::_Type _T4;
03284 typedef typename Type<T5> ::_Type _T5;
03285 typedef typename Type<T6> ::_Type _T6;
03286 typedef typename Type<T7> ::_Type _T7;
03287 typedef typename Type<R> ::_StorageType _SR;
03288 typedef typename Type<T0>::_StorageType _ST0;
03289 typedef typename Type<T1>::_StorageType _ST1;
03290 typedef typename Type<T2>::_StorageType _ST2;
03291 typedef typename Type<T3>::_StorageType _ST3;
03292 typedef typename Type<T4>::_StorageType _ST4;
03293 typedef typename Type<T5>::_StorageType _ST5;
03294 typedef typename Type<T6>::_StorageType _ST6;
03295 typedef typename Type<T7>::_StorageType _ST7;
03296
03297 public:
03298 _SR Return;
03299 _ST0 Param0;
03300 _ST1 Param1;
03301 _ST2 Param2;
03302 _ST3 Param3;
03303 _ST4 Param4;
03304 _ST5 Param5;
03305 _ST6 Param6;
03306 _ST7 Param7;
03307
03308 public:
03309 static Params FromString(const String &sParams) {
03310 ParamsParser cParser;
03311 _T0 t0 = (cParser.ParseString(sParams) ? Type<T0> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T0> ::Default());
03312 _T1 t1 = (cParser.Next() ? Type<T1> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T1> ::Default());
03313 _T2 t2 = (cParser.Next() ? Type<T2> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T2> ::Default());
03314 _T3 t3 = (cParser.Next() ? Type<T3> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T3> ::Default());
03315 _T4 t4 = (cParser.Next() ? Type<T4> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T4> ::Default());
03316 _T5 t5 = (cParser.Next() ? Type<T5> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T5> ::Default());
03317 _T6 t6 = (cParser.Next() ? Type<T6> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T6> ::Default());
03318 _T7 t7 = (cParser.Next() ? Type<T7> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T7> ::Default());
03319 return Params(t0, t1, t2, t3, t4, t5, t6, t7);
03320 }
03321
03322 static Params FromXml(const XmlElement &cElement) {
03323 ParamsParserXml cParser;
03324 _T0 t0 = (cParser.ParseXml(cElement) ? Type<T0> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T0> ::Default());
03325 _T1 t1 = (cParser.Next() ? Type<T1> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T1> ::Default());
03326 _T2 t2 = (cParser.Next() ? Type<T2> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T2> ::Default());
03327 _T3 t3 = (cParser.Next() ? Type<T3> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T3> ::Default());
03328 _T4 t4 = (cParser.Next() ? Type<T4> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T4> ::Default());
03329 _T5 t5 = (cParser.Next() ? Type<T5> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T5> ::Default());
03330 _T6 t6 = (cParser.Next() ? Type<T6> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T6> ::Default());
03331 _T7 t7 = (cParser.Next() ? Type<T7> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T7> ::Default());
03332 return Params(t0, t1, t2, t3, t4, t5, t6, t7);
03333 }
03334
03335 public:
03336 Params(const Params &cParams) :
03337 Return(DefaultValue<_SR>::Default()),
03338 Param0(cParams.Param0),
03339 Param1(cParams.Param1),
03340 Param2(cParams.Param2),
03341 Param3(cParams.Param3),
03342 Param4(cParams.Param4),
03343 Param5(cParams.Param5),
03344 Param6(cParams.Param6),
03345 Param7(cParams.Param7)
03346 {
03347 }
03348
03349 Params(_T0 t0, _T1 t1, _T2 t2, _T3 t3, _T4 t4, _T5 t5, _T6 t6, _T7 t7) :
03350 Return(DefaultValue<_SR>::Default()),
03351 Param0(Type<T0> ::ConvertRealToStorage(t0)),
03352 Param1(Type<T1> ::ConvertRealToStorage(t1)),
03353 Param2(Type<T2> ::ConvertRealToStorage(t2)),
03354 Param3(Type<T3> ::ConvertRealToStorage(t3)),
03355 Param4(Type<T4> ::ConvertRealToStorage(t4)),
03356 Param5(Type<T5> ::ConvertRealToStorage(t5)),
03357 Param6(Type<T6> ::ConvertRealToStorage(t6)),
03358 Param7(Type<T7> ::ConvertRealToStorage(t7))
03359 {
03360 }
03361
03362 virtual ~Params()
03363 {
03364 }
03365
03366 Params &operator =(const Params &cParams)
03367 {
03368 Return = cParams.Return;
03369 Param0 = cParams.Param0;
03370 Param1 = cParams.Param1;
03371 Param2 = cParams.Param2;
03372 Param3 = cParams.Param3;
03373 Param4 = cParams.Param4;
03374 Param5 = cParams.Param5;
03375 Param6 = cParams.Param6;
03376 Param7 = cParams.Param7;
03377 return *this;
03378 }
03379
03380 virtual String GetSignature() const override
03381 {
03382 return Signature<R, T0, T1, T2, T3, T4, T5, T6, T7>::GetSignatureID();
03383 }
03384
03385 virtual int GetReturnTypeID() const override
03386 {
03387 return Type<R>::TypeID;
03388 }
03389
03390 virtual void *GetPointerToReturnValue() override
03391 {
03392 return (void*)&Return;
03393 }
03394
03395 virtual uint32 GetNumOfParameters() const override
03396 {
03397 return 8;
03398 }
03399
03400 virtual int GetParameterTypeID(uint32 nIndex) const override
03401 {
03402 switch (nIndex) {
03403 case 0: return Type<T0> ::TypeID;
03404 case 1: return Type<T1> ::TypeID;
03405 case 2: return Type<T2> ::TypeID;
03406 case 3: return Type<T3> ::TypeID;
03407 case 4: return Type<T4> ::TypeID;
03408 case 5: return Type<T5> ::TypeID;
03409 case 6: return Type<T6> ::TypeID;
03410 case 7: return Type<T7> ::TypeID;
03411 default: return TypeInvalid;
03412 }
03413 }
03414
03415 virtual void *GetPointerToParameterValue(uint32 nIndex) override
03416 {
03417 switch (nIndex) {
03418 case 0: return (void*)&Param0;
03419 case 1: return (void*)&Param1;
03420 case 2: return (void*)&Param2;
03421 case 3: return (void*)&Param3;
03422 case 4: return (void*)&Param4;
03423 case 5: return (void*)&Param5;
03424 case 6: return (void*)&Param6;
03425 case 7: return (void*)&Param7;
03426 default: return nullptr;
03427 }
03428 }
03429 };
03430
03431
03432
03433
03434
03435
03436
03437
03438 template <typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7>
03439 class Params<void, T0, T1, T2, T3, T4, T5, T6, T7> : public DynParams {
03440 public:
03441 typedef typename Type<T0> ::_Type _T0;
03442 typedef typename Type<T1> ::_Type _T1;
03443 typedef typename Type<T2> ::_Type _T2;
03444 typedef typename Type<T3> ::_Type _T3;
03445 typedef typename Type<T4> ::_Type _T4;
03446 typedef typename Type<T5> ::_Type _T5;
03447 typedef typename Type<T6> ::_Type _T6;
03448 typedef typename Type<T7> ::_Type _T7;
03449 typedef typename Type<T0>::_StorageType _ST0;
03450 typedef typename Type<T1>::_StorageType _ST1;
03451 typedef typename Type<T2>::_StorageType _ST2;
03452 typedef typename Type<T3>::_StorageType _ST3;
03453 typedef typename Type<T4>::_StorageType _ST4;
03454 typedef typename Type<T5>::_StorageType _ST5;
03455 typedef typename Type<T6>::_StorageType _ST6;
03456 typedef typename Type<T7>::_StorageType _ST7;
03457
03458 public:
03459 _ST0 Param0;
03460 _ST1 Param1;
03461 _ST2 Param2;
03462 _ST3 Param3;
03463 _ST4 Param4;
03464 _ST5 Param5;
03465 _ST6 Param6;
03466 _ST7 Param7;
03467
03468 public:
03469 static Params FromString(const String &sParams) {
03470 ParamsParser cParser;
03471 _T0 t0 = (cParser.ParseString(sParams) ? Type<T0> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T0> ::Default());
03472 _T1 t1 = (cParser.Next() ? Type<T1> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T1> ::Default());
03473 _T2 t2 = (cParser.Next() ? Type<T2> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T2> ::Default());
03474 _T3 t3 = (cParser.Next() ? Type<T3> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T3> ::Default());
03475 _T4 t4 = (cParser.Next() ? Type<T4> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T4> ::Default());
03476 _T5 t5 = (cParser.Next() ? Type<T5> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T5> ::Default());
03477 _T6 t6 = (cParser.Next() ? Type<T6> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T6> ::Default());
03478 _T7 t7 = (cParser.Next() ? Type<T7> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T7> ::Default());
03479 return Params(t0, t1, t2, t3, t4, t5, t6, t7);
03480 }
03481
03482 static Params FromXml(const XmlElement &cElement) {
03483 ParamsParserXml cParser;
03484 _T0 t0 = (cParser.ParseXml(cElement) ? Type<T0> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T0> ::Default());
03485 _T1 t1 = (cParser.Next() ? Type<T1> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T1> ::Default());
03486 _T2 t2 = (cParser.Next() ? Type<T2> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T2> ::Default());
03487 _T3 t3 = (cParser.Next() ? Type<T3> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T3> ::Default());
03488 _T4 t4 = (cParser.Next() ? Type<T4> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T4> ::Default());
03489 _T5 t5 = (cParser.Next() ? Type<T5> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T5> ::Default());
03490 _T6 t6 = (cParser.Next() ? Type<T6> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T6> ::Default());
03491 _T7 t7 = (cParser.Next() ? Type<T7> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T7> ::Default());
03492 return Params(t0, t1, t2, t3, t4, t5, t6, t7);
03493 }
03494
03495 public:
03496 Params(const Params &cParams) :
03497 Param0(cParams.Param0),
03498 Param1(cParams.Param1),
03499 Param2(cParams.Param2),
03500 Param3(cParams.Param3),
03501 Param4(cParams.Param4),
03502 Param5(cParams.Param5),
03503 Param6(cParams.Param6),
03504 Param7(cParams.Param7)
03505 {
03506 }
03507
03508 Params(_T0 t0, _T1 t1, _T2 t2, _T3 t3, _T4 t4, _T5 t5, _T6 t6, _T7 t7) :
03509 Param0(Type<T0> ::ConvertRealToStorage(t0)),
03510 Param1(Type<T1> ::ConvertRealToStorage(t1)),
03511 Param2(Type<T2> ::ConvertRealToStorage(t2)),
03512 Param3(Type<T3> ::ConvertRealToStorage(t3)),
03513 Param4(Type<T4> ::ConvertRealToStorage(t4)),
03514 Param5(Type<T5> ::ConvertRealToStorage(t5)),
03515 Param6(Type<T6> ::ConvertRealToStorage(t6)),
03516 Param7(Type<T7> ::ConvertRealToStorage(t7))
03517 {
03518 }
03519
03520 virtual ~Params()
03521 {
03522 }
03523
03524 Params &operator =(const Params &cParams)
03525 {
03526 Param0 = cParams.Param0;
03527 Param1 = cParams.Param1;
03528 Param2 = cParams.Param2;
03529 Param3 = cParams.Param3;
03530 Param4 = cParams.Param4;
03531 Param5 = cParams.Param5;
03532 Param6 = cParams.Param6;
03533 Param7 = cParams.Param7;
03534 return *this;
03535 }
03536
03537 virtual String GetSignature() const override
03538 {
03539 return Signature<void, T0, T1, T2, T3, T4, T5, T6, T7>::GetSignatureID();
03540 }
03541
03542 virtual uint32 GetNumOfParameters() const override
03543 {
03544 return 8;
03545 }
03546
03547 virtual int GetParameterTypeID(uint32 nIndex) const override
03548 {
03549 switch (nIndex) {
03550 case 0: return Type<T0> ::TypeID;
03551 case 1: return Type<T1> ::TypeID;
03552 case 2: return Type<T2> ::TypeID;
03553 case 3: return Type<T3> ::TypeID;
03554 case 4: return Type<T4> ::TypeID;
03555 case 5: return Type<T5> ::TypeID;
03556 case 6: return Type<T6> ::TypeID;
03557 case 7: return Type<T7> ::TypeID;
03558 default: return TypeInvalid;
03559 }
03560 }
03561
03562 virtual void *GetPointerToParameterValue(uint32 nIndex) override
03563 {
03564 switch (nIndex) {
03565 case 0: return (void*)&Param0;
03566 case 1: return (void*)&Param1;
03567 case 2: return (void*)&Param2;
03568 case 3: return (void*)&Param3;
03569 case 4: return (void*)&Param4;
03570 case 5: return (void*)&Param5;
03571 case 6: return (void*)&Param6;
03572 case 7: return (void*)&Param7;
03573 default: return nullptr;
03574 }
03575 }
03576 };
03577
03578
03579
03580
03581
03582
03583
03584
03585 template <typename R, typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6>
03586 class Params<R, T0, T1, T2, T3, T4, T5, T6> : public DynParams {
03587 public:
03588 typedef typename Type<R> ::_Type _R;
03589 typedef typename Type<T0> ::_Type _T0;
03590 typedef typename Type<T1> ::_Type _T1;
03591 typedef typename Type<T2> ::_Type _T2;
03592 typedef typename Type<T3> ::_Type _T3;
03593 typedef typename Type<T4> ::_Type _T4;
03594 typedef typename Type<T5> ::_Type _T5;
03595 typedef typename Type<T6> ::_Type _T6;
03596 typedef typename Type<R> ::_StorageType _SR;
03597 typedef typename Type<T0>::_StorageType _ST0;
03598 typedef typename Type<T1>::_StorageType _ST1;
03599 typedef typename Type<T2>::_StorageType _ST2;
03600 typedef typename Type<T3>::_StorageType _ST3;
03601 typedef typename Type<T4>::_StorageType _ST4;
03602 typedef typename Type<T5>::_StorageType _ST5;
03603 typedef typename Type<T6>::_StorageType _ST6;
03604
03605 public:
03606 _SR Return;
03607 _ST0 Param0;
03608 _ST1 Param1;
03609 _ST2 Param2;
03610 _ST3 Param3;
03611 _ST4 Param4;
03612 _ST5 Param5;
03613 _ST6 Param6;
03614
03615 public:
03616 static Params FromString(const String &sParams) {
03617 ParamsParser cParser;
03618 _T0 t0 = (cParser.ParseString(sParams) ? Type<T0> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T0> ::Default());
03619 _T1 t1 = (cParser.Next() ? Type<T1> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T1> ::Default());
03620 _T2 t2 = (cParser.Next() ? Type<T2> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T2> ::Default());
03621 _T3 t3 = (cParser.Next() ? Type<T3> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T3> ::Default());
03622 _T4 t4 = (cParser.Next() ? Type<T4> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T4> ::Default());
03623 _T5 t5 = (cParser.Next() ? Type<T5> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T5> ::Default());
03624 _T6 t6 = (cParser.Next() ? Type<T6> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T6> ::Default());
03625 return Params(t0, t1, t2, t3, t4, t5, t6);
03626 }
03627
03628 static Params FromXml(const XmlElement &cElement) {
03629 ParamsParserXml cParser;
03630 _T0 t0 = (cParser.ParseXml(cElement) ? Type<T0> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T0> ::Default());
03631 _T1 t1 = (cParser.Next() ? Type<T1> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T1> ::Default());
03632 _T2 t2 = (cParser.Next() ? Type<T2> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T2> ::Default());
03633 _T3 t3 = (cParser.Next() ? Type<T3> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T3> ::Default());
03634 _T4 t4 = (cParser.Next() ? Type<T4> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T4> ::Default());
03635 _T5 t5 = (cParser.Next() ? Type<T5> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T5> ::Default());
03636 _T6 t6 = (cParser.Next() ? Type<T6> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T6> ::Default());
03637 return Params(t0, t1, t2, t3, t4, t5, t6);
03638 }
03639
03640 public:
03641 Params(const Params &cParams) :
03642 Return(DefaultValue<_SR>::Default()),
03643 Param0(cParams.Param0),
03644 Param1(cParams.Param1),
03645 Param2(cParams.Param2),
03646 Param3(cParams.Param3),
03647 Param4(cParams.Param4),
03648 Param5(cParams.Param5),
03649 Param6(cParams.Param6)
03650 {
03651 }
03652
03653 Params(_T0 t0, _T1 t1, _T2 t2, _T3 t3, _T4 t4, _T5 t5, _T6 t6) :
03654 Return(DefaultValue<_SR>::Default()),
03655 Param0(Type<T0> ::ConvertRealToStorage(t0)),
03656 Param1(Type<T1> ::ConvertRealToStorage(t1)),
03657 Param2(Type<T2> ::ConvertRealToStorage(t2)),
03658 Param3(Type<T3> ::ConvertRealToStorage(t3)),
03659 Param4(Type<T4> ::ConvertRealToStorage(t4)),
03660 Param5(Type<T5> ::ConvertRealToStorage(t5)),
03661 Param6(Type<T6> ::ConvertRealToStorage(t6))
03662 {
03663 }
03664
03665 virtual ~Params()
03666 {
03667 }
03668
03669 Params &operator =(const Params &cParams)
03670 {
03671 Return = cParams.Return;
03672 Param0 = cParams.Param0;
03673 Param1 = cParams.Param1;
03674 Param2 = cParams.Param2;
03675 Param3 = cParams.Param3;
03676 Param4 = cParams.Param4;
03677 Param5 = cParams.Param5;
03678 Param6 = cParams.Param6;
03679 return *this;
03680 }
03681
03682 virtual String GetSignature() const override
03683 {
03684 return Signature<R, T0, T1, T2, T3, T4, T5, T6>::GetSignatureID();
03685 }
03686
03687 virtual int GetReturnTypeID() const override
03688 {
03689 return Type<R>::TypeID;
03690 }
03691
03692 virtual void *GetPointerToReturnValue() override
03693 {
03694 return (void*)&Return;
03695 }
03696
03697 virtual uint32 GetNumOfParameters() const override
03698 {
03699 return 7;
03700 }
03701
03702 virtual int GetParameterTypeID(uint32 nIndex) const override
03703 {
03704 switch (nIndex) {
03705 case 0: return Type<T0> ::TypeID;
03706 case 1: return Type<T1> ::TypeID;
03707 case 2: return Type<T2> ::TypeID;
03708 case 3: return Type<T3> ::TypeID;
03709 case 4: return Type<T4> ::TypeID;
03710 case 5: return Type<T5> ::TypeID;
03711 case 6: return Type<T6> ::TypeID;
03712 default: return TypeInvalid;
03713 }
03714 }
03715
03716 virtual void *GetPointerToParameterValue(uint32 nIndex) override
03717 {
03718 switch (nIndex) {
03719 case 0: return (void*)&Param0;
03720 case 1: return (void*)&Param1;
03721 case 2: return (void*)&Param2;
03722 case 3: return (void*)&Param3;
03723 case 4: return (void*)&Param4;
03724 case 5: return (void*)&Param5;
03725 case 6: return (void*)&Param6;
03726 default: return nullptr;
03727 }
03728 }
03729 };
03730
03731
03732
03733
03734
03735
03736
03737
03738 template <typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6>
03739 class Params<void, T0, T1, T2, T3, T4, T5, T6> : public DynParams {
03740 public:
03741 typedef typename Type<T0> ::_Type _T0;
03742 typedef typename Type<T1> ::_Type _T1;
03743 typedef typename Type<T2> ::_Type _T2;
03744 typedef typename Type<T3> ::_Type _T3;
03745 typedef typename Type<T4> ::_Type _T4;
03746 typedef typename Type<T5> ::_Type _T5;
03747 typedef typename Type<T6> ::_Type _T6;
03748 typedef typename Type<T0>::_StorageType _ST0;
03749 typedef typename Type<T1>::_StorageType _ST1;
03750 typedef typename Type<T2>::_StorageType _ST2;
03751 typedef typename Type<T3>::_StorageType _ST3;
03752 typedef typename Type<T4>::_StorageType _ST4;
03753 typedef typename Type<T5>::_StorageType _ST5;
03754 typedef typename Type<T6>::_StorageType _ST6;
03755
03756 public:
03757 _ST0 Param0;
03758 _ST1 Param1;
03759 _ST2 Param2;
03760 _ST3 Param3;
03761 _ST4 Param4;
03762 _ST5 Param5;
03763 _ST6 Param6;
03764
03765 public:
03766 static Params FromString(const String &sParams) {
03767 ParamsParser cParser;
03768 _T0 t0 = (cParser.ParseString(sParams) ? Type<T0> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T0> ::Default());
03769 _T1 t1 = (cParser.Next() ? Type<T1> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T1> ::Default());
03770 _T2 t2 = (cParser.Next() ? Type<T2> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T2> ::Default());
03771 _T3 t3 = (cParser.Next() ? Type<T3> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T3> ::Default());
03772 _T4 t4 = (cParser.Next() ? Type<T4> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T4> ::Default());
03773 _T5 t5 = (cParser.Next() ? Type<T5> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T5> ::Default());
03774 _T6 t6 = (cParser.Next() ? Type<T6> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T6> ::Default());
03775 return Params(t0, t1, t2, t3, t4, t5, t6);
03776 }
03777
03778 static Params FromXml(const XmlElement &cElement) {
03779 ParamsParserXml cParser;
03780 _T0 t0 = (cParser.ParseXml(cElement) ? Type<T0> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T0> ::Default());
03781 _T1 t1 = (cParser.Next() ? Type<T1> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T1> ::Default());
03782 _T2 t2 = (cParser.Next() ? Type<T2> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T2> ::Default());
03783 _T3 t3 = (cParser.Next() ? Type<T3> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T3> ::Default());
03784 _T4 t4 = (cParser.Next() ? Type<T4> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T4> ::Default());
03785 _T5 t5 = (cParser.Next() ? Type<T5> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T5> ::Default());
03786 _T6 t6 = (cParser.Next() ? Type<T6> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T6> ::Default());
03787 return Params(t0, t1, t2, t3, t4, t5, t6);
03788 }
03789
03790 public:
03791 Params(const Params &cParams) :
03792 Param0(cParams.Param0),
03793 Param1(cParams.Param1),
03794 Param2(cParams.Param2),
03795 Param3(cParams.Param3),
03796 Param4(cParams.Param4),
03797 Param5(cParams.Param5),
03798 Param6(cParams.Param6)
03799 {
03800 }
03801
03802 Params(_T0 t0, _T1 t1, _T2 t2, _T3 t3, _T4 t4, _T5 t5, _T6 t6) :
03803 Param0(Type<T0> ::ConvertRealToStorage(t0)),
03804 Param1(Type<T1> ::ConvertRealToStorage(t1)),
03805 Param2(Type<T2> ::ConvertRealToStorage(t2)),
03806 Param3(Type<T3> ::ConvertRealToStorage(t3)),
03807 Param4(Type<T4> ::ConvertRealToStorage(t4)),
03808 Param5(Type<T5> ::ConvertRealToStorage(t5)),
03809 Param6(Type<T6> ::ConvertRealToStorage(t6))
03810 {
03811 }
03812
03813 virtual ~Params()
03814 {
03815 }
03816
03817 Params &operator =(const Params &cParams)
03818 {
03819 Param0 = cParams.Param0;
03820 Param1 = cParams.Param1;
03821 Param2 = cParams.Param2;
03822 Param3 = cParams.Param3;
03823 Param4 = cParams.Param4;
03824 Param5 = cParams.Param5;
03825 Param6 = cParams.Param6;
03826 return *this;
03827 }
03828
03829 virtual String GetSignature() const override
03830 {
03831 return Signature<void, T0, T1, T2, T3, T4, T5, T6>::GetSignatureID();
03832 }
03833
03834 virtual uint32 GetNumOfParameters() const override
03835 {
03836 return 7;
03837 }
03838
03839 virtual int GetParameterTypeID(uint32 nIndex) const override
03840 {
03841 switch (nIndex) {
03842 case 0: return Type<T0> ::TypeID;
03843 case 1: return Type<T1> ::TypeID;
03844 case 2: return Type<T2> ::TypeID;
03845 case 3: return Type<T3> ::TypeID;
03846 case 4: return Type<T4> ::TypeID;
03847 case 5: return Type<T5> ::TypeID;
03848 case 6: return Type<T6> ::TypeID;
03849 default: return TypeInvalid;
03850 }
03851 }
03852
03853 virtual void *GetPointerToParameterValue(uint32 nIndex) override
03854 {
03855 switch (nIndex) {
03856 case 0: return (void*)&Param0;
03857 case 1: return (void*)&Param1;
03858 case 2: return (void*)&Param2;
03859 case 3: return (void*)&Param3;
03860 case 4: return (void*)&Param4;
03861 case 5: return (void*)&Param5;
03862 case 6: return (void*)&Param6;
03863 default: return nullptr;
03864 }
03865 }
03866 };
03867
03868
03869
03870
03871
03872
03873
03874
03875 template <typename R, typename T0, typename T1, typename T2, typename T3, typename T4, typename T5>
03876 class Params<R, T0, T1, T2, T3, T4, T5> : public DynParams {
03877 public:
03878 typedef typename Type<R> ::_Type _R;
03879 typedef typename Type<T0> ::_Type _T0;
03880 typedef typename Type<T1> ::_Type _T1;
03881 typedef typename Type<T2> ::_Type _T2;
03882 typedef typename Type<T3> ::_Type _T3;
03883 typedef typename Type<T4> ::_Type _T4;
03884 typedef typename Type<T5> ::_Type _T5;
03885 typedef typename Type<R> ::_StorageType _SR;
03886 typedef typename Type<T0>::_StorageType _ST0;
03887 typedef typename Type<T1>::_StorageType _ST1;
03888 typedef typename Type<T2>::_StorageType _ST2;
03889 typedef typename Type<T3>::_StorageType _ST3;
03890 typedef typename Type<T4>::_StorageType _ST4;
03891 typedef typename Type<T5>::_StorageType _ST5;
03892
03893 public:
03894 _SR Return;
03895 _ST0 Param0;
03896 _ST1 Param1;
03897 _ST2 Param2;
03898 _ST3 Param3;
03899 _ST4 Param4;
03900 _ST5 Param5;
03901
03902 public:
03903 static Params FromString(const String &sParams) {
03904 ParamsParser cParser;
03905 _T0 t0 = (cParser.ParseString(sParams) ? Type<T0> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T0> ::Default());
03906 _T1 t1 = (cParser.Next() ? Type<T1> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T1> ::Default());
03907 _T2 t2 = (cParser.Next() ? Type<T2> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T2> ::Default());
03908 _T3 t3 = (cParser.Next() ? Type<T3> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T3> ::Default());
03909 _T4 t4 = (cParser.Next() ? Type<T4> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T4> ::Default());
03910 _T5 t5 = (cParser.Next() ? Type<T5> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T5> ::Default());
03911 return Params(t0, t1, t2, t3, t4, t5);
03912 }
03913
03914 static Params FromXml(const XmlElement &cElement) {
03915 ParamsParserXml cParser;
03916 _T0 t0 = (cParser.ParseXml(cElement) ? Type<T0> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T0> ::Default());
03917 _T1 t1 = (cParser.Next() ? Type<T1> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T1> ::Default());
03918 _T2 t2 = (cParser.Next() ? Type<T2> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T2> ::Default());
03919 _T3 t3 = (cParser.Next() ? Type<T3> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T3> ::Default());
03920 _T4 t4 = (cParser.Next() ? Type<T4> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T4> ::Default());
03921 _T5 t5 = (cParser.Next() ? Type<T5> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T5> ::Default());
03922 return Params(t0, t1, t2, t3, t4, t5);
03923 }
03924
03925 public:
03926 Params(const Params &cParams) :
03927 Return(DefaultValue<_SR>::Default()),
03928 Param0(cParams.Param0),
03929 Param1(cParams.Param1),
03930 Param2(cParams.Param2),
03931 Param3(cParams.Param3),
03932 Param4(cParams.Param4),
03933 Param5(cParams.Param5)
03934 {
03935 }
03936
03937 Params(_T0 t0, _T1 t1, _T2 t2, _T3 t3, _T4 t4, _T5 t5) :
03938 Return(DefaultValue<_SR>::Default()),
03939 Param0(Type<T0> ::ConvertRealToStorage(t0)),
03940 Param1(Type<T1> ::ConvertRealToStorage(t1)),
03941 Param2(Type<T2> ::ConvertRealToStorage(t2)),
03942 Param3(Type<T3> ::ConvertRealToStorage(t3)),
03943 Param4(Type<T4> ::ConvertRealToStorage(t4)),
03944 Param5(Type<T5> ::ConvertRealToStorage(t5))
03945 {
03946 }
03947
03948 virtual ~Params()
03949 {
03950 }
03951
03952 Params &operator =(const Params &cParams)
03953 {
03954 Return = cParams.Return;
03955 Param0 = cParams.Param0;
03956 Param1 = cParams.Param1;
03957 Param2 = cParams.Param2;
03958 Param3 = cParams.Param3;
03959 Param4 = cParams.Param4;
03960 Param5 = cParams.Param5;
03961 return *this;
03962 }
03963
03964 virtual String GetSignature() const override
03965 {
03966 return Signature<R, T0, T1, T2, T3, T4, T5>::GetSignatureID();
03967 }
03968
03969 virtual int GetReturnTypeID() const override
03970 {
03971 return Type<R>::TypeID;
03972 }
03973
03974 virtual void *GetPointerToReturnValue() override
03975 {
03976 return (void*)&Return;
03977 }
03978
03979 virtual uint32 GetNumOfParameters() const override
03980 {
03981 return 6;
03982 }
03983
03984 virtual int GetParameterTypeID(uint32 nIndex) const override
03985 {
03986 switch (nIndex) {
03987 case 0: return Type<T0> ::TypeID;
03988 case 1: return Type<T1> ::TypeID;
03989 case 2: return Type<T2> ::TypeID;
03990 case 3: return Type<T3> ::TypeID;
03991 case 4: return Type<T4> ::TypeID;
03992 case 5: return Type<T5> ::TypeID;
03993 default: return TypeInvalid;
03994 }
03995 }
03996
03997 virtual void *GetPointerToParameterValue(uint32 nIndex) override
03998 {
03999 switch (nIndex) {
04000 case 0: return (void*)&Param0;
04001 case 1: return (void*)&Param1;
04002 case 2: return (void*)&Param2;
04003 case 3: return (void*)&Param3;
04004 case 4: return (void*)&Param4;
04005 case 5: return (void*)&Param5;
04006 default: return nullptr;
04007 }
04008 }
04009 };
04010
04011
04012
04013
04014
04015
04016
04017
04018 template <typename T0, typename T1, typename T2, typename T3, typename T4, typename T5>
04019 class Params<void, T0, T1, T2, T3, T4, T5> : public DynParams {
04020 public:
04021 typedef typename Type<T0> ::_Type _T0;
04022 typedef typename Type<T1> ::_Type _T1;
04023 typedef typename Type<T2> ::_Type _T2;
04024 typedef typename Type<T3> ::_Type _T3;
04025 typedef typename Type<T4> ::_Type _T4;
04026 typedef typename Type<T5> ::_Type _T5;
04027 typedef typename Type<T0>::_StorageType _ST0;
04028 typedef typename Type<T1>::_StorageType _ST1;
04029 typedef typename Type<T2>::_StorageType _ST2;
04030 typedef typename Type<T3>::_StorageType _ST3;
04031 typedef typename Type<T4>::_StorageType _ST4;
04032 typedef typename Type<T5>::_StorageType _ST5;
04033
04034 public:
04035 _ST0 Param0;
04036 _ST1 Param1;
04037 _ST2 Param2;
04038 _ST3 Param3;
04039 _ST4 Param4;
04040 _ST5 Param5;
04041
04042 public:
04043 static Params FromString(const String &sParams) {
04044 ParamsParser cParser;
04045 _T0 t0 = (cParser.ParseString(sParams) ? Type<T0> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T0> ::Default());
04046 _T1 t1 = (cParser.Next() ? Type<T1> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T1> ::Default());
04047 _T2 t2 = (cParser.Next() ? Type<T2> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T2> ::Default());
04048 _T3 t3 = (cParser.Next() ? Type<T3> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T3> ::Default());
04049 _T4 t4 = (cParser.Next() ? Type<T4> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T4> ::Default());
04050 _T5 t5 = (cParser.Next() ? Type<T5> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T5> ::Default());
04051 return Params(t0, t1, t2, t3, t4, t5);
04052 }
04053
04054 static Params FromXml(const XmlElement &cElement) {
04055 ParamsParserXml cParser;
04056 _T0 t0 = (cParser.ParseXml(cElement) ? Type<T0> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T0> ::Default());
04057 _T1 t1 = (cParser.Next() ? Type<T1> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T1> ::Default());
04058 _T2 t2 = (cParser.Next() ? Type<T2> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T2> ::Default());
04059 _T3 t3 = (cParser.Next() ? Type<T3> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T3> ::Default());
04060 _T4 t4 = (cParser.Next() ? Type<T4> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T4> ::Default());
04061 _T5 t5 = (cParser.Next() ? Type<T5> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T5> ::Default());
04062 return Params(t0, t1, t2, t3, t4, t5);
04063 }
04064
04065 public:
04066 Params(const Params &cParams) :
04067 Param0(cParams.Param0),
04068 Param1(cParams.Param1),
04069 Param2(cParams.Param2),
04070 Param3(cParams.Param3),
04071 Param4(cParams.Param4),
04072 Param5(cParams.Param5)
04073 {
04074 }
04075
04076 Params(_T0 t0, _T1 t1, _T2 t2, _T3 t3, _T4 t4, _T5 t5) :
04077 Param0(Type<T0> ::ConvertRealToStorage(t0)),
04078 Param1(Type<T1> ::ConvertRealToStorage(t1)),
04079 Param2(Type<T2> ::ConvertRealToStorage(t2)),
04080 Param3(Type<T3> ::ConvertRealToStorage(t3)),
04081 Param4(Type<T4> ::ConvertRealToStorage(t4)),
04082 Param5(Type<T5> ::ConvertRealToStorage(t5))
04083 {
04084 }
04085
04086 virtual ~Params()
04087 {
04088 }
04089
04090 Params &operator =(const Params &cParams)
04091 {
04092 Param0 = cParams.Param0;
04093 Param1 = cParams.Param1;
04094 Param2 = cParams.Param2;
04095 Param3 = cParams.Param3;
04096 Param4 = cParams.Param4;
04097 Param5 = cParams.Param5;
04098 return *this;
04099 }
04100
04101 virtual String GetSignature() const override
04102 {
04103 return Signature<void, T0, T1, T2, T3, T4, T5>::GetSignatureID();
04104 }
04105
04106 virtual uint32 GetNumOfParameters() const override
04107 {
04108 return 6;
04109 }
04110
04111 virtual int GetParameterTypeID(uint32 nIndex) const override
04112 {
04113 switch (nIndex) {
04114 case 0: return Type<T0> ::TypeID;
04115 case 1: return Type<T1> ::TypeID;
04116 case 2: return Type<T2> ::TypeID;
04117 case 3: return Type<T3> ::TypeID;
04118 case 4: return Type<T4> ::TypeID;
04119 case 5: return Type<T5> ::TypeID;
04120 default: return TypeInvalid;
04121 }
04122 }
04123
04124 virtual void *GetPointerToParameterValue(uint32 nIndex) override
04125 {
04126 switch (nIndex) {
04127 case 0: return (void*)&Param0;
04128 case 1: return (void*)&Param1;
04129 case 2: return (void*)&Param2;
04130 case 3: return (void*)&Param3;
04131 case 4: return (void*)&Param4;
04132 case 5: return (void*)&Param5;
04133 default: return nullptr;
04134 }
04135 }
04136 };
04137
04138
04139
04140
04141
04142
04143
04144
04145 template <typename R, typename T0, typename T1, typename T2, typename T3, typename T4>
04146 class Params<R, T0, T1, T2, T3, T4> : public DynParams {
04147 public:
04148 typedef typename Type<R> ::_Type _R;
04149 typedef typename Type<T0> ::_Type _T0;
04150 typedef typename Type<T1> ::_Type _T1;
04151 typedef typename Type<T2> ::_Type _T2;
04152 typedef typename Type<T3> ::_Type _T3;
04153 typedef typename Type<T4> ::_Type _T4;
04154 typedef typename Type<R> ::_StorageType _SR;
04155 typedef typename Type<T0>::_StorageType _ST0;
04156 typedef typename Type<T1>::_StorageType _ST1;
04157 typedef typename Type<T2>::_StorageType _ST2;
04158 typedef typename Type<T3>::_StorageType _ST3;
04159 typedef typename Type<T4>::_StorageType _ST4;
04160
04161 public:
04162 _SR Return;
04163 _ST0 Param0;
04164 _ST1 Param1;
04165 _ST2 Param2;
04166 _ST3 Param3;
04167 _ST4 Param4;
04168
04169 public:
04170 static Params FromString(const String &sParams) {
04171 ParamsParser cParser;
04172 _T0 t0 = (cParser.ParseString(sParams) ? Type<T0> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T0> ::Default());
04173 _T1 t1 = (cParser.Next() ? Type<T1> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T1> ::Default());
04174 _T2 t2 = (cParser.Next() ? Type<T2> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T2> ::Default());
04175 _T3 t3 = (cParser.Next() ? Type<T3> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T3> ::Default());
04176 _T4 t4 = (cParser.Next() ? Type<T4> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T4> ::Default());
04177 return Params(t0, t1, t2, t3, t4);
04178 }
04179
04180 static Params FromXml(const XmlElement &cElement) {
04181 ParamsParserXml cParser;
04182 _T0 t0 = (cParser.ParseXml(cElement) ? Type<T0> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T0> ::Default());
04183 _T1 t1 = (cParser.Next() ? Type<T1> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T1> ::Default());
04184 _T2 t2 = (cParser.Next() ? Type<T2> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T2> ::Default());
04185 _T3 t3 = (cParser.Next() ? Type<T3> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T3> ::Default());
04186 _T4 t4 = (cParser.Next() ? Type<T4> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T4> ::Default());
04187 return Params(t0, t1, t2, t3, t4);
04188 }
04189
04190 public:
04191 Params(const Params &cParams) :
04192 Return(DefaultValue<_SR>::Default()),
04193 Param0(cParams.Param0),
04194 Param1(cParams.Param1),
04195 Param2(cParams.Param2),
04196 Param3(cParams.Param3),
04197 Param4(cParams.Param4)
04198 {
04199 }
04200
04201 Params(_T0 t0, _T1 t1, _T2 t2, _T3 t3, _T4 t4) :
04202 Return(DefaultValue<_SR>::Default()),
04203 Param0(Type<T0> ::ConvertRealToStorage(t0)),
04204 Param1(Type<T1> ::ConvertRealToStorage(t1)),
04205 Param2(Type<T2> ::ConvertRealToStorage(t2)),
04206 Param3(Type<T3> ::ConvertRealToStorage(t3)),
04207 Param4(Type<T4> ::ConvertRealToStorage(t4))
04208 {
04209 }
04210
04211 virtual ~Params()
04212 {
04213 }
04214
04215 Params &operator =(const Params &cParams)
04216 {
04217 Return = cParams.Return;
04218 Param0 = cParams.Param0;
04219 Param1 = cParams.Param1;
04220 Param2 = cParams.Param2;
04221 Param3 = cParams.Param3;
04222 Param4 = cParams.Param4;
04223 return *this;
04224 }
04225
04226 virtual String GetSignature() const override
04227 {
04228 return Signature<R, T0, T1, T2, T3, T4>::GetSignatureID();
04229 }
04230
04231 virtual int GetReturnTypeID() const override
04232 {
04233 return Type<R>::TypeID;
04234 }
04235
04236 virtual void *GetPointerToReturnValue() override
04237 {
04238 return (void*)&Return;
04239 }
04240
04241 virtual uint32 GetNumOfParameters() const override
04242 {
04243 return 5;
04244 }
04245
04246 virtual int GetParameterTypeID(uint32 nIndex) const override
04247 {
04248 switch (nIndex) {
04249 case 0: return Type<T0> ::TypeID;
04250 case 1: return Type<T1> ::TypeID;
04251 case 2: return Type<T2> ::TypeID;
04252 case 3: return Type<T3> ::TypeID;
04253 case 4: return Type<T4> ::TypeID;
04254 default: return TypeInvalid;
04255 }
04256 }
04257
04258 virtual void *GetPointerToParameterValue(uint32 nIndex) override
04259 {
04260 switch (nIndex) {
04261 case 0: return (void*)&Param0;
04262 case 1: return (void*)&Param1;
04263 case 2: return (void*)&Param2;
04264 case 3: return (void*)&Param3;
04265 case 4: return (void*)&Param4;
04266 default: return nullptr;
04267 }
04268 }
04269 };
04270
04271
04272
04273
04274
04275
04276
04277
04278 template <typename T0, typename T1, typename T2, typename T3, typename T4>
04279 class Params<void, T0, T1, T2, T3, T4> : public DynParams {
04280 public:
04281 typedef typename Type<T0> ::_Type _T0;
04282 typedef typename Type<T1> ::_Type _T1;
04283 typedef typename Type<T2> ::_Type _T2;
04284 typedef typename Type<T3> ::_Type _T3;
04285 typedef typename Type<T4> ::_Type _T4;
04286 typedef typename Type<T0>::_StorageType _ST0;
04287 typedef typename Type<T1>::_StorageType _ST1;
04288 typedef typename Type<T2>::_StorageType _ST2;
04289 typedef typename Type<T3>::_StorageType _ST3;
04290 typedef typename Type<T4>::_StorageType _ST4;
04291
04292 public:
04293 _ST0 Param0;
04294 _ST1 Param1;
04295 _ST2 Param2;
04296 _ST3 Param3;
04297 _ST4 Param4;
04298
04299 public:
04300 static Params FromString(const String &sParams) {
04301 ParamsParser cParser;
04302 _T0 t0 = (cParser.ParseString(sParams) ? Type<T0> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T0> ::Default());
04303 _T1 t1 = (cParser.Next() ? Type<T1> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T1> ::Default());
04304 _T2 t2 = (cParser.Next() ? Type<T2> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T2> ::Default());
04305 _T3 t3 = (cParser.Next() ? Type<T3> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T3> ::Default());
04306 _T4 t4 = (cParser.Next() ? Type<T4> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T4> ::Default());
04307 return Params(t0, t1, t2, t3, t4);
04308 }
04309
04310 static Params FromXml(const XmlElement &cElement) {
04311 ParamsParserXml cParser;
04312 _T0 t0 = (cParser.ParseXml(cElement) ? Type<T0> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T0> ::Default());
04313 _T1 t1 = (cParser.Next() ? Type<T1> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T1> ::Default());
04314 _T2 t2 = (cParser.Next() ? Type<T2> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T2> ::Default());
04315 _T3 t3 = (cParser.Next() ? Type<T3> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T3> ::Default());
04316 _T4 t4 = (cParser.Next() ? Type<T4> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T4> ::Default());
04317 return Params(t0, t1, t2, t3, t4);
04318 }
04319
04320 public:
04321 Params(const Params &cParams) :
04322 Param0(cParams.Param0),
04323 Param1(cParams.Param1),
04324 Param2(cParams.Param2),
04325 Param3(cParams.Param3),
04326 Param4(cParams.Param4)
04327 {
04328 }
04329
04330 Params(_T0 t0, _T1 t1, _T2 t2, _T3 t3, _T4 t4) :
04331 Param0(Type<T0> ::ConvertRealToStorage(t0)),
04332 Param1(Type<T1> ::ConvertRealToStorage(t1)),
04333 Param2(Type<T2> ::ConvertRealToStorage(t2)),
04334 Param3(Type<T3> ::ConvertRealToStorage(t3)),
04335 Param4(Type<T4> ::ConvertRealToStorage(t4))
04336 {
04337 }
04338
04339 virtual ~Params()
04340 {
04341 }
04342
04343 Params &operator =(const Params &cParams)
04344 {
04345 Param0 = cParams.Param0;
04346 Param1 = cParams.Param1;
04347 Param2 = cParams.Param2;
04348 Param3 = cParams.Param3;
04349 Param4 = cParams.Param4;
04350 return *this;
04351 }
04352
04353 virtual String GetSignature() const override
04354 {
04355 return Signature<void, T0, T1, T2, T3, T4>::GetSignatureID();
04356 }
04357
04358 virtual uint32 GetNumOfParameters() const override
04359 {
04360 return 5;
04361 }
04362
04363 virtual int GetParameterTypeID(uint32 nIndex) const override
04364 {
04365 switch (nIndex) {
04366 case 0: return Type<T0> ::TypeID;
04367 case 1: return Type<T1> ::TypeID;
04368 case 2: return Type<T2> ::TypeID;
04369 case 3: return Type<T3> ::TypeID;
04370 case 4: return Type<T4> ::TypeID;
04371 default: return TypeInvalid;
04372 }
04373 }
04374
04375 virtual void *GetPointerToParameterValue(uint32 nIndex) override
04376 {
04377 switch (nIndex) {
04378 case 0: return (void*)&Param0;
04379 case 1: return (void*)&Param1;
04380 case 2: return (void*)&Param2;
04381 case 3: return (void*)&Param3;
04382 case 4: return (void*)&Param4;
04383 default: return nullptr;
04384 }
04385 }
04386 };
04387
04388
04389
04390
04391
04392
04393
04394
04395 template <typename R, typename T0, typename T1, typename T2, typename T3>
04396 class Params<R, T0, T1, T2, T3> : public DynParams {
04397 public:
04398 typedef typename Type<R> ::_Type _R;
04399 typedef typename Type<T0> ::_Type _T0;
04400 typedef typename Type<T1> ::_Type _T1;
04401 typedef typename Type<T2> ::_Type _T2;
04402 typedef typename Type<T3> ::_Type _T3;
04403 typedef typename Type<R> ::_StorageType _SR;
04404 typedef typename Type<T0>::_StorageType _ST0;
04405 typedef typename Type<T1>::_StorageType _ST1;
04406 typedef typename Type<T2>::_StorageType _ST2;
04407 typedef typename Type<T3>::_StorageType _ST3;
04408
04409 public:
04410 _SR Return;
04411 _ST0 Param0;
04412 _ST1 Param1;
04413 _ST2 Param2;
04414 _ST3 Param3;
04415
04416 public:
04417 static Params FromString(const String &sParams) {
04418 ParamsParser cParser;
04419 _T0 t0 = (cParser.ParseString(sParams) ? Type<T0> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T0> ::Default());
04420 _T1 t1 = (cParser.Next() ? Type<T1> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T1> ::Default());
04421 _T2 t2 = (cParser.Next() ? Type<T2> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T2> ::Default());
04422 _T3 t3 = (cParser.Next() ? Type<T3> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T3> ::Default());
04423 return Params(t0, t1, t2, t3);
04424 }
04425
04426 static Params FromXml(const XmlElement &cElement) {
04427 ParamsParserXml cParser;
04428 _T0 t0 = (cParser.ParseXml(cElement) ? Type<T0> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T0> ::Default());
04429 _T1 t1 = (cParser.Next() ? Type<T1> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T1> ::Default());
04430 _T2 t2 = (cParser.Next() ? Type<T2> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T2> ::Default());
04431 _T3 t3 = (cParser.Next() ? Type<T3> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T3> ::Default());
04432 return Params(t0, t1, t2, t3);
04433 }
04434
04435 public:
04436 Params(const Params &cParams) :
04437 Return(DefaultValue<_SR>::Default()),
04438 Param0(cParams.Param0),
04439 Param1(cParams.Param1),
04440 Param2(cParams.Param2),
04441 Param3(cParams.Param3)
04442 {
04443 }
04444
04445 Params(_T0 t0, _T1 t1, _T2 t2, _T3 t3) :
04446 Return(DefaultValue<_SR>::Default()),
04447 Param0(Type<T0> ::ConvertRealToStorage(t0)),
04448 Param1(Type<T1> ::ConvertRealToStorage(t1)),
04449 Param2(Type<T2> ::ConvertRealToStorage(t2)),
04450 Param3(Type<T3> ::ConvertRealToStorage(t3))
04451 {
04452 }
04453
04454 virtual ~Params()
04455 {
04456 }
04457
04458 Params &operator =(const Params &cParams)
04459 {
04460 Return = cParams.Return;
04461 Param0 = cParams.Param0;
04462 Param1 = cParams.Param1;
04463 Param2 = cParams.Param2;
04464 Param3 = cParams.Param3;
04465 return *this;
04466 }
04467
04468 virtual String GetSignature() const override
04469 {
04470 return Signature<R, T0, T1, T2, T3>::GetSignatureID();
04471 }
04472
04473 virtual int GetReturnTypeID() const override
04474 {
04475 return Type<R>::TypeID;
04476 }
04477
04478 virtual void *GetPointerToReturnValue() override
04479 {
04480 return (void*)&Return;
04481 }
04482
04483 virtual uint32 GetNumOfParameters() const override
04484 {
04485 return 4;
04486 }
04487
04488 virtual int GetParameterTypeID(uint32 nIndex) const override
04489 {
04490 switch (nIndex) {
04491 case 0: return Type<T0> ::TypeID;
04492 case 1: return Type<T1> ::TypeID;
04493 case 2: return Type<T2> ::TypeID;
04494 case 3: return Type<T3> ::TypeID;
04495 default: return TypeInvalid;
04496 }
04497 }
04498
04499 virtual void *GetPointerToParameterValue(uint32 nIndex) override
04500 {
04501 switch (nIndex) {
04502 case 0: return (void*)&Param0;
04503 case 1: return (void*)&Param1;
04504 case 2: return (void*)&Param2;
04505 case 3: return (void*)&Param3;
04506 default: return nullptr;
04507 }
04508 }
04509 };
04510
04511
04512
04513
04514
04515
04516
04517
04518 template <typename T0, typename T1, typename T2, typename T3>
04519 class Params<void, T0, T1, T2, T3> : public DynParams {
04520 public:
04521 typedef typename Type<T0> ::_Type _T0;
04522 typedef typename Type<T1> ::_Type _T1;
04523 typedef typename Type<T2> ::_Type _T2;
04524 typedef typename Type<T3> ::_Type _T3;
04525 typedef typename Type<T0>::_StorageType _ST0;
04526 typedef typename Type<T1>::_StorageType _ST1;
04527 typedef typename Type<T2>::_StorageType _ST2;
04528 typedef typename Type<T3>::_StorageType _ST3;
04529
04530 public:
04531 _ST0 Param0;
04532 _ST1 Param1;
04533 _ST2 Param2;
04534 _ST3 Param3;
04535
04536 public:
04537 static Params FromString(const String &sParams) {
04538 ParamsParser cParser;
04539 _T0 t0 = (cParser.ParseString(sParams) ? Type<T0> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T0> ::Default());
04540 _T1 t1 = (cParser.Next() ? Type<T1> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T1> ::Default());
04541 _T2 t2 = (cParser.Next() ? Type<T2> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T2> ::Default());
04542 _T3 t3 = (cParser.Next() ? Type<T3> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T3> ::Default());
04543 return Params(t0, t1, t2, t3);
04544 }
04545
04546 static Params FromXml(const XmlElement &cElement) {
04547 ParamsParserXml cParser;
04548 _T0 t0 = (cParser.ParseXml(cElement) ? Type<T0> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T0> ::Default());
04549 _T1 t1 = (cParser.Next() ? Type<T1> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T1> ::Default());
04550 _T2 t2 = (cParser.Next() ? Type<T2> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T2> ::Default());
04551 _T3 t3 = (cParser.Next() ? Type<T3> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T3> ::Default());
04552 return Params(t0, t1, t2, t3);
04553 }
04554
04555 public:
04556 Params(const Params &cParams) :
04557 Param0(cParams.Param0),
04558 Param1(cParams.Param1),
04559 Param2(cParams.Param2),
04560 Param3(cParams.Param3)
04561 {
04562 }
04563
04564 Params(_T0 t0, _T1 t1, _T2 t2, _T3 t3) :
04565 Param0(Type<T0> ::ConvertRealToStorage(t0)),
04566 Param1(Type<T1> ::ConvertRealToStorage(t1)),
04567 Param2(Type<T2> ::ConvertRealToStorage(t2)),
04568 Param3(Type<T3> ::ConvertRealToStorage(t3))
04569 {
04570 }
04571
04572 virtual ~Params()
04573 {
04574 }
04575
04576 Params &operator =(const Params &cParams)
04577 {
04578 Param0 = cParams.Param0;
04579 Param1 = cParams.Param1;
04580 Param2 = cParams.Param2;
04581 Param3 = cParams.Param3;
04582 return *this;
04583 }
04584
04585 virtual String GetSignature() const override
04586 {
04587 return Signature<void, T0, T1, T2, T3>::GetSignatureID();
04588 }
04589
04590 virtual uint32 GetNumOfParameters() const override
04591 {
04592 return 4;
04593 }
04594
04595 virtual int GetParameterTypeID(uint32 nIndex) const override
04596 {
04597 switch (nIndex) {
04598 case 0: return Type<T0> ::TypeID;
04599 case 1: return Type<T1> ::TypeID;
04600 case 2: return Type<T2> ::TypeID;
04601 case 3: return Type<T3> ::TypeID;
04602 default: return TypeInvalid;
04603 }
04604 }
04605
04606 virtual void *GetPointerToParameterValue(uint32 nIndex) override
04607 {
04608 switch (nIndex) {
04609 case 0: return (void*)&Param0;
04610 case 1: return (void*)&Param1;
04611 case 2: return (void*)&Param2;
04612 case 3: return (void*)&Param3;
04613 default: return nullptr;
04614 }
04615 }
04616 };
04617
04618
04619
04620
04621
04622
04623
04624
04625 template <typename R, typename T0, typename T1, typename T2>
04626 class Params<R, T0, T1, T2> : public DynParams {
04627 public:
04628 typedef typename Type<R> ::_Type _R;
04629 typedef typename Type<T0> ::_Type _T0;
04630 typedef typename Type<T1> ::_Type _T1;
04631 typedef typename Type<T2> ::_Type _T2;
04632 typedef typename Type<R> ::_StorageType _SR;
04633 typedef typename Type<T0>::_StorageType _ST0;
04634 typedef typename Type<T1>::_StorageType _ST1;
04635 typedef typename Type<T2>::_StorageType _ST2;
04636
04637 public:
04638 _SR Return;
04639 _ST0 Param0;
04640 _ST1 Param1;
04641 _ST2 Param2;
04642
04643 public:
04644 static Params FromString(const String &sParams) {
04645 ParamsParser cParser;
04646 _T0 t0 = (cParser.ParseString(sParams) ? Type<T0> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T0> ::Default());
04647 _T1 t1 = (cParser.Next() ? Type<T1> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T1> ::Default());
04648 _T2 t2 = (cParser.Next() ? Type<T2> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T2> ::Default());
04649 return Params(t0, t1, t2);
04650 }
04651
04652 static Params FromXml(const XmlElement &cElement) {
04653 ParamsParserXml cParser;
04654 _T0 t0 = (cParser.ParseXml(cElement) ? Type<T0> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T0> ::Default());
04655 _T1 t1 = (cParser.Next() ? Type<T1> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T1> ::Default());
04656 _T2 t2 = (cParser.Next() ? Type<T2> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T2> ::Default());
04657 return Params(t0, t1, t2);
04658 }
04659
04660 public:
04661 Params(const Params &cParams) :
04662 Return(DefaultValue<_SR>::Default()),
04663 Param0(cParams.Param0),
04664 Param1(cParams.Param1),
04665 Param2(cParams.Param2)
04666 {
04667 }
04668
04669 Params(_T0 t0, _T1 t1, _T2 t2) :
04670 Return(DefaultValue<_SR>::Default()),
04671 Param0(Type<T0> ::ConvertRealToStorage(t0)),
04672 Param1(Type<T1> ::ConvertRealToStorage(t1)),
04673 Param2(Type<T2> ::ConvertRealToStorage(t2))
04674 {
04675 }
04676
04677 virtual ~Params()
04678 {
04679 }
04680
04681 Params &operator =(const Params &cParams)
04682 {
04683 Return = cParams.Return;
04684 Param0 = cParams.Param0;
04685 Param1 = cParams.Param1;
04686 Param2 = cParams.Param2;
04687 return *this;
04688 }
04689
04690 virtual String GetSignature() const override
04691 {
04692 return Signature<R, T0, T1, T2>::GetSignatureID();
04693 }
04694
04695 virtual int GetReturnTypeID() const override
04696 {
04697 return Type<R>::TypeID;
04698 }
04699
04700 virtual void *GetPointerToReturnValue() override
04701 {
04702 return (void*)&Return;
04703 }
04704
04705 virtual uint32 GetNumOfParameters() const override
04706 {
04707 return 3;
04708 }
04709
04710 virtual int GetParameterTypeID(uint32 nIndex) const override
04711 {
04712 switch (nIndex) {
04713 case 0: return Type<T0> ::TypeID;
04714 case 1: return Type<T1> ::TypeID;
04715 case 2: return Type<T2> ::TypeID;
04716 default: return TypeInvalid;
04717 }
04718 }
04719
04720 virtual void *GetPointerToParameterValue(uint32 nIndex) override
04721 {
04722 switch (nIndex) {
04723 case 0: return (void*)&Param0;
04724 case 1: return (void*)&Param1;
04725 case 2: return (void*)&Param2;
04726 default: return nullptr;
04727 }
04728 }
04729 };
04730
04731
04732
04733
04734
04735
04736
04737
04738 template <typename T0, typename T1, typename T2>
04739 class Params<void, T0, T1, T2> : public DynParams {
04740 public:
04741 typedef typename Type<T0> ::_Type _T0;
04742 typedef typename Type<T1> ::_Type _T1;
04743 typedef typename Type<T2> ::_Type _T2;
04744 typedef typename Type<T0>::_StorageType _ST0;
04745 typedef typename Type<T1>::_StorageType _ST1;
04746 typedef typename Type<T2>::_StorageType _ST2;
04747
04748 public:
04749 _ST0 Param0;
04750 _ST1 Param1;
04751 _ST2 Param2;
04752
04753 public:
04754 static Params FromString(const String &sParams) {
04755 ParamsParser cParser;
04756 _T0 t0 = (cParser.ParseString(sParams) ? Type<T0> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T0> ::Default());
04757 _T1 t1 = (cParser.Next() ? Type<T1> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T1> ::Default());
04758 _T2 t2 = (cParser.Next() ? Type<T2> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T2> ::Default());
04759 return Params(t0, t1, t2);
04760 }
04761
04762 static Params FromXml(const XmlElement &cElement) {
04763 ParamsParserXml cParser;
04764 _T0 t0 = (cParser.ParseXml(cElement) ? Type<T0> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T0> ::Default());
04765 _T1 t1 = (cParser.Next() ? Type<T1> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T1> ::Default());
04766 _T2 t2 = (cParser.Next() ? Type<T2> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T2> ::Default());
04767 return Params(t0, t1, t2);
04768 }
04769
04770 public:
04771 Params(const Params &cParams) :
04772 Param0(cParams.Param0),
04773 Param1(cParams.Param1),
04774 Param2(cParams.Param2)
04775 {
04776 }
04777
04778 Params(_T0 t0, _T1 t1, _T2 t2) :
04779 Param0(Type<T0> ::ConvertRealToStorage(t0)),
04780 Param1(Type<T1> ::ConvertRealToStorage(t1)),
04781 Param2(Type<T2> ::ConvertRealToStorage(t2))
04782 {
04783 }
04784
04785 virtual ~Params()
04786 {
04787 }
04788
04789 Params &operator =(const Params &cParams)
04790 {
04791 Param0 = cParams.Param0;
04792 Param1 = cParams.Param1;
04793 Param2 = cParams.Param2;
04794 return *this;
04795 }
04796
04797 virtual String GetSignature() const override
04798 {
04799 return Signature<void, T0, T1, T2>::GetSignatureID();
04800 }
04801
04802 virtual uint32 GetNumOfParameters() const override
04803 {
04804 return 3;
04805 }
04806
04807 virtual int GetParameterTypeID(uint32 nIndex) const override
04808 {
04809 switch (nIndex) {
04810 case 0: return Type<T0> ::TypeID;
04811 case 1: return Type<T1> ::TypeID;
04812 case 2: return Type<T2> ::TypeID;
04813 default: return TypeInvalid;
04814 }
04815 }
04816
04817 virtual void *GetPointerToParameterValue(uint32 nIndex) override
04818 {
04819 switch (nIndex) {
04820 case 0: return (void*)&Param0;
04821 case 1: return (void*)&Param1;
04822 case 2: return (void*)&Param2;
04823 default: return nullptr;
04824 }
04825 }
04826 };
04827
04828
04829
04830
04831
04832
04833
04834
04835 template <typename R, typename T0, typename T1>
04836 class Params<R, T0, T1> : public DynParams {
04837 public:
04838 typedef typename Type<R> ::_Type _R;
04839 typedef typename Type<T0> ::_Type _T0;
04840 typedef typename Type<T1> ::_Type _T1;
04841 typedef typename Type<R> ::_StorageType _SR;
04842 typedef typename Type<T0>::_StorageType _ST0;
04843 typedef typename Type<T1>::_StorageType _ST1;
04844
04845 public:
04846 _SR Return;
04847 _ST0 Param0;
04848 _ST1 Param1;
04849
04850 public:
04851 static Params FromString(const String &sParams) {
04852 ParamsParser cParser;
04853 _T0 t0 = (cParser.ParseString(sParams) ? Type<T0> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T0> ::Default());
04854 _T1 t1 = (cParser.Next() ? Type<T1> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T1> ::Default());
04855 return Params(t0, t1);
04856 }
04857
04858 static Params FromXml(const XmlElement &cElement) {
04859 ParamsParserXml cParser;
04860 _T0 t0 = (cParser.ParseXml(cElement) ? Type<T0> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T0> ::Default());
04861 _T1 t1 = (cParser.Next() ? Type<T1> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T1> ::Default());
04862 return Params(t0, t1);
04863 }
04864
04865 public:
04866 Params(const Params &cParams) :
04867 Return(DefaultValue<_SR>::Default()),
04868 Param0(cParams.Param0),
04869 Param1(cParams.Param1)
04870 {
04871 }
04872
04873 Params(_T0 t0, _T1 t1) :
04874 Return(DefaultValue<_SR>::Default()),
04875 Param0(Type<T0> ::ConvertRealToStorage(t0)),
04876 Param1(Type<T1> ::ConvertRealToStorage(t1))
04877 {
04878 }
04879
04880 virtual ~Params()
04881 {
04882 }
04883
04884 Params &operator =(const Params &cParams)
04885 {
04886 Return = cParams.Return;
04887 Param0 = cParams.Param0;
04888 Param1 = cParams.Param1;
04889 return *this;
04890 }
04891
04892 virtual String GetSignature() const override
04893 {
04894 return Signature<R, T0, T1>::GetSignatureID();
04895 }
04896
04897 virtual int GetReturnTypeID() const override
04898 {
04899 return Type<R>::TypeID;
04900 }
04901
04902 virtual void *GetPointerToReturnValue() override
04903 {
04904 return (void*)&Return;
04905 }
04906
04907 virtual uint32 GetNumOfParameters() const override
04908 {
04909 return 2;
04910 }
04911
04912 virtual int GetParameterTypeID(uint32 nIndex) const override
04913 {
04914 switch (nIndex) {
04915 case 0: return Type<T0> ::TypeID;
04916 case 1: return Type<T1> ::TypeID;
04917 default: return TypeInvalid;
04918 }
04919 }
04920
04921 virtual void *GetPointerToParameterValue(uint32 nIndex) override
04922 {
04923 switch (nIndex) {
04924 case 0: return (void*)&Param0;
04925 case 1: return (void*)&Param1;
04926 default: return nullptr;
04927 }
04928 }
04929 };
04930
04931
04932
04933
04934
04935
04936
04937
04938 template <typename T0, typename T1>
04939 class Params<void, T0, T1> : public DynParams {
04940 public:
04941 typedef typename Type<T0> ::_Type _T0;
04942 typedef typename Type<T1> ::_Type _T1;
04943 typedef typename Type<T0>::_StorageType _ST0;
04944 typedef typename Type<T1>::_StorageType _ST1;
04945
04946 public:
04947 _ST0 Param0;
04948 _ST1 Param1;
04949
04950 public:
04951 static Params FromString(const String &sParams) {
04952 ParamsParser cParser;
04953 _T0 t0 = (cParser.ParseString(sParams) ? Type<T0> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T0> ::Default());
04954 _T1 t1 = (cParser.Next() ? Type<T1> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T1> ::Default());
04955 return Params(t0, t1);
04956 }
04957
04958 static Params FromXml(const XmlElement &cElement) {
04959 ParamsParserXml cParser;
04960 _T0 t0 = (cParser.ParseXml(cElement) ? Type<T0> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T0> ::Default());
04961 _T1 t1 = (cParser.Next() ? Type<T1> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T1> ::Default());
04962 return Params(t0, t1);
04963 }
04964
04965 public:
04966 Params(const Params &cParams) :
04967 Param0(cParams.Param0),
04968 Param1(cParams.Param1)
04969 {
04970 }
04971
04972 Params(_T0 t0, _T1 t1) :
04973 Param0(Type<T0> ::ConvertRealToStorage(t0)),
04974 Param1(Type<T1> ::ConvertRealToStorage(t1))
04975 {
04976 }
04977
04978 virtual ~Params()
04979 {
04980 }
04981
04982 Params &operator =(const Params &cParams)
04983 {
04984 Param0 = cParams.Param0;
04985 Param1 = cParams.Param1;
04986 return *this;
04987 }
04988
04989 virtual String GetSignature() const override
04990 {
04991 return Signature<void, T0, T1>::GetSignatureID();
04992 }
04993
04994 virtual uint32 GetNumOfParameters() const override
04995 {
04996 return 2;
04997 }
04998
04999 virtual int GetParameterTypeID(uint32 nIndex) const override
05000 {
05001 switch (nIndex) {
05002 case 0: return Type<T0> ::TypeID;
05003 case 1: return Type<T1> ::TypeID;
05004 default: return TypeInvalid;
05005 }
05006 }
05007
05008 virtual void *GetPointerToParameterValue(uint32 nIndex) override
05009 {
05010 switch (nIndex) {
05011 case 0: return (void*)&Param0;
05012 case 1: return (void*)&Param1;
05013 default: return nullptr;
05014 }
05015 }
05016 };
05017
05018
05019
05020
05021
05022
05023
05024
05025 template <typename R, typename T0>
05026 class Params<R, T0> : public DynParams {
05027 public:
05028 typedef typename Type<R> ::_Type _R;
05029 typedef typename Type<T0> ::_Type _T0;
05030 typedef typename Type<R> ::_StorageType _SR;
05031 typedef typename Type<T0>::_StorageType _ST0;
05032
05033 public:
05034 _SR Return;
05035 _ST0 Param0;
05036
05037 public:
05038 static Params FromString(const String &sParams) {
05039 ParamsParser cParser;
05040 _T0 t0 = (cParser.ParseString(sParams) ? Type<T0> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T0> ::Default());
05041 return Params(t0);
05042 }
05043
05044 static Params FromXml(const XmlElement &cElement) {
05045 ParamsParserXml cParser;
05046 _T0 t0 = (cParser.ParseXml(cElement) ? Type<T0> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T0> ::Default());
05047 return Params(t0);
05048 }
05049
05050 public:
05051 Params(const Params &cParams) :
05052 Return(DefaultValue<_SR>::Default()),
05053 Param0(cParams.Param0)
05054 {
05055 }
05056
05057 Params(_T0 t0) :
05058 Return(DefaultValue<_SR>::Default()),
05059 Param0(Type<T0> ::ConvertRealToStorage(t0))
05060 {
05061 }
05062
05063 virtual ~Params()
05064 {
05065 }
05066
05067 Params &operator =(const Params &cParams)
05068 {
05069 Return = cParams.Return;
05070 Param0 = cParams.Param0;
05071 return *this;
05072 }
05073
05074 virtual String GetSignature() const override
05075 {
05076 return Signature<R, T0>::GetSignatureID();
05077 }
05078
05079 virtual int GetReturnTypeID() const override
05080 {
05081 return Type<R>::TypeID;
05082 }
05083
05084 virtual void *GetPointerToReturnValue() override
05085 {
05086 return (void*)&Return;
05087 }
05088
05089 virtual uint32 GetNumOfParameters() const override
05090 {
05091 return 1;
05092 }
05093
05094 virtual int GetParameterTypeID(uint32 nIndex) const override
05095 {
05096 switch (nIndex) {
05097 case 0: return Type<T0> ::TypeID;
05098 default: return TypeInvalid;
05099 }
05100 }
05101
05102 virtual void *GetPointerToParameterValue(uint32 nIndex) override
05103 {
05104 switch (nIndex) {
05105 case 0: return (void*)&Param0;
05106 default: return nullptr;
05107 }
05108 }
05109 };
05110
05111
05112
05113
05114
05115
05116
05117
05118 template <typename T0>
05119 class Params<void, T0> : public DynParams {
05120 public:
05121 typedef typename Type<T0> ::_Type _T0;
05122 typedef typename Type<T0>::_StorageType _ST0;
05123
05124 public:
05125 _ST0 Param0;
05126
05127 public:
05128 static Params FromString(const String &sParams) {
05129 ParamsParser cParser;
05130 _T0 t0 = (cParser.ParseString(sParams) ? Type<T0> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T0> ::Default());
05131 return Params(t0);
05132 }
05133
05134 static Params FromXml(const XmlElement &cElement) {
05135 ParamsParserXml cParser;
05136 _T0 t0 = (cParser.ParseXml(cElement) ? Type<T0> ::ConvertFromString(cParser.GetValue()) : DefaultValue<T0> ::Default());
05137 return Params(t0);
05138 }
05139
05140 public:
05141 Params(const Params &cParams) :
05142 Param0(cParams.Param0)
05143 {
05144 }
05145
05146 Params(_T0 t0) :
05147 Param0(Type<T0> ::ConvertRealToStorage(t0))
05148 {
05149 }
05150
05151 virtual ~Params()
05152 {
05153 }
05154
05155 Params &operator =(const Params &cParams)
05156 {
05157 Param0 = cParams.Param0;
05158 return *this;
05159 }
05160
05161 virtual String GetSignature() const override
05162 {
05163 return Signature<void, T0>::GetSignatureID();
05164 }
05165
05166 virtual uint32 GetNumOfParameters() const override
05167 {
05168 return 1;
05169 }
05170
05171 virtual int GetParameterTypeID(uint32 nIndex) const override
05172 {
05173 switch (nIndex) {
05174 case 0: return Type<T0> ::TypeID;
05175 default: return TypeInvalid;
05176 }
05177 }
05178
05179 virtual void *GetPointerToParameterValue(uint32 nIndex) override
05180 {
05181 switch (nIndex) {
05182 case 0: return (void*)&Param0;
05183 default: return nullptr;
05184 }
05185 }
05186 };
05187
05188
05189
05190
05191
05192
05193
05194
05195 template <typename R>
05196 class Params<R> : public DynParams {
05197 public:
05198 typedef typename Type<R> ::_Type _R;
05199 typedef typename Type<R>::_StorageType _SR;
05200
05201 public:
05202 _SR Return;
05203
05204 public:
05205 static Params FromString(const String &sParams) {
05206 return Params();
05207 }
05208
05209 static Params FromXml(const XmlElement &cElement) {
05210 return Params();
05211 }
05212
05213 public:
05214 Params(const Params &cParams) :
05215 Return(DefaultValue<_SR>::Default())
05216 {
05217 }
05218
05219 Params() :
05220 Return(DefaultValue<_SR>::Default())
05221 {
05222 }
05223
05224 virtual ~Params()
05225 {
05226 }
05227
05228 Params &operator =(const Params &cParams)
05229 {
05230 Return = cParams.Return;
05231 return *this;
05232 }
05233
05234 virtual String GetSignature() const override
05235 {
05236 return Signature<R>::GetSignatureID();
05237 }
05238
05239 virtual int GetReturnTypeID() const override
05240 {
05241 return Type<R>::TypeID;
05242 }
05243
05244 virtual void *GetPointerToReturnValue() override
05245 {
05246 return (void*)&Return;
05247 }
05248 };
05249
05250
05251
05252
05253
05254
05255
05256
05257 template <>
05258 class Params<void> : public DynParams {
05259 public:
05260 static Params FromString(const String &sParams) {
05261 return Params();
05262 }
05263
05264 static Params FromXml(const XmlElement &cElement) {
05265 return Params();
05266 }
05267
05268 public:
05269 Params(const Params &cParams)
05270 {
05271 }
05272
05273 Params()
05274 {
05275 }
05276
05277 virtual ~Params()
05278 {
05279 }
05280
05281 Params &operator =(const Params &cParams)
05282 {
05283 return *this;
05284 }
05285
05286 virtual String GetSignature() const override
05287 {
05288 return Signature<void>::GetSignatureID();
05289 }
05290 };
05291
05292
05293
05294
05295
05296 }
05297
05298
05299 #endif // __PLCORE_PARAMS_H__