From 6550242735047783301150f3551174797dddc7f5 Mon Sep 17 00:00:00 2001 From: brain Date: Fri, 25 Nov 2005 09:32:17 +0000 Subject: Started removal of server linking code from core and implementation of socket API git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@1930 e03df62e-2008-0410-955e-edbf42e46eb7 --- include/socket.h | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'include') diff --git a/include/socket.h b/include/socket.h index 499a4d375..fd5e26586 100644 --- a/include/socket.h +++ b/include/socket.h @@ -21,6 +21,7 @@ #include enum InspSocketState { I_DISCONNECTED, I_CONNECTING, I_CONNECTED, I_LISTENING, I_ERROR }; +enum InspSocketError { I_ERR_TIMEOUT, I_ERR_SOCKET, I_ERR_CONNECT }; class InspSocket { @@ -33,15 +34,22 @@ private: in_addr addy; time_t timeout_end; bool timeout; + pollfd polls; + char ibuf[1024]; public: InspSocket(); InspSocket(std::string host, int port, bool listening, unsigned long maxtime); - virtual int OnConnected(); - virtual int OnError(); + virtual bool OnConnected(); + virtual void OnError(InspSocketError e); virtual int OnDisconnect(); - virtual int OnDataReady(); + virtual bool OnDataReady(); + virtual void OnTimeout(); + virtual void OnClose(); + virtual char* Read(); + virtual int Write(std::string data); virtual int OnIncomingConnection(); void SetState(InspSocketState s); - void EngineTrigger(); + bool Poll(); + virtual void Close(); virtual ~InspSocket(); }; -- cgit v1.2.3