50 lines
936 B
C++
50 lines
936 B
C++
|
|
#pragma once
|
|
|
|
#include "XSocket.h"
|
|
|
|
/// NULL Object
|
|
const int XOBJ_NULL = 0x00;
|
|
/// Acceptor
|
|
const int XOBJ_ACCEPTOR = 0x01;
|
|
/// Conenctor
|
|
const int XOBJ_CONNECTOR = 0x02;
|
|
/// Connection
|
|
const int XOBJ_CONNECTION = 0x03;
|
|
/// Datagram
|
|
const int XOBJ_DATAGRAM = 0x04;
|
|
|
|
struct IBaseObject
|
|
{
|
|
IBaseObject( int id = XOBJ_NULL ) { m_nID = id; m_pTag = 0; }
|
|
|
|
void * GetTag() { return m_pTag;}
|
|
void SetTag( void * tag ) { m_pTag = tag; }
|
|
|
|
|
|
void SetID( int id ) { m_nID = id; }
|
|
int GetID() { return m_nID; }
|
|
|
|
protected:
|
|
|
|
int m_nID;
|
|
void * m_pTag;
|
|
};
|
|
|
|
struct ISocketObject
|
|
{
|
|
virtual ~ISocketObject()
|
|
{
|
|
m_socket.Destroy();
|
|
}
|
|
|
|
const XSocket & GetXSocket() { return m_socket; }
|
|
const TSOCKET GetSocketHandle() { return m_socket.GetSocketHandle(); }
|
|
bool CloseSocket() { return m_socket.Destroy(); }
|
|
bool IsValidSocket() { return m_socket.IsValidSocket(); }
|
|
|
|
protected:
|
|
|
|
XSocket m_socket;
|
|
};
|