#include <userver/engine/io/fd_poller.hpp>
Low-level poller that can wait for read, write, and read/write operations on a file descriptor. It does not provide read/write operations.
Definition at line 28 of file fd_poller.hpp.
Public Types | |
enum class | Kind { kRead = 1 , kWrite = 2 , kReadWrite = 3 } |
Operation kind to wait for. More... | |
Public Member Functions | |
FdPoller (const FdPoller &)=delete | |
FdPoller (FdPoller &&)=delete | |
FdPoller & | operator= (const FdPoller &)=delete |
FdPoller & | operator= (FdPoller &&)=delete |
operator bool () const noexcept | |
The same as IsValid() . | |
bool | IsValid () const noexcept |
Whether the file descriptor is valid. | |
int | GetFd () const |
If IsValid(), get file descriptor. | |
void | Invalidate () |
void | Reset (int fd, Kind kind) |
std::optional< Kind > | Wait (Deadline) |
void | ResetReady () noexcept |
Reset "ready" flag for WaitAny(). | |
std::optional< FdPoller::Kind > | GetReady () noexcept |
|
strong |
Operation kind to wait for.
Enumerator | |
---|---|
kWrite | < wait for read availability |
kReadWrite | < wait for write availability |
Definition at line 31 of file fd_poller.hpp.
|
noexcept |
Get event kind that was triggered on this poller. Resets "ready" flag.
void engine::io::FdPoller::Invalidate | ( | ) |
When you're done with fd, call Invalidate(). It unregisters the fd, after that you have to call close(2) by yourself. After Invalidate() you may not call Wait().
void engine::io::FdPoller::Reset | ( | int | fd, |
Kind | kind ) |