]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/socketengine.h
XHTML 1.1 spec validation and charset
[user/henk/code/inspircd.git] / include / socketengine.h
index ecb8fa96e7e0287e91671dcf8ea006993cee99b7..bbd34a30288b2403ba5a5c7700c59fabd7296c80 100644 (file)
@@ -2,7 +2,7 @@
  *       | Inspire Internet Relay Chat Daemon |
  *       +------------------------------------+
  *
- *  Inspire is copyright (C) 2002-2005 ChatSpike-Dev.
+ *  InspIRCd is copyright (C) 2002-2006 ChatSpike-Dev.
  *                       E-mail:
  *                <brain@chatspike.net>
  *                <Craig@chatspike.net>
@@ -64,19 +64,21 @@ const char X_READBIT            = 0x80;
  * settings chosen by the server admin. The current
  * version supports select, epoll and kqueue.
  */
-class SocketEngine {
+class SocketEngine : public Extensible
+{
 
        int EngineHandle;                       /* Handle to the socket engine if needed */
+       int CurrentSetSize;                     /* Current number of descriptors in the engine */
 #ifdef USE_SELECT
        std::map<int,int> fds;                  /* List of file descriptors being monitored */
        fd_set wfdset, rfdset;                  /* Readable and writeable sets for select() */
 #endif
 #ifdef USE_KQUEUE
-       struct kevent ke_list[65535];           /* Up to 64k sockets for kqueue */
+       struct kevent ke_list[MAX_DESCRIPTORS]; /* Up to 64k sockets for kqueue */
        struct timespec ts;                     /* kqueue delay value */
 #endif
 #ifdef USE_EPOLL
-       struct epoll_event events[65535];       /* Up to 64k sockets for epoll */
+       struct epoll_event events[MAX_DESCRIPTORS];     /* Up to 64k sockets for epoll */
 #endif
 
 public:
@@ -130,13 +132,18 @@ public:
         */
        int GetRemainingFds();
 
-       /** Delete a file descriptor f rom the engine
+       /** Delete a file descriptor from the engine
         * This function call deletes a file descriptor
         * from the engine, returning true if it succeeded
         * and false if it failed.
         */
        bool DelFd(int fd);
 
+       /** Returns true if a socket exists in the socket
+        * engine's list.
+        */
+       bool HasFd(int fd);
+
        /** Waits for an event.
         * Please note that this doesnt wait long, only
         * a couple of milliseconds. It returns a list