WPILibC++ 2023.4.3
|
#include <wpinet/uv/Poll.h>
Public Member Functions | |
Poll (const private_init &) | |
~Poll () noexcept override=default | |
void | Reuse (int fd, std::function< void()> callback) |
Reuse this handle. More... | |
void | ReuseSocket (uv_os_sock_t sock, std::function< void()> callback) |
Reuse this handle. More... | |
void | Start (int events) |
Start polling the file descriptor. More... | |
void | Stop () |
Stop polling the file descriptor. More... | |
Public Member Functions inherited from wpi::uv::HandleImpl< Poll, uv_poll_t > | |
std::shared_ptr< Poll > | shared_from_this () |
std::shared_ptr< const Poll > | shared_from_this () const |
uv_poll_t * | GetRaw () const noexcept |
Get the underlying handle data structure. More... | |
Public Member Functions inherited from wpi::uv::Handle | |
Handle (const Handle &)=delete | |
Handle (Handle &&)=delete | |
Handle & | operator= (const Handle &)=delete |
Handle & | operator= (Handle &&)=delete |
virtual | ~Handle () noexcept |
Type | GetType () const noexcept |
Get the type of the handle. More... | |
std::string_view | GetTypeName () const noexcept |
Get the name of the type of the handle. More... | |
std::shared_ptr< Loop > | GetLoop () const noexcept |
Get the loop where this handle runs. More... | |
Loop & | GetLoopRef () const noexcept |
Get the loop where this handle runs. More... | |
bool | IsActive () const noexcept |
Check if the handle is active. More... | |
bool | IsClosing () const noexcept |
Check if a handle is closing or closed. More... | |
void | Close () noexcept |
Request handle to be closed. More... | |
void | SetLoopClosing (bool loopClosing) noexcept |
Set if the loop is closing. More... | |
bool | IsLoopClosing () const noexcept |
Get the loop closing status. More... | |
void | Reference () noexcept |
Reference the given handle. More... | |
void | Unreference () noexcept |
Unreference the given handle. More... | |
bool | HasReference () const noexcept |
Check if the given handle is referenced. More... | |
size_t | RawSize () const noexcept |
Return the size of the underlying handle type. More... | |
uv_handle_t * | GetRawHandle () const noexcept |
Get the underlying handle data structure. More... | |
void | SetBufferAllocator (std::function< Buffer(size_t)> alloc, std::function< void(Buffer &)> dealloc) |
Set the functions used for allocating and releasing buffers. More... | |
void | FreeBuf (Buffer &buf) const noexcept |
Free a buffer. More... | |
template<typename T = void> | |
std::shared_ptr< T > | GetData () const |
Gets user-defined data. More... | |
void | SetData (std::shared_ptr< void > data) |
Sets user-defined data. More... | |
void | ReportError (int err) const |
Report an error. More... | |
Static Public Member Functions | |
static std::shared_ptr< Poll > | Create (Loop &loop, int fd) |
Create a poll handle using a file descriptor. More... | |
static std::shared_ptr< Poll > | Create (const std::shared_ptr< Loop > &loop, int fd) |
Create a poll handle using a file descriptor. More... | |
static std::shared_ptr< Poll > | CreateSocket (Loop &loop, uv_os_sock_t sock) |
Create a poll handle using a socket descriptor. More... | |
static std::shared_ptr< Poll > | CreateSocket (const std::shared_ptr< Loop > &loop, uv_os_sock_t sock) |
Create a poll handle using a socket descriptor. More... | |
Public Attributes | |
sig::Signal< int > | pollEvent |
Signal generated when a poll event occurs. More... | |
Public Attributes inherited from wpi::uv::Handle | |
sig::Signal< Error > | error |
Error signal. More... | |
sig::Signal | closed |
Closed signal. More... | |
Additional Inherited Members | |
Public Types inherited from wpi::uv::Handle | |
using | Type = uv_handle_type |
Protected Member Functions inherited from wpi::uv::HandleImpl< Poll, uv_poll_t > | |
HandleImpl () | |
Protected Member Functions inherited from wpi::uv::Handle | |
Handle (uv_handle_t *uv_handle) | |
void | Keep () noexcept |
void | Release () noexcept |
void | ForceClosed () noexcept |
template<typename F , typename... Args> | |
bool | Invoke (F &&f, Args &&... args) const |
Static Protected Member Functions inherited from wpi::uv::Handle | |
static void | AllocBuf (uv_handle_t *handle, size_t size, uv_buf_t *buf) |
static void | DefaultFreeBuf (Buffer &buf) |
Poll handle.
|
inlineexplicit |
|
overridedefaultnoexcept |
|
inlinestatic |
Create a poll handle using a file descriptor.
loop | Loop object where this handle runs. |
fd | File descriptor. |
Create a poll handle using a file descriptor.
loop | Loop object where this handle runs. |
fd | File descriptor. |
|
inlinestatic |
Create a poll handle using a socket descriptor.
loop | Loop object where this handle runs. |
sock | Socket descriptor. |
|
static |
Create a poll handle using a socket descriptor.
loop | Loop object where this handle runs. |
sock | Socket descriptor. |
void wpi::uv::Poll::Reuse | ( | int | fd, |
std::function< void()> | callback | ||
) |
Reuse this handle.
This closes the handle, and after the close completes, reinitializes it (identically to Create) and calls the provided callback. Unlike Close(), it does NOT emit the closed signal, however, IsClosing() will return true until the callback is called. This does nothing if IsClosing() is true (e.g. if Close() was called).
fd | File descriptor |
callback | Callback |
void wpi::uv::Poll::ReuseSocket | ( | uv_os_sock_t | sock, |
std::function< void()> | callback | ||
) |
Reuse this handle.
This closes the handle, and after the close completes, reinitializes it (identically to CreateSocket) and calls the provided callback. Unlike Close(), it does NOT emit the closed signal, however, IsClosing() will return true until the callback is called. This does nothing if IsClosing() is true (e.g. if Close() was called).
sock | Socket descriptor. |
callback | Callback |
void wpi::uv::Poll::Start | ( | int | events | ) |
Start polling the file descriptor.
events | Bitmask of events (UV_READABLE, UV_WRITEABLE, UV_PRIORITIZED, and UV_DISCONNECT). |
|
inline |
Stop polling the file descriptor.
sig::Signal<int> wpi::uv::Poll::pollEvent |
Signal generated when a poll event occurs.