2001-10-06 18:13:28 +04:00
|
|
|
#ifndef XSOCKET_H
|
|
|
|
#define XSOCKET_H
|
|
|
|
|
|
|
|
#include "CString.h"
|
|
|
|
#include "XBase.h"
|
|
|
|
#include "BasicTypes.h"
|
|
|
|
|
|
|
|
class XSocket : public XBase { };
|
|
|
|
|
|
|
|
class XSocketAddress : public XSocket {
|
2002-04-29 18:40:01 +04:00
|
|
|
public:
|
2001-10-06 18:13:28 +04:00
|
|
|
enum Error { kUnknown, kNotFound, kNoAddress, kBadPort };
|
|
|
|
|
|
|
|
XSocketAddress(Error, const CString& hostname, SInt16 port) throw();
|
|
|
|
|
|
|
|
// accessors
|
|
|
|
|
|
|
|
virtual Error getError() const throw();
|
|
|
|
virtual CString getHostname() const throw();
|
|
|
|
virtual SInt16 getPort() const throw();
|
|
|
|
|
2002-04-29 18:40:01 +04:00
|
|
|
protected:
|
2001-10-06 18:13:28 +04:00
|
|
|
// XBase overrides
|
|
|
|
virtual CString getWhat() const throw();
|
|
|
|
|
2002-04-29 18:40:01 +04:00
|
|
|
private:
|
2001-10-06 18:13:28 +04:00
|
|
|
Error m_error;
|
|
|
|
CString m_hostname;
|
|
|
|
SInt16 m_port;
|
|
|
|
};
|
|
|
|
|
|
|
|
class XSocketErrno : public XSocket, public MXErrno {
|
2002-04-29 18:40:01 +04:00
|
|
|
public:
|
2001-10-06 18:13:28 +04:00
|
|
|
XSocketErrno();
|
|
|
|
XSocketErrno(int);
|
|
|
|
};
|
|
|
|
|
|
|
|
class XSocketBind : public XSocketErrno {
|
2002-04-29 18:40:01 +04:00
|
|
|
protected:
|
2001-10-06 18:13:28 +04:00
|
|
|
// XBase overrides
|
|
|
|
virtual CString getWhat() const throw();
|
|
|
|
};
|
|
|
|
|
|
|
|
class XSocketAddressInUse : public XSocketBind { };
|
|
|
|
|
|
|
|
class XSocketConnect : public XSocketErrno {
|
2002-04-29 18:40:01 +04:00
|
|
|
protected:
|
2001-10-06 18:13:28 +04:00
|
|
|
// XBase overrides
|
|
|
|
virtual CString getWhat() const throw();
|
|
|
|
};
|
|
|
|
|
|
|
|
class XSocketCreate : public XSocketErrno {
|
2002-04-29 18:40:01 +04:00
|
|
|
protected:
|
2001-10-06 18:13:28 +04:00
|
|
|
// XBase overrides
|
|
|
|
virtual CString getWhat() const throw();
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|