#pragma once #include #include #include namespace td { namespace server { class Server { private: std::shared_ptr m_Socket; std::shared_ptr m_State; public: Server(const std::shared_ptr& a_Socket) : m_Socket(a_Socket) {} void Update(float a_Delta) { m_State->Update(a_Delta); } void UpdateState(const std::shared_ptr& a_State) { m_State = a_State; m_State->SetServer(this); } friend class IServerState; }; } // namespace server } // namespace td