Danbias/Code/Network/NetworkDependencies/Connection.h

60 lines
1.2 KiB
C++

#ifndef NETWORK_DEPENDENCIES_CONNECTION_H
#define NETWORK_DEPENDENCIES_CONNECTION_H
//////////////////////////////////
// Created by Sam Svensson 2013 //
//////////////////////////////////
#include "IConnection.h"
#include "../NetworkDependencies/OysterByte.h"
namespace Oyster
{
namespace Network
{
class Connection : public IConnection
{
public:
Connection();
Connection( int socket );
virtual ~Connection();
virtual int InitiateServer( unsigned short port );
virtual int InitiateClient();
virtual int Send( OysterByte &bytes );
virtual int Recieve( OysterByte &bytes );
virtual int Disconnect();
virtual int Connect(ConnectionInfo info, bool blocking = false);
virtual int Connect(unsigned short port , const char serverName[], bool blocking = false);
virtual int Reconnect();
virtual ConnectionInfo Listen();
bool IsSending();
bool IsConnected();
//Setting the socket to blocking/non-blocking mode.
int SetBlockingMode( bool blocking );
std::string GetIpAddress();
private:
int InitiateSocket();
int socket;
bool stillSending;
bool closed;
std::string addr;
std::string lastConnectAddr;
unsigned short lastConnectPort;
bool blocking;
};
}
}
#endif