]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/inspsocket.h
Don't try to tidy m_autoop entries (fixes extra !*@*)
[user/henk/code/inspircd.git] / include / inspsocket.h
index 73aa748a0326384f50627166614d2e9c61eb4407..f9d582637da26089f6febed12b71f032fa5700e8 100644 (file)
@@ -2,7 +2,7 @@
  *       | Inspire Internet Relay Chat Daemon |
  *       +------------------------------------+
  *
- *  InspIRCd: (C) 2002-2009 InspIRCd Development Team
+ *  InspIRCd: (C) 2002-2010 InspIRCd Development Team
  * See: http://wiki.inspircd.org/Credits
  *
  * This program is free but copyrighted software; see
@@ -94,7 +94,7 @@ class CoreExport SocketTimeout : public Timer
 class CoreExport StreamSocket : public EventHandler
 {
        /** Module that handles raw I/O for this socket, or NULL */
-       Module *IOHook;
+       reference<Module> IOHook;
        /** Private send queue. Note that individual strings may be shared
         */
        std::deque<std::string> sendq;
@@ -105,10 +105,10 @@ class CoreExport StreamSocket : public EventHandler
  protected:
        std::string recvq;
  public:
-       StreamSocket() : IOHook(NULL), sendq_len(0) {}
-       inline Module* GetIOHook() { return IOHook; }
-       inline void AddIOHook(Module* m) { IOHook = m; }
-       inline void DelIOHook() { IOHook = NULL; }
+       StreamSocket() : sendq_len(0) {}
+       inline Module* GetIOHook();
+       inline void AddIOHook(Module* m);
+       inline void DelIOHook();
        /** Handle event from socket engine.
         * This will call OnDataReady if there is *new* data in recvq
         */
@@ -146,7 +146,7 @@ class CoreExport StreamSocket : public EventHandler
         */
        virtual void Close();
        /** This ensures that close is called prior to destructor */
-       virtual void cull();
+       virtual CullResult cull();
 };
 /**
  * BufferedSocket is an extendable socket class which modules
@@ -219,4 +219,9 @@ class CoreExport BufferedSocket : public StreamSocket
        BufferedSocketError BeginConnect(const std::string &ipaddr, int aport, unsigned long maxtime, const std::string &connectbindip);
 };
 
+#include "modules.h"
+
+inline Module* StreamSocket::GetIOHook() { return IOHook; }
+inline void StreamSocket::AddIOHook(Module* m) { IOHook = m; }
+inline void StreamSocket::DelIOHook() { IOHook = NULL; }
 #endif