#include <linux_epoll_io_service.h>
|
| ~linux_epoll_io_service () override |
|
bool | is_open () const noexcept |
|
stdx::expected< void, std::error_code > | open () noexcept override |
| open the io-service. More...
|
|
void | on_notify () |
|
void | notify () override |
| notify the poll_one() that something may have changed. More...
|
|
stdx::expected< void, std::error_code > | close () |
|
stdx::expected< void, std::error_code > | add_fd_interest (native_handle_type fd, impl::socket::wait_type wt) override |
|
stdx::expected< void, std::error_code > | add_fd_interest_permanent (native_handle_type fd, impl::socket::wait_type wt) |
|
stdx::expected< void, std::error_code > | remove_fd (native_handle_type fd) override |
|
stdx::expected< void, std::error_code > | remove_fd_interest (native_handle_type fd, uint32_t revents) |
|
std::optional< int32_t > | interest (native_handle_type fd) const |
| get current fd-interest. More...
|
|
stdx::expected< fd_event, std::error_code > | pop_event () |
|
stdx::expected< fd_event, std::error_code > | update_fd_events (std::chrono::milliseconds timeout) |
|
stdx::expected< fd_event, std::error_code > | poll_one (std::chrono::milliseconds timeout) override |
| poll one event from the registered fd-interest. More...
|
|
virtual | ~IoServiceBase ()=default |
|
◆ native_handle_type
◆ ~linux_epoll_io_service()
net::linux_epoll_io_service::~linux_epoll_io_service |
( |
| ) |
|
|
inlineoverride |
◆ add_fd_interest()
◆ add_fd_interest_permanent()
◆ after_event_fired()
◆ close()
stdx::expected< void, std::error_code > net::linux_epoll_io_service::close |
( |
| ) |
|
|
inline |
◆ interest()
std::optional< int32_t > net::linux_epoll_io_service::interest |
( |
native_handle_type |
fd | ) |
const |
|
inline |
get current fd-interest.
- Returns
- fd-interest as bitmask of raw EPOLL* flags
◆ is_open()
bool net::linux_epoll_io_service::is_open |
( |
| ) |
const |
|
inlinenoexcept |
◆ notify()
void net::linux_epoll_io_service::notify |
( |
| ) |
|
|
inlineoverridevirtual |
notify the poll_one() that something may have changed.
can be called from another thread then poll_one().
Implements net::IoServiceBase.
◆ on_notify()
void net::linux_epoll_io_service::on_notify |
( |
| ) |
|
|
inline |
◆ open()
stdx::expected< void, std::error_code > net::linux_epoll_io_service::open |
( |
| ) |
|
|
inlineoverridevirtualnoexcept |
open the io-service.
MUST be called before any of the other functions is called.
may fail if out of file-descriptors.
- Returns
- an std::error_code on error
Implements net::IoServiceBase.
◆ poll_one()
stdx::expected< fd_event, std::error_code > net::linux_epoll_io_service::poll_one |
( |
std::chrono::milliseconds |
timeout | ) |
|
|
inlineoverridevirtual |
poll one event from the registered fd-interest.
removes the interest of the event that fired
- Parameters
-
timeout | wait at most timeout milliseconds |
- Returns
- fd_event which fired
- Return values
-
std::errc::timed_out | in case of timeout |
Implements net::IoServiceBase.
◆ pop_event()
◆ remove_fd()
◆ remove_fd_interest()
◆ update_fd_events()
stdx::expected< fd_event, std::error_code > net::linux_epoll_io_service::update_fd_events |
( |
std::chrono::milliseconds |
timeout | ) |
|
|
inline |
◆ epfd_
◆ fd_events_
std::array<epoll_event, 8192> net::linux_epoll_io_service::fd_events_ {} |
|
private |
◆ fd_events_mtx_
std::mutex net::linux_epoll_io_service::fd_events_mtx_ |
|
private |
◆ fd_events_processed_
size_t net::linux_epoll_io_service::fd_events_processed_ {0} |
|
private |
◆ fd_events_size_
size_t net::linux_epoll_io_service::fd_events_size_ {0} |
|
private |
◆ kAllEvents
constexpr const int net::linux_epoll_io_service::kAllEvents |
|
staticconstexpr |
Initial value:=
static constexpr const int kAlwaysEnabledEvents
Definition: linux_epoll_io_service.h:63
static constexpr const int kSettableEvents
Definition: linux_epoll_io_service.h:62
◆ kAlwaysEnabledEvents
constexpr const int net::linux_epoll_io_service::kAlwaysEnabledEvents = EPOLLHUP | EPOLLERR |
|
staticconstexpr |
◆ kSettableEvents
constexpr const int net::linux_epoll_io_service::kSettableEvents = EPOLLIN | EPOLLOUT |
|
staticconstexpr |
◆ notify_fd_
◆ registered_events_
FdInterest net::linux_epoll_io_service::registered_events_ |
|
private |
◆ wakeup_fds_
The documentation for this class was generated from the following file: