Changeset 7714 in orxonox.OLD for trunk/src/orxonox.cc
- Timestamp:
- May 19, 2006, 1:29:27 AM (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/orxonox.cc
r7711 r7714 302 302 NetworkManager::getInstance()->establishConnection(this->serverName, port); 303 303 } 304 else if( this->port > 0) { // we are a server 304 else if( this->port > 0) 305 { // we are a server 305 306 State::setOnline(true); 306 307 NetworkManager::getInstance()->createServer(port); … … 335 336 PRINTF(1)("The DataDirectory %s could not be verified\n\nh" \ 336 337 "!!! Please Change in File %s Section %s Entry %s to a suitable value !!!\n", 337 ResourceManager::getInstance()->getDataDir().c_str(),338 this->configFileName.c_str(),338 ResourceManager::getInstance()->getDataDir().c_str(), 339 this->configFileName.c_str(), 339 340 CONFIG_SECTION_GENERAL, 340 341 CONFIG_NAME_DATADIR ); … … 413 414 bool showGui = false; 414 415 415 416 /// HACK HACK TEST 417 418 419 template<typename type> MT_Type ExecutorParamType() { return MT_EXT1; }; 420 template<> MT_Type ExecutorParamType<bool>() { return MT_EXT1; }; 421 template<> MT_Type ExecutorParamType<int>() { return MT_INT; }; 422 template<> MT_Type ExecutorParamType<unsigned int>() { return MT_UINT; }; 423 template<> MT_Type ExecutorParamType<float>() { return MT_FLOAT; }; 424 template<> MT_Type ExecutorParamType<char>() { return MT_CHAR; }; 425 template<> MT_Type ExecutorParamType<const std::string&>() { return MT_STRING; }; 426 427 template<typename type> type fromString(const std::string& input, type defaultValue) {return defaultValue; }; 428 template<> bool fromString<bool>(const std::string& input, bool defaultValue) { return isBool(input, defaultValue); }; 429 template<> int fromString<int>(const std::string& input, int defaultValue) { return isInt(input, defaultValue); }; 430 template<> unsigned int fromString<unsigned int>(const std::string& input, unsigned int defaultValue) { return isInt(input, defaultValue); }; 431 template<> float fromString<float>(const std::string& input, float defaultValue) { return isFloat(input, defaultValue); }; 432 template<> char fromString<char>(const std::string& input, char defaultValue) { return isInt(input, defaultValue); }; 433 template<> const std::string& fromString<const std::string&>(const std::string& input, const std::string& defaultValue) { return isString(input, defaultValue); }; 434 435 template<typename type> type getDefault(const MultiType* const defaultValues, unsigned int i) { return (type)0; }; 436 template<> bool getDefault<bool>(const MultiType* const defaultValues, unsigned int i) { return defaultValues[i].getBool(); }; 437 template<> int getDefault<int>(const MultiType* const defaultValues, unsigned int i) { return defaultValues[i].getInt(); }; 438 template<> unsigned int getDefault<unsigned int>(const MultiType* const defaultValues, unsigned int i) { return defaultValues[i].getInt(); }; 439 template<> float getDefault<float>(const MultiType* const defaultValues, unsigned int i) { return defaultValues[i].getFloat(); }; 440 template<> char getDefault<char>(const MultiType* const defaultValues, unsigned int i) { return defaultValues[i].getChar(); }; 441 template<> std::string getDefault<std::string>(const MultiType* const defaultValues, unsigned int i) { return defaultValues[i].getString(); }; 442 443 444 template<class T> class Executor0Params : public Executor 445 { 446 private: 447 void (T::*functionPointer)(); 448 449 public: 450 Executor0Params (void (T::*functionPointer)()) 451 : Executor() 452 { 453 this->functorType = Executor_Objective; 454 this->functionPointer = functionPointer; 455 } 456 virtual void operator()(BaseObject* object, const SubString& sub = SubString()) const 457 { 458 (dynamic_cast<T*>(object)->*functionPointer)(); 459 }; 460 461 Executor* clone() const {}; 462 }; 463 464 465 template<class T, typename type0> class Executor1Params : public Executor 466 { 467 private: 468 void (T::*functionPointer)(type0); 469 470 public: 471 Executor1Params (void (T::*functionPointer)(type0)) 472 : Executor(ExecutorParamType<type0>()) 473 { 474 this->functorType = Executor_Objective; 475 this->functionPointer = functionPointer; 476 } 477 virtual void operator()(BaseObject* object, const SubString& sub = SubString()) const 478 { 479 480 /* // THE VERY COOL DEBUG 481 printf("SUB[0] : %s\n", sub[0].c_str()); 482 printf("getDefault<type0>(this->defaultValue, 0):::: %d\n", getDefault<type0>(this->defaultValue, 0)); 483 printf("VALUE: %d\n", fromString<type0>(sub[0], getDefault<type0>(this->defaultValue, 0))); 484 */ 485 (dynamic_cast<T*>(object)->*functionPointer)( fromString<type0>(sub[0], getDefault<type0>(this->defaultValue, 0)) ); 486 }; 487 488 virtual Executor* clone() const {}; 489 }; 490 491 /// DOUBLE PENETRATION 492 template<class T, typename type0, typename type1> class Executor2Params : public Executor 493 { 494 private: 495 void (T::*functionPointer)(type0, type1); 496 497 public: 498 Executor2Params (void (T::*functionPointer)(type0, type1)) 499 : Executor(ExecutorParamType<type0>(), ExecutorParamType<type1>()) 500 { 501 this->functorType = Executor_Objective; 502 this->functionPointer = functionPointer; 503 } 504 virtual void operator()(BaseObject* object, const SubString& sub = SubString()) const 505 { 506 (dynamic_cast<T*>(object)->*functionPointer)( 507 fromString<type0>(sub[0], getDefault<type0>(this->defaultValue, 0)), 508 fromString<type1>(sub[1], getDefault<type1>(this->defaultValue, 1))); 509 }; 510 511 virtual Executor* clone() const {}; 512 }; 513 514 class TestClass : public BaseObject 515 { 516 public: 517 TestClass() {}; 518 519 void printTest() { printf ("TEST\n"); }; 520 void printTestInt(int i) { printf ("%d\n", i); }; 521 void printTestBool(bool b) { printf("%d\n", (int)b); }; 522 void printTwoVals(bool b, int i) { printf ("%d %d\n", b, i); }; 523 }; 524 525 void TEST() 526 { 527 TestClass test; 528 SubString testStrings("1, 2, 3", ",", SubString::WhiteSpaces, false); 529 (Executor0Params<TestClass>(&TestClass::printTest))(&test, testStrings); 530 (Executor1Params<TestClass,int>(&TestClass::printTestInt))(&test, testStrings); 531 (Executor1Params<TestClass,bool>(&TestClass::printTestBool))(&test, testStrings); 532 (Executor2Params<TestClass,bool, int>(&TestClass::printTwoVals))(&test, testStrings); 533 534 } 535 536 //// HACK HACK 416 537 417 538 /********************************** … … 426 547 int main(int argc, char** argv) 427 548 { 549 TEST(); 428 550 CmdLinePrefsReader prefs; 429 551 … … 444 566 } 445 567 else if ( Preferences::getInstance()->getString("misc", "bt-to-file", "1") == "1" ) 446 { SignalHandler::getInstance()->doCatch( argv[0], GDB_RUN_WRITE_TO_FILE ); 568 { 569 SignalHandler::getInstance()->doCatch( argv[0], GDB_RUN_WRITE_TO_FILE ); 447 570 448 571 } … … 506 629 // checking for existence of the configuration-files, or if the lock file is still used 507 630 if (showGui || (!File("./orxonox.conf").isFile() && 508 !File(DEFAULT_CONFIG_FILE).isFile())631 !File(DEFAULT_CONFIG_FILE).isFile()) 509 632 #if DEBUG < 3 // developers do not need to see the GUI, when orxonox fails 510 633 || ResourceManager::isFile(DEFAULT_LOCK_FILE)
Note: See TracChangeset
for help on using the changeset viewer.