OpenCBDC Transaction Processor
|
Event handler interface for tracking events on non-blocking file descriptors. More...
#include <event_handler.hpp>
Public Types | |
enum class | event_type { remove , in , out , inout } |
Type of event to register interest in. More... | |
using | event = std::pair<int, bool> |
Type alias for an event. | |
Public Member Functions | |
virtual | ~event_handler ()=default |
virtual auto | init () -> bool=0 |
Initializes the event handler. | |
virtual void | set_timeout (long timeout_ms)=0 |
Sets the timeout for poll to return even if there are no events. | |
virtual void | register_fd (int fd, event_type et)=0 |
Registers a file descriptor to track for events. | |
virtual auto | poll () -> std::optional< std::vector< event > >=0 |
Wait for events on tracked file descriptors. | |
Event handler interface for tracking events on non-blocking file descriptors.
Definition at line 16 of file event_handler.hpp.
using cbdc::rpc::event_handler::event = std::pair<int, bool> |
Type alias for an event.
First value is the file descriptor, second is true if the event is a timeout.
Definition at line 34 of file event_handler.hpp.
|
strong |
Type of event to register interest in.
Enumerator | |
---|---|
remove | Remove file descriptor. |
in | Ready to read event. |
out | Ready to write event. |
inout | Read and write events. |
Definition at line 19 of file event_handler.hpp.
|
virtualdefault |
|
pure virtual |
Initializes the event handler.
Implemented in cbdc::rpc::epoll_event_handler, and cbdc::rpc::kqueue_event_handler.
|
pure virtual |
Wait for events on tracked file descriptors.
Blocks until at least one event is available, or the timeout expires.
Implemented in cbdc::rpc::epoll_event_handler, and cbdc::rpc::kqueue_event_handler.
|
pure virtual |
Registers a file descriptor to track for events.
fd | file descriptor. |
et | event type. |
Implemented in cbdc::rpc::epoll_event_handler, and cbdc::rpc::kqueue_event_handler.
|
pure virtual |
Sets the timeout for poll to return even if there are no events.
timeout_ms | timeout in milliseconds. 0 to disable timeout. |
Implemented in cbdc::rpc::epoll_event_handler, and cbdc::rpc::kqueue_event_handler.