#ifndef DANBIASSERVER_CLIENT_OBJECT_H #define DANBIASSERVER_CLIENT_OBJECT_H #include "NetworkSession.h" #include "NetworkClient.h" #include #include namespace DanBias { class ClientObject :public Oyster::Network::ProtocolRecieverObject { public: ClientObject(Oyster::Network::NetworkClient* client); virtual~ClientObject(); void SetPostbox(Oyster::IPostBox* box); void SetProtocolCallback(Oyster::Network::ProtocolRecieverObject* object); GameLogic::Player* GetPlayer(); Oyster::Network::NetworkClient* GetClient(); public: void CreatePlayer(); void ErasePlayer(); private: /** This method is NOT threadsafe. */ virtual void ProtocolRecievedCallback(Oyster::Network::CustomNetProtocol& protocol) override; private: Utility::DynamicMemory::SmartPointer player; Utility::DynamicMemory::SmartPointer client; Oyster::IPostBox* box; }; }//End namespace DanBias #endif // !DANBIASSERVER_CLIENT_OBJECT_H