]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/socketengine.h
Add a pair of colons which should fix some KILL messages being dropped and fix some...
[user/henk/code/inspircd.git] / include / socketengine.h
index 729f5e0909a8fb66275857bb28cd5bd1c8f8fb57..e502a8c04cddb52544952f5300c2d2545ff8a07d 100644 (file)
  */
 enum EventType
 {
+       /** Read event */
        EVENT_READ      =       0,
+       /** Write event */
        EVENT_WRITE     =       1,
+       /** Error event */
        EVENT_ERROR     =       2
 };
 
@@ -54,7 +57,7 @@ class InspIRCd;
  * must have a file descriptor. What this file descriptor
  * is actually attached to is completely up to you.
  */
-class EventHandler : public Extensible
+class CoreExport EventHandler : public Extensible
 {
  protected:
        /** File descriptor.
@@ -111,7 +114,7 @@ class EventHandler : public Extensible
         * If this function is unimplemented, the base class
         * will return false.
         *
-         * NOTE: You cannot set both Readable() and
+        * NOTE: You cannot set both Readable() and
         * Writeable() to true. If you wish to receive
         * a write event for your object, you must call
         * SocketEngine::WantWrite() instead. This will
@@ -149,7 +152,7 @@ class EventHandler : public Extensible
  * have to be aware of which SocketEngine derived
  * class they are using.
  */
-class SocketEngine : public Extensible
+class CoreExport SocketEngine : public Extensible
 {
 protected:
        /** Owner/Creator
@@ -242,14 +245,14 @@ public:
         * @param fd The event handler to look for
         * @return True if this fd has an event handler
         */
-       bool HasFd(int fd);
+       virtual bool HasFd(int fd);
 
        /** Returns the EventHandler attached to a specific fd.
         * If the fd isnt in the socketengine, returns NULL.
         * @param fd The event handler to look for
         * @return A pointer to the event handler, or NULL
         */
-       EventHandler* GetRef(int fd);
+       virtual EventHandler* GetRef(int fd);
 
        /** Waits for events and dispatches them to handlers.
         * Please note that this doesnt wait long, only
@@ -268,6 +271,13 @@ public:
         * @return The socket engine name
         */
        virtual std::string GetName();
+
+       /** Returns true if the file descriptors in the
+        * given event handler are within sensible ranges
+        * which can be handled by the socket engine.
+        */
+       virtual bool BoundsCheckFd(EventHandler* eh);
 };
 
 #endif
+