#include <sys/time.h>
#include "socketengine.h"
-class InspIRCd;
-
/** A specialisation of the SocketEngine class, designed to use FreeBSD kqueue().
*/
class KQueueEngine : public SocketEngine
{
private:
+ int EngineHandle;
/** These are used by kqueue() to hold socket events
*/
struct kevent* ke_list;
struct timespec ts;
public:
/** Create a new KQueueEngine
- * @param Instance The creator of this object
*/
- KQueueEngine(InspIRCd* Instance);
+ KQueueEngine();
/** Delete a KQueueEngine
*/
virtual ~KQueueEngine();
- virtual bool AddFd(EventHandler* eh);
- virtual int GetMaxFds();
- virtual int GetRemainingFds();
+ bool AddFd(EventHandler* eh, int event_mask);
+ void OnSetEvent(EventHandler* eh, int old_mask, int new_mask);
virtual bool DelFd(EventHandler* eh, bool force = false);
virtual int DispatchEvents();
virtual std::string GetName();
public:
/** Create a new instance of SocketEngine based on KQueueEngine
*/
- SocketEngine* Create(InspIRCd* Instance) { return new KQueueEngine(Instance); }
+ SocketEngine* Create() { return new KQueueEngine; }
};
#endif