///////////////////////////////////////////////////////////////////// // Created by [Dennis Andersen] [2013] ///////////////////////////////////////////////////////////////////// #ifndef DANBIASSERVER_NETWORK_SESSION_H #define DANBIASSERVER_NETWORK_SESSION_H #pragma warning(disable: 4150) #define NOMINMAX #include "Utilities.h" #include #include #include #include #include namespace DanBias { class ClientObject; class NetworkSession { public: struct NetEvent { ClientObject* reciever; Oyster::Network::CustomNetProtocol protocol; }; public: NetworkSession(); NetworkSession(const NetworkSession& orig); const NetworkSession& operator=(const NetworkSession& orig); virtual~NetworkSession(); virtual void AttachClient(Utility::DynamicMemory::SmartPointer client, Oyster::IPostBox *box = 0); virtual Utility::DynamicMemory::SmartPointer DetachClient(Oyster::Network::NetworkClient* client); virtual Utility::DynamicMemory::SmartPointer DetachClient(ClientObject* client); virtual Utility::DynamicMemory::SmartPointer DetachClient(short ID); virtual void Send(Oyster::Network::CustomNetProtocol& protocol); virtual void Send(Oyster::Network::CustomNetProtocol& protocol, int ID); //TODO: Do more lobby features virtual void SetPostbox(Oyster::IPostBox *box); virtual void CloseSession(NetworkSession* clientDestination); //> clients; }; }//End namespace DanBias #endif // !DANBIASSERVER_NETWORK_SESSION_H