...
#ifndef NETWORKSERVER_HH
#define NETWORKSERVER_HH
#include "Network.hh"
#include "GameState.hh"
#include "NetworkSession.hh"
#include "NetworkObject.hh"
#include <list>
#include <map>
#include <ClanLib/core.h>
// forward-declare
class NetworkServerPlayer;
class NetworkServer : public NetworkCore {
friend class NetworkServerPlayer;
protected:
NetworkSession netsession;
NetworkObject_ServerController netobjs;
std::list<NetworkServerPlayer *> players;
public:
NetworkServer (GameState &state, const NetworkAddress &listen_addr);
protected:
void handle_disconnect (NetworkServerPlayer *player);
private:
void on_node_connected (NetworkNode *node);
};
class NetworkServerPlayer : public RemotePlayer {
private:
NetworkServer &server;
NetworkObject_Server obj;
NetworkNode *node;
CL_SlotContainer slots;
public:
NetworkServerPlayer (NetworkServer &server, NetworkNode *node);
private:
void on_disconnected (void);
void on_move (NetworkNode *node, NetworkPacket &pkt);
void send_position_update (void);
};
#endif