Changeset 9727 in orxonox.OLD for branches/new_class_id/src/lib/util/executor/executor_lua.h
- Timestamp:
- Sep 14, 2006, 5:24:31 PM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/new_class_id/src/lib/util/executor/executor_lua.h
r9006 r9727 40 40 /////////// 41 41 //! Executes a Function with a lua_State* parameter. 42 template<class T> class ExecutorLua0 : public Executor 43 { 44 public: 45 /** 46 * @brief Constructor of a ExecutorXML 47 * @param function a Function to call 48 */ 49 ExecutorLua0(void(T::*function)()) 50 : Executor() 51 { 52 this->functionPointer = function; 53 this->functorType = Executor_Objective | Executor_NoLoadString; 54 } 55 56 /** 57 * @brief executes the Command on BaseObject 58 * @param object the BaseObject to execute this Executor on 59 * @param loadString ignored in this case 60 */ 61 virtual void operator()(BaseObject* object, const SubString& = SubString()) const 62 { 63 PRINTF(1)("no usefull executor\n"); 64 } 65 66 virtual void operator()(BaseObject* object, int& count, void* values) const 67 { 68 (dynamic_cast<T*>(object)->*(functionPointer))(); 69 count = 0; 70 } 71 72 /** 73 * @returns a _new_ Copy of this Executor 74 */ 75 virtual Executor* clone () const 76 { 77 return new ExecutorLua0<T>(ExecutorLua0<T>(this->functionPointer)); 78 } 79 private: 80 void (T::*functionPointer)(); 42 template<class T> class ExecutorLua0 : public Executor<lua_State*> 43 { 44 public: 45 /** 46 * @brief Constructor of a ExecutorXML 47 * @param function a Function to call 48 */ 49 ExecutorLua0(void(T::*function)()) 50 : Executor<lua_State*>(false) 51 { 52 this->functionPointer = function; 53 this->functorType = Executor_Objective; 54 } 55 56 57 virtual void operator()(BaseObject* object, lua_State*& state) const 58 { 59 (dynamic_cast<T*>(object)->*(functionPointer))(); 60 } 61 62 /** 63 * @returns a _new_ Copy of this Executor 64 */ 65 virtual Executor<lua_State*>* clone () const 66 { 67 return new ExecutorLua0<T>(ExecutorLua0<T>(this->functionPointer)); 68 } 69 private: 70 void (T::*functionPointer)(); 81 71 }; 82 72 … … 87 77 /////////// 88 78 //! Executes a Function with a lua_State* parameter. 89 template<class T, typename type0> class ExecutorLua1 : public Executor 90 { 91 public: 92 /** 93 * @brief Constructor of a ExecutorXML 94 * @param function a Function to call 95 */ 96 ExecutorLua1(void(T::*function)(type0)) 97 : Executor(ExecutorParamType<type0>()) 98 { 99 this->functionPointer = function; 100 this->functorType = Executor_Objective | Executor_NoLoadString; 101 } 102 103 /** 104 * @brief executes the Command on BaseObject 105 * @param object the BaseObject to execute this Executor on 106 * @param loadString ignored in this case 107 */ 108 virtual void operator()(BaseObject* object, const SubString& = SubString()) const 109 { 110 PRINTF(1)("no usefull executor\n"); 111 } 112 113 virtual void operator()(BaseObject* object, int& count, void* values) const 114 { 115 lua_State* state = (lua_State*)values; 116 count = 0; 117 118 (dynamic_cast<T*>(object)->*(functionPointer))(fromLua<type0>(state, 1)); 119 } 120 121 /** 122 * @returns a _new_ Copy of this Executor 123 */ 124 virtual Executor* clone () const 125 { 126 return new ExecutorLua1<T, type0>((this->functionPointer)); 127 } 128 private: 129 void (T::*functionPointer)(type0); 79 template<class T, typename type0> class ExecutorLua1 : public Executor<lua_State*> 80 { 81 public: 82 /** 83 * @brief Constructor of a ExecutorXML 84 * @param function a Function to call 85 */ 86 ExecutorLua1(void(T::*function)(type0)) 87 : Executor<lua_State*>(false, ExecutorParamType<type0>()) 88 { 89 this->functionPointer = function; 90 this->functorType = Executor_Objective; 91 } 92 93 virtual void operator()(BaseObject* object, lua_State*& state) const 94 { 95 (dynamic_cast<T*>(object)->*(functionPointer))(fromLua<type0>(state, 1)); 96 } 97 98 /** 99 * @returns a _new_ Copy of this Executor 100 */ 101 virtual Executor<lua_State*>* clone () const 102 { 103 return new ExecutorLua1<T, type0>((this->functionPointer)); 104 } 105 private: 106 void (T::*functionPointer)(type0); 130 107 }; 131 108 … … 136 113 /////////// 137 114 //! Executes a Function with a lua_State* parameter. 138 template<class T, typename type0, typename type1> class ExecutorLua2 : public Executor 139 { 140 public: 141 /** 142 * @brief Constructor of a ExecutorXML 143 * @param function a Function to call 144 */ 145 ExecutorLua2(void(T::*function)(type0, type1)) 146 : Executor(ExecutorParamType<type0>(), ExecutorParamType<type1>()) 147 { 148 this->functionPointer = function; 149 this->functorType = Executor_Objective | Executor_NoLoadString; 150 } 151 152 /** 153 * @brief executes the Command on BaseObject 154 * @param object the BaseObject to execute this Executor on 155 * @param loadString ignored in this case 156 */ 157 virtual void operator()(BaseObject* object, const SubString& = SubString()) const 158 { 159 PRINTF(1)("no usefull executor\n"); 160 } 161 162 virtual void operator()(BaseObject* object, int& count, void* values) const 163 { 164 lua_State* state = (lua_State*)values; 165 count = 0; 166 167 (dynamic_cast<T*>(object)->*(functionPointer))( 168 fromLua<type0>(state, 1), 115 template<class T, typename type0, typename type1> class ExecutorLua2 : public Executor<lua_State*> 116 { 117 public: 118 /** 119 * @brief Constructor of a ExecutorXML 120 * @param function a Function to call 121 */ 122 ExecutorLua2(void(T::*function)(type0, type1)) 123 : Executor<lua_State*>(false, ExecutorParamType<type0>(), ExecutorParamType<type1>()) 124 { 125 this->functionPointer = function; 126 this->functorType = Executor_Objective; 127 } 128 129 /** 130 * @brief executes the Command on BaseObject 131 * @param object the BaseObject to execute this Executor on 132 * @param loadString ignored in this case 133 */ 134 virtual void operator()(BaseObject* object, const SubString& = SubString()) const 135 { 136 PRINTF(1)("no usefull executor\n"); 137 } 138 139 virtual void operator()(BaseObject* object, lua_State*& state) const 140 { 141 (dynamic_cast<T*>(object)->*(functionPointer))( 142 fromLua<type0>(state, 1), 169 143 fromLua<type1>(state, 2) ); 170 171 172 173 174 175 virtual Executor* clone () const176 177 178 179 180 144 } 145 146 /** 147 * @returns a _new_ Copy of this Executor 148 */ 149 virtual Executor<lua_State*>* clone () const 150 { 151 return new ExecutorLua2<T, type0, type1>(this->functionPointer); 152 } 153 private: 154 void (T::*functionPointer)(type0, type1); 181 155 }; 182 156 … … 186 160 /////////// 187 161 //! Executes a Function with a lua_State* parameter. 188 template<class T, typename type0, typename type1, typename type2> class ExecutorLua3 : public Executor 189 { 190 public: 191 /** 192 * @brief Constructor of a ExecutorXML 193 * @param function a Function to call 194 */ 195 ExecutorLua3(void(T::*function)(type0, type1, type2)) 196 : Executor(ExecutorParamType<type0>(), ExecutorParamType<type1>(), ExecutorParamType<type2>()) 197 { 198 this->functionPointer = function; 199 this->functorType = Executor_Objective | Executor_NoLoadString; 200 } 201 202 /** 203 * @brief executes the Command on BaseObject 204 * @param object the BaseObject to execute this Executor on 205 * @param loadString ignored in this case 206 */ 207 virtual void operator()(BaseObject* object, const SubString& = SubString()) const 208 { 209 PRINTF(1)("no usefull executor\n"); 210 } 211 212 virtual void operator()(BaseObject* object, int& count, void* values) const 213 { 214 lua_State* state = (lua_State*)values; 215 count = 0; 216 217 (dynamic_cast<T*>(object)->*(functionPointer))( 218 fromLua<type0>(state, 1), 162 template<class T, typename type0, typename type1, typename type2> class ExecutorLua3 : public Executor<lua_State*> 163 { 164 public: 165 /** 166 * @brief Constructor of a ExecutorXML 167 * @param function a Function to call 168 */ 169 ExecutorLua3(void(T::*function)(type0, type1, type2)) 170 : Executor<lua_State*>(false, ExecutorParamType<type0>(), ExecutorParamType<type1>(), ExecutorParamType<type2>()) 171 { 172 this->functionPointer = function; 173 this->functorType = Executor_Objective; 174 } 175 176 /** 177 * @brief executes the Command on BaseObject 178 * @param object the BaseObject to execute this Executor on 179 * @param loadString ignored in this case 180 */ 181 virtual void operator()(BaseObject* object, const SubString& = SubString()) const 182 { 183 PRINTF(1)("no usefull executor\n"); 184 } 185 186 virtual void operator()(BaseObject* object, lua_State*& state) const 187 { 188 (dynamic_cast<T*>(object)->*(functionPointer))( 189 fromLua<type0>(state, 1), 219 190 fromLua<type1>(state, 2), 220 191 fromLua<type2>(state, 3) ); 221 222 223 224 225 226 virtual Executor* clone () const227 228 229 230 231 192 } 193 194 /** 195 * @returns a _new_ Copy of this Executor 196 */ 197 virtual Executor<lua_State*>* clone () const 198 { 199 return new ExecutorLua3<T, type0, type1, type2>(this->functionPointer); 200 } 201 private: 202 void (T::*functionPointer)(type0, type1, type2); 232 203 }; 233 204 … … 237 208 /////////// 238 209 //! Executes a Function with a lua_State* parameter. 239 template<class T, typename type0, typename type1, typename type2, typename type3> class ExecutorLua4 : public Executor 240 { 241 public: 242 /** 243 * @brief Constructor of a ExecutorXML 244 * @param function a Function to call 245 */ 246 ExecutorLua4(void(T::*function)(type0, type1, type2, type3)) 247 : Executor(ExecutorParamType<type0>(), ExecutorParamType<type1>(), ExecutorParamType<type2>(), ExecutorParamType<type3>()) 248 { 249 this->functionPointer = function; 250 this->functorType = Executor_Objective | Executor_NoLoadString; 251 } 252 253 /** 254 * @brief executes the Command on BaseObject 255 * @param object the BaseObject to execute this Executor on 256 * @param loadString ignored in this case 257 */ 258 virtual void operator()(BaseObject* object, const SubString& = SubString()) const 259 { 260 PRINTF(1)("no usefull executor\n"); 261 } 262 263 virtual void operator()(BaseObject* object, int& count, void* values) const 264 { 265 lua_State* state = (lua_State*)values; 266 count = 0; 267 268 (dynamic_cast<T*>(object)->*(functionPointer))( 269 fromLua<type0>(state, 1), 210 template<class T, typename type0, typename type1, typename type2, typename type3> class ExecutorLua4 : public Executor<lua_State*> 211 { 212 public: 213 /** 214 * @brief Constructor of a ExecutorXML 215 * @param function a Function to call 216 */ 217 ExecutorLua4(void(T::*function)(type0, type1, type2, type3)) 218 : Executor<lua_State*>(false, ExecutorParamType<type0>(), ExecutorParamType<type1>(), ExecutorParamType<type2>(), ExecutorParamType<type3>()) 219 { 220 this->functionPointer = function; 221 this->functorType = Executor_Objective; 222 } 223 224 virtual void operator()(BaseObject* object, lua_State*& state) const 225 { 226 (dynamic_cast<T*>(object)->*(functionPointer))( 227 fromLua<type0>(state, 1), 270 228 fromLua<type1>(state, 2), 271 229 fromLua<type2>(state, 3), 272 230 fromLua<type3>(state, 4) ); 273 274 275 276 277 278 virtual Executor* clone () const279 280 281 282 283 231 } 232 233 /** 234 * @returns a _new_ Copy of this Executor 235 */ 236 virtual Executor<lua_State*>* clone () const 237 { 238 return new ExecutorLua4<T, type0, type1, type2, type3>(this->functionPointer); 239 } 240 private: 241 void (T::*functionPointer)(type0, type1, type2, type3); 284 242 }; 285 243 … … 296 254 /////////// 297 255 //! Executes a Function with a lua_State* parameter. 298 template<class T, typename ret> class ExecutorLua0ret : public Executor 299 { 300 public: 301 /** 302 * @brief Constructor of a ExecutorXML 303 * @param function a Function to call 304 */ 305 ExecutorLua0ret(ret (T::*function)()) 306 : Executor() 307 { 308 this->functionPointer = function; 309 this->functorType = Executor_Objective | Executor_NoLoadString; 310 } 311 312 /** 313 * @brief executes the Command on BaseObject 314 * @param object the BaseObject to execute this Executor on 315 * @param loadString ignored in this case 316 */ 317 virtual void operator()(BaseObject* object, const SubString& = SubString()) const 318 { 319 PRINTF(1)("no usefull executor\n"); 320 } 321 322 virtual void operator()(BaseObject* object, int& count, void* values) const 323 { 324 lua_State* state = (lua_State*)values; 325 count = 1; 326 327 toLua<ret>(state, (dynamic_cast<T*>(object)->*(functionPointer))()); 328 } 329 330 /** 331 * @returns a _new_ Copy of this Executor 332 */ 333 virtual Executor* clone () const 334 { 335 return new ExecutorLua0ret<T, ret>(this->functionPointer); 336 } 337 private: 338 ret (T::*functionPointer)(); 256 template<class T, typename ret> class ExecutorLua0ret : public Executor<lua_State*> 257 { 258 public: 259 /** 260 * @brief Constructor of a ExecutorXML 261 * @param function a Function to call 262 */ 263 ExecutorLua0ret(ret (T::*function)()) 264 : Executor<lua_State*>(true) 265 { 266 this->functionPointer = function; 267 this->functorType = Executor_Objective; 268 } 269 270 virtual void operator()(BaseObject* object, lua_State*& state) const 271 { 272 toLua<ret>(state, (dynamic_cast<T*>(object)->*(functionPointer))()); 273 } 274 275 /** 276 * @returns a _new_ Copy of this Executor 277 */ 278 virtual Executor<lua_State*>* clone () const 279 { 280 return new ExecutorLua0ret<T, ret>(this->functionPointer); 281 } 282 private: 283 ret (T::*functionPointer)(); 339 284 }; 340 285 … … 345 290 /////////// 346 291 //! Executes a Function with a lua_State* parameter. 347 template<class T, typename ret, typename type0> class ExecutorLua1ret : public Executor 348 { 349 public: 350 /** 351 * @brief Constructor of a ExecutorXML 352 * @param function a Function to call 353 */ 354 ExecutorLua1ret(ret (T::*function)(type0)) 355 : Executor(ExecutorParamType<type0>()) 356 { 357 this->functionPointer = function; 358 this->functorType = Executor_Objective | Executor_NoLoadString; 359 } 360 361 /** 362 * @brief executes the Command on BaseObject 363 * @param object the BaseObject to execute this Executor on 364 * @param loadString ignored in this case 365 */ 366 virtual void operator()(BaseObject* object, const SubString& = SubString()) const 367 { 368 PRINTF(1)("no usefull executor\n"); 369 } 370 371 virtual void operator()(BaseObject* object, int& count, void* values) const 372 { 373 lua_State* state = (lua_State*)values; 374 count = 1; 375 376 toLua<ret>(state, (dynamic_cast<T*>(object)->*(functionPointer))( 377 fromLua<type0>(state, 1))); 378 } 379 380 /** 381 * @returns a _new_ Copy of this Executor 382 */ 383 virtual Executor* clone () const 384 { 385 return new ExecutorLua1ret<T, ret, type0>(this->functionPointer); 386 } 387 private: 388 ret (T::*functionPointer)(type0); 292 template<class T, typename ret, typename type0> class ExecutorLua1ret : public Executor<lua_State*> 293 { 294 public: 295 /** 296 * @brief Constructor of a ExecutorXML 297 * @param function a Function to call 298 */ 299 ExecutorLua1ret(ret (T::*function)(type0)) 300 : Executor<lua_State*>(true, ExecutorParamType<type0>()) 301 { 302 this->functionPointer = function; 303 this->functorType = Executor_Objective; 304 } 305 306 virtual void operator()(BaseObject* object, lua_State*& state) const 307 { 308 toLua<ret>(state, (dynamic_cast<T*>(object)->*(functionPointer))( 309 fromLua<type0>(state, 1))); 310 } 311 312 /** 313 * @returns a _new_ Copy of this Executor 314 */ 315 virtual Executor<lua_State*>* clone () const 316 { 317 return new ExecutorLua1ret<T, ret, type0>(this->functionPointer); 318 } 319 private: 320 ret (T::*functionPointer)(type0); 389 321 }; 390 322 … … 393 325 /////////// 394 326 //! Executes a Function with a lua_State* parameter. 395 template<class T, typename ret, typename type0, typename type1> class ExecutorLua2ret : public Executor 396 { 397 public: 398 /** 399 * @brief Constructor of a ExecutorXML 400 * @param function a Function to call 401 */ 402 ExecutorLua2ret(ret (T::*function)(type0, type1)) 403 : Executor(ExecutorParamType<type0>(), ExecutorParamType<type1>()) 404 { 405 this->functionPointer = function; 406 this->functorType = Executor_Objective | Executor_NoLoadString; 407 } 408 409 /** 410 * @brief executes the Command on BaseObject 411 * @param object the BaseObject to execute this Executor on 412 * @param loadString ignored in this case 413 */ 414 virtual void operator()(BaseObject* object, const SubString& = SubString()) const 415 { 416 PRINTF(1)("no usefull executor\n"); 417 } 418 419 virtual void operator()(BaseObject* object, int& count, void* values) const 420 { 421 lua_State* state = (lua_State*)values; 422 count = 1; 423 424 toLua<ret>(state, (dynamic_cast<T*>(object)->*(functionPointer))( 425 fromLua<type0>(state, 1), 426 fromLua<type1>(state, 2) )); 427 } 428 429 /** 430 * @returns a _new_ Copy of this Executor 431 */ 432 virtual Executor* clone () const 433 { 434 return new ExecutorLua2ret<T, ret, type0, type1>(this->functionPointer); 435 } 436 private: 437 ret (T::*functionPointer)(type0, type1); 327 template<class T, typename ret, typename type0, typename type1> class ExecutorLua2ret : public Executor<lua_State*> 328 { 329 public: 330 /** 331 * @brief Constructor of a ExecutorXML 332 * @param function a Function to call 333 */ 334 ExecutorLua2ret(ret (T::*function)(type0, type1)) 335 : Executor<lua_State*>(true, ExecutorParamType<type0>(), ExecutorParamType<type1>()) 336 { 337 this->functionPointer = function; 338 this->functorType = Executor_Objective; 339 } 340 341 virtual void operator()(BaseObject* object, lua_State*& state) const 342 { 343 toLua<ret>(state, (dynamic_cast<T*>(object)->*(functionPointer))( 344 fromLua<type0>(state, 1), 345 fromLua<type1>(state, 2) )); 346 } 347 348 /** 349 * @returns a _new_ Copy of this Executor 350 */ 351 virtual Executor<lua_State*>* clone () const 352 { 353 return new ExecutorLua2ret<T, ret, type0, type1>(this->functionPointer); 354 } 355 private: 356 ret (T::*functionPointer)(type0, type1); 438 357 }; 439 358 … … 443 362 /////////// 444 363 //! Executes a Function with a lua_State* parameter. 445 template<class T, typename ret, typename type0, typename type1, typename type2> class ExecutorLua3ret : public Executor 446 { 447 public: 448 /** 449 * @brief Constructor of a ExecutorXML 450 * @param function a Function to call 451 */ 452 ExecutorLua3ret(ret (T::*function)(type0, type1, type2)) 453 : Executor(ExecutorParamType<type0>(), ExecutorParamType<type1>(), ExecutorParamType<type2>()) 454 { 455 this->functionPointer = function; 456 this->functorType = Executor_Objective | Executor_NoLoadString; 457 } 458 459 /** 460 * @brief executes the Command on BaseObject 461 * @param object the BaseObject to execute this Executor on 462 * @param loadString ignored in this case 463 */ 464 virtual void operator()(BaseObject* object, const SubString& = SubString()) const 465 { 466 PRINTF(1)("no usefull executor\n"); 467 } 468 469 virtual void operator()(BaseObject* object, int& count, void* values) const 470 { 471 lua_State* state = (lua_State*)values; 472 count = 1; 473 474 toLua<ret>(state, (dynamic_cast<T*>(object)->*(functionPointer))( 475 fromLua<type0>(state, 1), 476 fromLua<type1>(state, 2), 477 fromLua<type2>(state, 3) )); 478 } 479 480 /** 481 * @returns a _new_ Copy of this Executor 482 */ 483 virtual Executor* clone () const 484 { 485 return new ExecutorLua3ret<T, ret, type0, type1, type2>(this->functionPointer); 486 } 487 private: 488 ret (T::*functionPointer)(type0, type1, type2); 364 template<class T, typename ret, typename type0, typename type1, typename type2> class ExecutorLua3ret : public Executor<lua_State*> 365 { 366 public: 367 /** 368 * @brief Constructor of a ExecutorXML 369 * @param function a Function to call 370 */ 371 ExecutorLua3ret(ret (T::*function)(type0, type1, type2)) 372 : Executor<lua_State*>(true, ExecutorParamType<type0>(), ExecutorParamType<type1>(), ExecutorParamType<type2>()) 373 { 374 this->functionPointer = function; 375 this->functorType = Executor_Objective; 376 } 377 378 /** 379 * @brief executes the Command on BaseObject 380 * @param object the BaseObject to execute this Executor on 381 * @param loadString ignored in this case 382 */ 383 virtual void operator()(BaseObject* object, const SubString& = SubString()) const 384 { 385 PRINTF(1)("no usefull executor\n"); 386 } 387 388 virtual void operator()(BaseObject* object, lua_State*& state) const 389 { 390 toLua<ret>(state, (dynamic_cast<T*>(object)->*(functionPointer))( 391 fromLua<type0>(state, 1), 392 fromLua<type1>(state, 2), 393 fromLua<type2>(state, 3) )); 394 } 395 396 /** 397 * @returns a _new_ Copy of this Executor 398 */ 399 virtual Executor<lua_State*>* clone () const 400 { 401 return new ExecutorLua3ret<T, ret, type0, type1, type2>(this->functionPointer); 402 } 403 private: 404 ret (T::*functionPointer)(type0, type1, type2); 489 405 }; 490 406 … … 494 410 /////////// 495 411 //! Executes a Function with a lua_State* parameter. 496 template<class T, typename ret, typename type0, typename type1, typename type2, typename type3> class ExecutorLua4ret : public Executor 497 { 498 public: 499 /** 500 * @brief Constructor of a ExecutorXML 501 * @param function a Function to call 502 */ 503 ExecutorLua4ret(ret (T::*function)(type0, type1, type2, type3)) 504 : Executor(ExecutorParamType<type0>(), ExecutorParamType<type1>(), ExecutorParamType<type2>(), ExecutorParamType<type3>()) 505 { 506 this->functionPointer = function; 507 this->functorType = Executor_Objective | Executor_NoLoadString; 508 } 509 510 /** 511 * @brief executes the Command on BaseObject 512 * @param object the BaseObject to execute this Executor on 513 * @param loadString ignored in this case 514 */ 515 virtual void operator()(BaseObject* object, const SubString& = SubString()) const 516 { 517 PRINTF(1)("no usefull executor\n"); 518 } 519 520 virtual void operator()(BaseObject* object, int& count, void* values) const 521 { 522 lua_State* state = (lua_State*)values; 523 count = 1; 524 525 toLua<ret>(state, (dynamic_cast<T*>(object)->*(functionPointer))( 526 fromLua<type0>(state, 1), 527 fromLua<type1>(state, 2), 528 fromLua<type2>(state, 3), 529 fromLua<type3>(state, 4) )); 530 } 531 532 /** 533 * @returns a _new_ Copy of this Executor 534 */ 535 virtual Executor* clone () const 536 { 537 return new ExecutorLua4ret<T, ret, type0, type1, type2, type3>(this->functionPointer); 538 } 539 private: 540 ret (T::*functionPointer)(type0, type1, type2, type3); 412 template<class T, typename ret, typename type0, typename type1, typename type2, typename type3> class ExecutorLua4ret : public Executor<lua_State*> 413 { 414 public: 415 /** 416 * @brief Constructor of a ExecutorXML 417 * @param function a Function to call 418 */ 419 ExecutorLua4ret(ret (T::*function)(type0, type1, type2, type3)) 420 : Executor<lua_State*>(true, ExecutorParamType<type0>(), ExecutorParamType<type1>(), ExecutorParamType<type2>(), ExecutorParamType<type3>()) 421 { 422 this->functionPointer = function; 423 this->functorType = Executor_Objective; 424 } 425 426 virtual void operator()(BaseObject* object, lua_State*& state) const 427 { 428 toLua<ret>(state, (dynamic_cast<T*>(object)->*(functionPointer))( 429 fromLua<type0>(state, 1), 430 fromLua<type1>(state, 2), 431 fromLua<type2>(state, 3), 432 fromLua<type3>(state, 4) )); 433 } 434 435 /** 436 * @returns a _new_ Copy of this Executor 437 */ 438 virtual Executor<lua_State*>* clone () const 439 { 440 return new ExecutorLua4ret<T, ret, type0, type1, type2, type3>(this->functionPointer); 441 } 442 private: 443 ret (T::*functionPointer)(type0, type1, type2, type3); 541 444 }; 542 445 … … 545 448 /////////// 546 449 //! Executes a Function with a lua_State* parameter. 547 template<class T, typename ret, typename type0, typename type1, typename type2, typename type3, typename type4> class ExecutorLua5ret : public Executor 548 { 549 public: 550 /** 551 * @brief Constructor of a ExecutorXML 552 * @param function a Function to call 553 */ 554 ExecutorLua5ret(ret (T::*function)(type0, type1, type2, type3, type4)) 555 : Executor(ExecutorParamType<type0>(), ExecutorParamType<type1>(), ExecutorParamType<type2>(), ExecutorParamType<type3>(), ExecutorParamType<type4>()) 556 { 557 this->functionPointer = function; 558 this->functorType = Executor_Objective | Executor_NoLoadString; 559 } 560 561 /** 562 * @brief executes the Command on BaseObject 563 * @param object the BaseObject to execute this Executor on 564 * @param loadString ignored in this case 565 */ 566 virtual void operator()(BaseObject* object, const SubString& = SubString()) const 567 { 568 PRINTF(1)("no usefull executor\n"); 569 } 570 571 virtual void operator()(BaseObject* object, int& count, void* values) const 572 { 573 lua_State* state = (lua_State*)values; 574 count = 1; 575 576 toLua<ret>(state, (dynamic_cast<T*>(object)->*(functionPointer))( 577 fromLua<type0>(state, 1), 578 fromLua<type1>(state, 2), 579 fromLua<type2>(state, 3), 580 fromLua<type3>(state, 4), 581 fromLua<type4>(state, 5) )); 582 } 583 584 /** 585 * @returns a _new_ Copy of this Executor 586 */ 587 virtual Executor* clone () const 588 { 589 return new ExecutorLua5ret<T, ret, type0, type1, type2, type3, type4>(this->functionPointer); 590 } 591 private: 592 ret (T::*functionPointer)(type0, type1, type2, type3, type4); 450 template<class T, typename ret, typename type0, typename type1, typename type2, typename type3, typename type4> class ExecutorLua5ret : public Executor<lua_State*> 451 { 452 public: 453 /** 454 * @brief Constructor of a ExecutorXML 455 * @param function a Function to call 456 */ 457 ExecutorLua5ret(ret (T::*function)(type0, type1, type2, type3, type4)) 458 : Executor<lua_State*>(true, ExecutorParamType<type0>(), ExecutorParamType<type1>(), ExecutorParamType<type2>(), ExecutorParamType<type3>(), ExecutorParamType<type4>()) 459 { 460 this->functionPointer = function; 461 this->functorType = Executor_Objective; 462 } 463 464 virtual void operator()(BaseObject* object, lua_State*& state) const 465 { 466 toLua<ret>(state, (dynamic_cast<T*>(object)->*(functionPointer))( 467 fromLua<type0>(state, 1), 468 fromLua<type1>(state, 2), 469 fromLua<type2>(state, 3), 470 fromLua<type3>(state, 4), 471 fromLua<type4>(state, 5) )); 472 } 473 474 /** 475 * @returns a _new_ Copy of this Executor 476 */ 477 virtual Executor<lua_State*>* clone () const 478 { 479 return new ExecutorLua5ret<T, ret, type0, type1, type2, type3, type4>(this->functionPointer); 480 } 481 private: 482 ret (T::*functionPointer)(type0, type1, type2, type3, type4); 593 483 }; 594 484 … … 597 487 /////////// 598 488 //! Executes a Function with a lua_State* parameter. 599 template<class T, typename ret, typename type0, typename type1, typename type2, typename type3, typename type4, typename type5> class ExecutorLua6ret : public Executor 600 { 601 public: 602 /** 603 * @brief Constructor of a ExecutorXML 604 * @param function a Function to call 605 */ 606 ExecutorLua6ret(ret (T::*function)(type0, type1, type2, type3, type4, type5)) 607 : Executor(ExecutorParamType<type0>(), ExecutorParamType<type1>(), 608 ExecutorParamType<type2>(), ExecutorParamType<type3>(), 609 ExecutorParamType<type4>(), ExecutorParamType<type5>()) 610 { 611 this->functionPointer = function; 612 this->functorType = Executor_Objective | Executor_NoLoadString; 613 } 614 615 /** 616 * @brief executes the Command on BaseObject 617 * @param object the BaseObject to execute this Executor on 618 * @param loadString ignored in this case 619 */ 620 virtual void operator()(BaseObject* object, const SubString& = SubString()) const 621 { 622 PRINTF(1)("no usefull executor\n"); 623 } 624 625 virtual void operator()(BaseObject* object, int& count, void* values) const 626 { 627 lua_State* state = (lua_State*)values; 628 count = 1; 629 630 toLua<ret>(state, (dynamic_cast<T*>(object)->*(functionPointer))( 631 fromLua<type0>(state, 1), 632 fromLua<type1>(state, 2), 633 fromLua<type2>(state, 3), 634 fromLua<type3>(state, 4), 635 fromLua<type4>(state, 5), 636 fromLua<type5>(state, 6) )); 637 } 638 639 /** 640 * @returns a _new_ Copy of this Executor 641 */ 642 virtual Executor* clone () const 643 { 644 return new ExecutorLua6ret<T, ret, type0, type1, type2, type3, type4, type5>(this->functionPointer); 645 } 646 private: 647 ret (T::*functionPointer)(type0, type1, type2, type3, type4, type5); 489 template<class T, typename ret, typename type0, typename type1, typename type2, typename type3, typename type4, typename type5> class ExecutorLua6ret : public Executor<lua_State*> 490 { 491 public: 492 /** 493 * @brief Constructor of a ExecutorXML 494 * @param function a Function to call 495 */ 496 ExecutorLua6ret(ret (T::*function)(type0, type1, type2, type3, type4, type5)) 497 : Executor<lua_State*>(true, ExecutorParamType<type0>(), ExecutorParamType<type1>(), 498 ExecutorParamType<type2>(), ExecutorParamType<type3>(), 499 ExecutorParamType<type4>(), ExecutorParamType<type5>()) 500 { 501 this->functionPointer = function; 502 this->functorType = Executor_Objective; 503 } 504 505 virtual void operator()(BaseObject* object, lua_State*& state) const 506 { 507 toLua<ret>(state, (dynamic_cast<T*>(object)->*(functionPointer))( 508 fromLua<type0>(state, 1), 509 fromLua<type1>(state, 2), 510 fromLua<type2>(state, 3), 511 fromLua<type3>(state, 4), 512 fromLua<type4>(state, 5), 513 fromLua<type5>(state, 6) )); 514 } 515 516 /** 517 * @returns a _new_ Copy of this Executor 518 */ 519 virtual Executor<lua_State*>* clone () const 520 { 521 return new ExecutorLua6ret<T, ret, type0, type1, type2, type3, type4, type5>(this->functionPointer); 522 } 523 private: 524 ret (T::*functionPointer)(type0, type1, type2, type3, type4, type5); 648 525 }; 649 526 … … 652 529 /////////// 653 530 //! Executes a Function with a lua_State* parameter. 654 template<class T, typename ret, typename type0, typename type1, typename type2, typename type3, typename type4, typename type5, typename type6> class ExecutorLua7ret : public Executor 655 { 656 public: 657 /** 658 * @brief Constructor of a ExecutorXML 659 * @param function a Function to call 660 */ 661 ExecutorLua7ret(ret (T::*function)(type0, type1, type2, type3, type4, type5, type6)) 662 : Executor(ExecutorParamType<type0>(), ExecutorParamType<type1>(), 663 ExecutorParamType<type2>(), ExecutorParamType<type3>(), 664 ExecutorParamType<type4>(), ExecutorParamType<type5>(), 665 ExecutorParamType<type6>()) 666 { 667 this->functionPointer = function; 668 this->functorType = Executor_Objective | Executor_NoLoadString; 669 } 670 671 /** 672 * @brief executes the Command on BaseObject 673 * @param object the BaseObject to execute this Executor on 674 * @param loadString ignored in this case 675 */ 676 virtual void operator()(BaseObject* object, const SubString& = SubString()) const 677 { 678 PRINTF(1)("no usefull executor\n"); 679 } 680 681 virtual void operator()(BaseObject* object, int& count, void* values) const 682 { 683 lua_State* state = (lua_State*)values; 684 count = 1; 685 686 toLua<ret>(state, (dynamic_cast<T*>(object)->*(functionPointer))( 687 fromLua<type0>(state, 1), 688 fromLua<type1>(state, 2), 689 fromLua<type2>(state, 3), 690 fromLua<type3>(state, 4), 691 fromLua<type4>(state, 5), 692 fromLua<type5>(state, 6), 693 fromLua<type6>(state, 7) )); 694 } 695 696 /** 697 * @returns a _new_ Copy of this Executor 698 */ 699 virtual Executor* clone () const 700 { 701 return new ExecutorLua7ret<T, ret, type0, type1, type2, type3, type4, type5, type6>(this->functionPointer); 702 } 703 private: 704 ret (T::*functionPointer)(type0, type1, type2, type3, type4, type5, type6); 531 template<class T, typename ret, typename type0, typename type1, typename type2, typename type3, typename type4, typename type5, typename type6> class ExecutorLua7ret : public Executor<lua_State*> 532 { 533 public: 534 /** 535 * @brief Constructor of a ExecutorXML 536 * @param function a Function to call 537 */ 538 ExecutorLua7ret(ret (T::*function)(type0, type1, type2, type3, type4, type5, type6)) 539 : Executor<lua_State*>(true, ExecutorParamType<type0>(), ExecutorParamType<type1>(), 540 ExecutorParamType<type2>(), ExecutorParamType<type3>(), 541 ExecutorParamType<type4>(), ExecutorParamType<type5>(), 542 ExecutorParamType<type6>()) 543 { 544 this->functionPointer = function; 545 this->functorType = Executor_Objective; 546 } 547 548 virtual void operator()(BaseObject* object, lua_State*& state) const 549 { 550 toLua<ret>(state, (dynamic_cast<T*>(object)->*(functionPointer))( 551 fromLua<type0>(state, 1), 552 fromLua<type1>(state, 2), 553 fromLua<type2>(state, 3), 554 fromLua<type3>(state, 4), 555 fromLua<type4>(state, 5), 556 fromLua<type5>(state, 6), 557 fromLua<type6>(state, 7) )); 558 } 559 560 /** 561 * @returns a _new_ Copy of this Executor 562 */ 563 virtual Executor<lua_State*>* clone () const 564 { 565 return new ExecutorLua7ret<T, ret, type0, type1, type2, type3, type4, type5, type6>(this->functionPointer); 566 } 567 private: 568 ret (T::*functionPointer)(type0, type1, type2, type3, type4, type5, type6); 705 569 }; 706 570
Note: See TracChangeset
for help on using the changeset viewer.