- virtual void OnRawSocketConnect(int fd);
-
- /** Called immediately before any read() operation on a client socket in the core.
- * This occurs AFTER the select() or poll() so there is always data waiting to be read
- * when this event occurs.
- * Your event should return 1 if it has handled the reading itself, which prevents the core
- * just using read(). You should place any data read into buffer, up to but NOT GREATER THAN
- * the value of count. The value of readresult must be identical to an actual result that might
- * be returned from the read() system call, for example, number of bytes read upon success,
- * 0 upon EOF or closed socket, and -1 for error. If your function returns a nonzero value,
- * you MUST set readresult.
- * @param fd The file descriptor of the socket
- * @param buffer A char* buffer being read to
- * @param count The size of the buffer
- * @param readresult The amount of characters read, or 0
- * @return nonzero if the event was handled, in which case readresult must be valid on exit
- */
- virtual int OnRawSocketRead(int fd, char* buffer, unsigned int count, int &readresult);
+ virtual void OnStreamSocketConnect(StreamSocket*);
+
+ /**
+ * Called when the stream socket has data to read
+ * @param socket The socket that is ready
+ * @param recvq The receive queue that new data should be appended to
+ * @return 1 if new data has been read, 0 if no new data is ready (but the
+ * socket is still connected), -1 if there was an error or close
+ */
+ virtual int OnStreamSocketRead(StreamSocket*, std::string& recvq);