Danbias/Code/Network/NetworkDependencies/Connection.h

62 lines
1.2 KiB
C
Raw Normal View History

#ifndef NETWORK_DEPENDENCIES_CONNECTION_H
#define NETWORK_DEPENDENCIES_CONNECTION_H
2013-11-19 12:38:13 +01:00
//////////////////////////////////
// Created by Sam Svensson 2013 //
//////////////////////////////////
#include "IConnection.h"
#include "../NetworkDependencies/OysterByte.h"
2013-11-19 12:38:13 +01:00
namespace Oyster
2013-11-19 12:38:13 +01:00
{
namespace Network
{
class Connection : public IConnection
{
public:
Connection();
Connection( int socket );
virtual ~Connection();
2013-11-26 13:45:03 +01:00
virtual int InitiateServer( unsigned short port );
virtual int InitiateClient();
2013-12-13 23:47:16 +01:00
virtual int Send( OysterByte &bytes );
virtual int Recieve( OysterByte &bytes );
2013-11-26 13:45:03 +01:00
virtual int Disconnect();
virtual int Connect(ConnectionInfo info, bool blocking = false);
2014-01-28 09:00:02 +01:00
virtual int Connect(unsigned short port , const char serverName[], bool blocking = false);
virtual int Reconnect();
2013-11-29 09:18:58 +01:00
virtual ConnectionInfo Listen();
bool IsSending();
bool IsConnected();
//Setting the socket to blocking/non-blocking mode.
int SetBlockingMode( bool blocking );
std::string GetIpAddress();
int GetSocket();
private:
2013-11-27 11:28:11 +01:00
int InitiateSocket();
2013-11-25 14:03:32 +01:00
int socket;
bool stillSending;
bool closed;
std::string addr;
std::string lastConnectAddr;
unsigned short lastConnectPort;
bool blocking;
};
}
}
2013-11-19 12:38:13 +01:00
#endif