///////////////////////////////////////////////////////////////////// // Created by [Dennis Andersen] [2013] ///////////////////////////////////////////////////////////////////// #ifndef DANBIASSERVER_MAINLOBBY_H #define DANBIASSERVER_MAINLOBBY_H #include "NetworkSession.h" #include "GameLobby.h" #include #include #include namespace DanBias { class MainLobby :public NetworkSession { public: MainLobby(); virtual~MainLobby(); void Release(); void Frame(); void SetPostbox(Oyster::IPostBox* box); Oyster::IPostBox* GetPostbox(); void SetRefreshFrequency(float delta); float GetRefreshFrequency() const; private: void ParseEvents(); void ParseGeneralProtocol(Oyster::Network::CustomNetProtocol& p, DanBias::LobbyClient* c); void ParseLobbyProtocol(Oyster::Network::CustomNetProtocol& p, DanBias::LobbyClient* c); void GeneralStatus(GameLogic::Protocol_General_Status& p, DanBias::LobbyClient* c); void CreateGame(GameLogic::Protocol_LobbyCreateGame& p, DanBias::LobbyClient* c); void JoinLobby(GameLogic::Protocol_LobbyJoin& p, DanBias::LobbyClient* c); private: Oyster::IPostBox *box; Utility::DynamicMemory::DynamicArray> gameLobby; Utility::WinTimer timer; float refreshFrequency; private: friend class AdminInterface; }; }//End namespace DanBias #endif // !DANBIASGAME_GAMELOBBY_H