]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/socketengine.h
Document SendMode.
[user/henk/code/inspircd.git] / include / socketengine.h
index f16ec3fea045272c8ef99e64c6b261f77f0ba867..c04ae6c70d9383d37822a0a62eef6433b98b69e7 100644 (file)
@@ -38,6 +38,7 @@ enum EventType
 };
 
 class InspIRCd;
+class Module;
 
 /** This class is a basic I/O handler class.
  * Any object which wishes to receive basic I/O events
@@ -68,8 +69,28 @@ class CoreExport EventHandler : public Extensible
         * other forms of IPC.
         */
        int fd;
+
+       /** Pointer to the module which has hooked the given EventHandler for IO events.
+        */
+       Module *IOHook;
  public:
 
+       /** Return the current hooker of IO events for this socket, or NULL.
+        * @return Hooker module, if set, or NULL.
+        */
+       Module *GetIOHook();
+
+       /** Set a module as hooking IO events on this socket.
+        * @param IOHooker The module hooking IO
+        * @return True if the hook could be added, false otherwise.
+        */
+       bool AddIOHook(Module *IOHooker);
+
+       /** Remove IO hooking from a module
+        * @return True if hooking was successfully removed, false otherwise.
+        */
+       bool DelIOHook();
+
        /** Get the current file descriptor
         * @return The file descriptor of this handler
         */
@@ -85,7 +106,7 @@ class CoreExport EventHandler : public Extensible
 
        /** Constructor
         */
-       EventHandler() {}
+       EventHandler();
 
        /** Destructor
         */