Danbias/Code/Game/GameServer/GameClient.h

45 lines
1.3 KiB
C
Raw Normal View History

2014-01-28 09:00:02 +01:00
/////////////////////////////////////////////////////////////////////
// Created by [Dennis Andersen] [2013]
/////////////////////////////////////////////////////////////////////
#ifndef DANBIASSERVER_CLIENT_OBJECT_H
#define DANBIASSERVER_CLIENT_OBJECT_H
#include <NetworkClient.h>
#include <PostBox\PostBox.h>
#include <GameAPI.h>
2014-01-29 10:18:01 +01:00
#include <Utilities.h>
2014-01-28 09:00:02 +01:00
namespace DanBias
{
2014-01-29 10:18:01 +01:00
/**
* Container to keep logic player and network client together as a unit.
*/
2014-01-28 09:00:02 +01:00
class GameClient
{
public:
2014-01-29 10:18:01 +01:00
GameClient(Utility::DynamicMemory::SmartPointer<Oyster::Network::NetworkClient> client, GameLogic::IPlayerData* player);
2014-01-28 09:00:02 +01:00
virtual~GameClient();
GameLogic::IPlayerData* GetPlayer();
GameLogic::IPlayerData* ReleasePlayer();
2014-01-29 10:18:01 +01:00
Utility::DynamicMemory::SmartPointer<Oyster::Network::NetworkClient> GetClient();
Utility::DynamicMemory::SmartPointer<Oyster::Network::NetworkClient> ReleaseClient();
2014-01-28 09:00:02 +01:00
int GetID() const;
float GetSinceLastResponse() const;
bool IsReady() const;
bool Equals(const Oyster::Network::NetworkClient* c);
void SetReadyState(bool isReady);
void SetSinceLastResponse(float seconds);
2014-01-28 09:00:02 +01:00
private:
GameLogic::IPlayerData* player;
2014-01-29 10:18:01 +01:00
Utility::DynamicMemory::SmartPointer<Oyster::Network::NetworkClient> client;
2014-01-28 09:00:02 +01:00
int id;
bool isReady;
float secondsSinceLastResponse;
2014-01-28 09:00:02 +01:00
};
}//End namespace DanBias
#endif // !DANBIASSERVER_CLIENT_OBJECT_H