start.cpp 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. #include "SpielServer.h"
  2. #include <Zeit.h>
  3. #include <iostream>
  4. #include <fstream>
  5. #include <Globals.h>
  6. #include <sys/resource.h>
  7. int main()
  8. {
  9. struct rlimit core_limits;
  10. core_limits.rlim_cur = core_limits.rlim_max = RLIM_INFINITY;
  11. setrlimit(RLIMIT_CORE, &core_limits);
  12. //chdir( "/ksg/Server/spiel" );
  13. Framework::initFramework();
  14. Zeit *z = getZeit();
  15. Text *pfad = new Text( "../log/spiel/" );
  16. pfad->append( z->getZeit( "y-m-d h-i-s.log" ) );
  17. z->release();
  18. DateiPfadErstellen( pfad->getThis() );
  19. std::ofstream file;
  20. file.open( pfad->getText() );
  21. std::streambuf* sbuf = std::cout.rdbuf();
  22. std::cout.rdbuf( file.rdbuf() );
  23. pfad->release();
  24. std::cout << "SS: Startet...\n";
  25. std::cout << "SS: Lese init Datei ../data/ssInit.ini ...\n";
  26. InitDatei *dat = new InitDatei( "../data/ssInit.ini" );
  27. if( !dat->laden() )
  28. {
  29. std::cout << "SS: error: Datei konnte nicht gelesen werden. Das Programm wird geschlossen.\n";
  30. dat->release();
  31. exit( 1 );
  32. }
  33. const char *wichtig[] = { "ServerId", "DBBenutzer", "DBPasswort", "DBName", "DBIP", "DBPort", "Aktiv", "SpielePfad", "TempMapPfad" };
  34. for( const char *w : wichtig )
  35. {
  36. if( !dat->wertExistiert( w ) )
  37. {
  38. std::cout << "SS: error: Der Wert '" << w << "' wurde nicht gefunden. Das Programm wird geschlossen.\n";
  39. dat->release();
  40. exit( 1 );
  41. }
  42. }
  43. SpielServer *sServer = new SpielServer( dat );
  44. std::cout << "SS: Der Admin Server läuft. Startforgang beendet.\n";
  45. sServer->runn();
  46. sServer->ende();
  47. sServer->release();
  48. DateiRemove( dat->zWert( "TempMapPfad" )->getText() );
  49. dat->release();
  50. std::cout << "SS: Der Server ist heruntergefahren.\n";
  51. file.close();
  52. std::cout.rdbuf( sbuf );
  53. Framework::releaseFramework();
  54. return 0;
  55. }