Functions:

toc levels=1

Read/Write/Error Callback:

  • Input: (bufferevent, what)
    • bufferevent - Reference to the bufferevent that raised the callback
    • what - What happened:
      • == EVBUFFER_READ - Buffer contains at least low-watermark length and no more than high-watermark length
      • == EVBUFFER_WRITE - Buffer ready to write to
      • (other) - Error condition
        • May be or-ed/added with EVBUFFER_READ/EVBUFFER_WRITE to specify where it happened
        • EVBUFFER_ERROR - Marks error condition (need to look at 'errno' for error.. not exposed yet)
        • EVBUFFER_TIMEOUT - Marks activity timeout
        • EVBUFFER_EOF - Marks disconnection/end-of-file condition

bufferevent.new

  • Input: (fd, read, write, error)
    • fd - File descriptor to watch
    • read - (may be nil) - callback to call when data in buffer is above the low watermark
    • write - (may be nil) - callback to call when the output buffer contains less data than the low watermark
    • error - callback to call when there is an erroneous condition

bufferevent (__gc)

  • Releases the bufferevent
    • Disconnects event buffers since they were owned by the bufferevent object in 'C' land
    • Disconnects all references so that any erroneous callbacks don't cause failures

bufferevent:get_read

  • Obtains the input buffer associated w/ the bufferevent

bufferevent:get_write

  • Obtains the output buffer associated w/ the bufferevent

bufferevent:set_read_watermarks

  • Input: (low, high)
    • low - Size of buffer at which an event would be fired
    • high - Maximum size of buffer to read to

bufferevent:set_write_watermarks

  • Input: (low, high)
    • low - When buffer is below this, the event will be fired
    • high - N/A to libevent, user app may use this

bufferevent:set_timeouts

  • Sets timeouts for the bufferevent's events
  • Input: (read, write)
    • read - Read readiness timeout
    • write - Write readiness timeout

bufferevent:enable/disable

  • Input: event flag
    • event flag - EV_READ, EV_WRITE, or EV_READ|EV_WRITE
  • Enables/Disables events from being triggered in the next round (some events may get triggered after disable is called)