diff options
Diffstat (limited to 'doc/modules/luaevent.core.mdwn')
-rw-r--r-- | doc/modules/luaevent.core.mdwn | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/doc/modules/luaevent.core.mdwn b/doc/modules/luaevent.core.mdwn new file mode 100644 index 0000000..6c7b112 --- /dev/null +++ b/doc/modules/luaevent.core.mdwn @@ -0,0 +1,67 @@ +---- +Constants: + +* `LEAVE` - When returned will cause event callback to be cancelled +* `EV_READ` + * Marks read readiness/event capture. + * Read readiness can also mean that an 'accept' operation will succeed, or + a disconnection on the other end is detected (read will return nothing). +* `EV_WRITE` + * Marks write readiness/event capture. + * Can also mark the successful completion of a non-blocking connect + if `SO_ERROR`@`SOL_SOCKET` is zero. +* `EV_SIGNAL` + * Marks signal received/event capture +* `EV_TIMEOUT` + * Timeout occurred while waiting for an event +* `EV_PERSIST` + * Marks an event as persistent and not one-shot +* `EV_*` + * Can be OR'd together to capture multiple events that make sense. + (Should not OR `EV_READ`/`EV_WRITE` with `EV_SIGNAL`) + * Can be received OR'd together. + For example: `EV_READ` | `EV_TIMEOUT` means that a timeout + occurred while waiting for a read event. +* `EVBUFFER_READ` + * Marks that the input buffer has data available > low watermark +* `EVBUFFER_WRITE` + * Marks that the output buffer level is below low watermark +* `EVBUFFER_EOF` + * Received tagged with either read/write based on location received in the error callback +* `EVBUFFER_ERROR` + * An error occurred (tagged w/ either read/write) and the error is in `errno` +* `EVBUFFER_TIMEOUT` + * A timeout occurred (tagged w/ either read/write) + +Functions: + +[[toc levels=1]] + +## luaevent.core.new +* Allocates a new event 'core' (`event base`) + +## event_callback fn +* Input: `(event)` +* Output: `(newEvent, [newTimeout])` + * `newEvent` - New event to register, typically `LEAVE`, `EV_READ`, `EV_WRITE`, or `EV_READ`|`EV_WRITE` + * `newTimeout` - New timeout value to use + +## core:addevent +* Adds a new event to the eventloop +* Input: `(fd, event, event_callback, [timeout])` + * `fd` - File descriptor to read from / or NIL for pure timeout event + * `event` - `EV_*` flagset to mark what events to capture + * `EV_SIGNAL` and `EV_PERSIST` is unavailable currently + * `EV_PERSIST` is used internally. + * `event_callback` - Callback to call... (see above) + * `timeout` - Time in seconds to timeout (decimal values supported) +* Output: `event_callback` object + * Has a `close` and `__gc` FN which will erase the callback, + so preserve this until done. + +## core:loop +* Begins the event loop and doesn't return until there are no events left + +## core:close (__gc) +* Closes the event base +* Do not allow this to be called while `core:loop` is running |