MegaGlest/source/glest_game/network/connection_slot.h
2010-05-13 07:13:53 +00:00

73 lines
2.0 KiB
C++

// ==============================================================
// This file is part of Glest (www.glest.org)
//
// Copyright (C) 2001-2008 Martio Figueroa
//
// You can redistribute this code and/or modify it under
// the terms of the GNU General Public License as published
// by the Free Software Foundation; either version 2 of the
// License, or (at your option) any later version
// ==============================================================
#ifndef _GLEST_GAME_CONNECTIONSLOT_H_
#define _GLEST_GAME_CONNECTIONSLOT_H_
#include <vector>
#include "socket.h"
#include "network_interface.h"
#include <time.h>
using Shared::Platform::ServerSocket;
using Shared::Platform::Socket;
using std::vector;
namespace Glest{ namespace Game{
class ServerInterface;
// =====================================================
// class ConnectionSlot
// =====================================================
class ConnectionSlot: public NetworkInterface{
private:
ServerInterface* serverInterface;
Socket* socket;
int playerIndex;
string name;
bool ready;
vector<std::pair<string,int32> > vctFileList;
bool receivedNetworkGameStatus;
time_t connectedTime;
bool gotIntro;
public:
ConnectionSlot(ServerInterface* serverInterface, int playerIndex);
~ConnectionSlot();
void update(bool checkForNewClients);
virtual void update();
void setPlayerIndex(int value) { playerIndex = value; }
int getPlayerIndex() {return playerIndex;}
void setReady() {ready= true;}
const string &getName() const {return name;}
bool isReady() const {return ready;}
virtual Socket* getSocket() {return socket;}
virtual Socket* getSocket() const {return socket;}
virtual void close();
//virtual bool getFogOfWar();
bool getReceivedNetworkGameStatus() { return receivedNetworkGameStatus; }
void setReceivedNetworkGameStatus(bool value) { receivedNetworkGameStatus = value; }
bool hasValidSocketId();
virtual bool getConnectHasHandshaked() const { return gotIntro; }
};
}}//end namespace
#endif