summaryrefslogtreecommitdiff
path: root/include/socketengine.h
diff options
context:
space:
mode:
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2006-10-30 20:51:52 +0000
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2006-10-30 20:51:52 +0000
commit4171efac1782a31ba41425e630956db185fc4783 (patch)
treeb60f548f267439bb7078e6c1808950e998ec5d60 /include/socketengine.h
parent1aaee19ee96eef97eb75bfaaf4cf38db74d0dc6c (diff)
Document SocketEngine::WantWrite()
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5591 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'include/socketengine.h')
-rw-r--r--include/socketengine.h26
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