///////////////////////////////////////////////////////////////////// // Created by [Dennis Andersen] [2013] ///////////////////////////////////////////////////////////////////// #ifndef DANBIASSERVER_CLIENT_OBJECT_H #define DANBIASSERVER_CLIENT_OBJECT_H #include #include #include #include namespace DanBias { /** * Container to keep logic player and network client together as a unit. */ class GameClient { public: GameClient(Utility::DynamicMemory::SmartPointer client, GameLogic::IPlayerData* player); virtual~GameClient(); GameLogic::IPlayerData* GetPlayer(); GameLogic::IPlayerData* ReleasePlayer(); Utility::DynamicMemory::SmartPointer GetClient(); Utility::DynamicMemory::SmartPointer ReleaseClient(); float GetSinceLastResponse() const; bool IsReady() const; bool Equals(const Oyster::Network::NetworkClient* c); void SetReadyState(bool isReady); void SetSinceLastResponse(float seconds); private: GameLogic::IPlayerData* player; Utility::DynamicMemory::SmartPointer client; bool isReady; float secondsSinceLastResponse; }; }//End namespace DanBias #endif // !DANBIASSERVER_CLIENT_OBJECT_H