[Orxonox-commit 3555] r8241 - code/branches/masterserver2/src/libraries/network

smerkli at orxonox.net smerkli at orxonox.net
Thu Apr 14 15:43:42 CEST 2011


Author: smerkli
Date: 2011-04-14 15:43:41 +0200 (Thu, 14 Apr 2011)
New Revision: 8241

Modified:
   code/branches/masterserver2/src/libraries/network/MasterServer.cc
   code/branches/masterserver2/src/libraries/network/MasterServer.h
Log:
Generic witty commit comment

Modified: code/branches/masterserver2/src/libraries/network/MasterServer.cc
===================================================================
--- code/branches/masterserver2/src/libraries/network/MasterServer.cc	2011-04-14 12:33:59 UTC (rev 8240)
+++ code/branches/masterserver2/src/libraries/network/MasterServer.cc	2011-04-14 13:43:41 UTC (rev 8241)
@@ -28,11 +28,40 @@
 
 #include "MasterServer.h"
 #include "util/ScopedSingletonManager.h"
+#include "core/command/ConsoleCommand.h"
 #include "core/CoreIncludes.h"
 #include "core/CorePrereqs.h"
 
 namespace orxonox 
 {
+  /* commands for the terminal interface */
+  SetConsoleCommand( "ms-listservers", &MasterServer::listServers );
+
+  MasterServer *MasterServer::instance = NULL;
+
+  /* command: list servers */
+  void 
+  MasterServer::listServers( void )
+  {
+    /* get an iterator */
+    std::list<ServerListElem>::iterator i;
+
+    /* print list header */
+    COUT(0) << "List of connected servers" << std::endl;
+
+    /* loop through list elements */
+    for( i = MasterServer::getInstance()->mainlist.serverlist.begin(); 
+      i != MasterServer::getInstance()->mainlist.serverlist.end(); ++i ) 
+    {
+      COUT(0) << "  " << (*i).ServerInfo.getServerIP() << std::endl;
+    }
+
+    /* display end of list */
+    COUT(0) << MasterServer::getInstance()->mainlist.serverlist.size() <<
+      " servers connected." << std::endl;
+  }
+
+
   /* helpers */
   static void 
   helper_output_debug( ENetEvent *event, char *addrconv )
@@ -331,6 +360,9 @@
     /***** INITIALIZE GAME SERVER AND PEER LISTS *****/
     this->peers = new PeerList();
 
+    /* set pointer to this instance */
+    MasterServer::setInstance( this );
+
     /* tell people we're now initialized */
     COUT(0) << "MasterServer initialized, waiting for connections.\n";
   }
@@ -342,7 +374,7 @@
     /* terminate all networking connections */
     enet_host_destroy( this->server );
 
-    /* free all used memory */
+    /* TODO free all used memory */
     /* clear the list of connected game servers */
     /* clear the list of connected game clients */
   }

Modified: code/branches/masterserver2/src/libraries/network/MasterServer.h
===================================================================
--- code/branches/masterserver2/src/libraries/network/MasterServer.h	2011-04-14 12:33:59 UTC (rev 8240)
+++ code/branches/masterserver2/src/libraries/network/MasterServer.h	2011-04-14 13:43:41 UTC (rev 8241)
@@ -60,6 +60,16 @@
       /* main routine */
       int run();
 
+      /* static pointer for commands */
+      static MasterServer *instance;
+      static MasterServer *getInstance() 
+        { return instance; }
+      static void setInstance( MasterServer *setto ) 
+        { instance = setto;  }
+      
+      /* functions for commands */
+      static void listServers( void );
+
     private:
       /* methods */
       int eventConnect( ENetEvent *event );




More information about the Orxonox-commit mailing list