diff options
Diffstat (limited to 'include/socketengine.h')
-rw-r--r-- | include/socketengine.h | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/include/socketengine.h b/include/socketengine.h index 9aa651499..a4628b648 100644 --- a/include/socketengine.h +++ b/include/socketengine.h @@ -93,6 +93,12 @@ class EventHandler : public Extensible * is still added to a SocketEngine instance! * If this function is unimplemented, the base class * will return true. + * + * 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 + * trigger your objects next EVENT_WRITE type event. */ virtual bool Readable(); @@ -103,6 +109,12 @@ class EventHandler : public Extensible * is still added to a SocketEngine instance! * If this function is unimplemented, the base class * will return false. + * + * 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 + * trigger your objects next EVENT_WRITE type event. */ virtual bool Writeable(); @@ -110,7 +122,8 @@ class EventHandler : public Extensible * You MUST implement this function in your derived * class, and it will be called whenever read or write * events are received, depending on what your functions - * Readable() and Writeable() returns. + * Readable() and Writeable() returns and wether you + * previously made a call to SocketEngine::WantWrite(). * @param et either one of EVENT_READ for read events, * and EVENT_WRITE for write events. */ @@ -179,6 +192,17 @@ public: */ virtual bool AddFd(EventHandler* eh); + /** If you call this function and pass it an + * event handler, that event handler will + * receive the next available write event, + * even if the socket is a readable socket only. + * Developers should avoid constantly keeping + * an eventhandler in the writeable state, + * as this will consume large amounts of + * CPU time. + * @param eh An event handler which wants to + * receive the next writeability event. + */ virtual void WantWrite(EventHandler* eh); /** Returns the maximum number of file descriptors |