OpenCBDC Transaction Processor
Loading...
Searching...
No Matches
cbdc::rpc::epoll_event_handler Class Reference

Event handler implementation using Linux epoll. More...

#include <epoll_event_handler.hpp>

Inheritance diagram for cbdc::rpc::epoll_event_handler:
Collaboration diagram for cbdc::rpc::epoll_event_handler:

Public Member Functions

 epoll_event_handler ()=default
 
 ~epoll_event_handler () override
 
 epoll_event_handler (const epoll_event_handler &)=default
 
auto operator= (const epoll_event_handler &) -> epoll_event_handler &=default
 
 epoll_event_handler (epoll_event_handler &&)=default
 
auto operator= (epoll_event_handler &&) -> epoll_event_handler &=default
 
auto init () -> bool override
 Initializes the event handler.
 
void set_timeout (long timeout_ms) override
 Sets the timeout for poll to return even if there are no events.
 
void register_fd (int fd, event_type et) override
 Registers a file descriptor to track for events.
 
auto poll () -> std::optional< std::vector< event > > override
 Wait for events on tracked file descriptors.
 
- Public Member Functions inherited from cbdc::rpc::event_handler
virtual ~event_handler ()=default
 

Additional Inherited Members

- Public Types inherited from cbdc::rpc::event_handler
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.
 

Detailed Description

Event handler implementation using Linux epoll.

Definition at line 15 of file epoll_event_handler.hpp.

Constructor & Destructor Documentation

◆ epoll_event_handler() [1/3]

cbdc::rpc::epoll_event_handler::epoll_event_handler ( )
default

◆ ~epoll_event_handler()

cbdc::rpc::epoll_event_handler::~epoll_event_handler ( )
override

Definition at line 16 of file epoll_event_handler.cpp.

◆ epoll_event_handler() [2/3]

cbdc::rpc::epoll_event_handler::epoll_event_handler ( const epoll_event_handler & )
default

◆ epoll_event_handler() [3/3]

cbdc::rpc::epoll_event_handler::epoll_event_handler ( epoll_event_handler && )
default

Member Function Documentation

◆ init()

auto cbdc::rpc::epoll_event_handler::init ( ) -> bool
overridevirtual

Initializes the event handler.

Returns
true if initialization succeeded.

Implements cbdc::rpc::event_handler.

Definition at line 20 of file epoll_event_handler.cpp.

◆ operator=() [1/2]

auto cbdc::rpc::epoll_event_handler::operator= ( const epoll_event_handler & ) -> epoll_event_handler &=default
default

◆ operator=() [2/2]

auto cbdc::rpc::epoll_event_handler::operator= ( epoll_event_handler && ) -> epoll_event_handler &=default
default

◆ poll()

auto cbdc::rpc::epoll_event_handler::poll ( ) -> std::optional<std::vector<event>>
overridevirtual

Wait for events on tracked file descriptors.

Blocks until at least one event is available, or the timeout expires.

Returns
list of events, or std::nullopt if there was an error during polling.

Implements cbdc::rpc::event_handler.

Definition at line 63 of file epoll_event_handler.cpp.

◆ register_fd()

void cbdc::rpc::epoll_event_handler::register_fd ( int fd,
event_type et )
overridevirtual

Registers a file descriptor to track for events.

Parameters
fdfile descriptor.
etevent type.

Implements cbdc::rpc::event_handler.

Definition at line 34 of file epoll_event_handler.cpp.

References cbdc::rpc::event_handler::in, cbdc::rpc::event_handler::inout, cbdc::rpc::event_handler::out, and cbdc::rpc::event_handler::remove.

◆ set_timeout()

void cbdc::rpc::epoll_event_handler::set_timeout ( long timeout_ms)
overridevirtual

Sets the timeout for poll to return even if there are no events.

Parameters
timeout_mstimeout in milliseconds. 0 to disable timeout.

Implements cbdc::rpc::event_handler.

Definition at line 24 of file epoll_event_handler.cpp.


The documentation for this class was generated from the following files: