WPILibC++ 2023.4.3-108-ge5452e3
wpi::uv::Poll Class Referencefinal

Poll handle. More...

#include <wpinet/uv/Poll.h>

Inheritance diagram for wpi::uv::Poll:
wpi::uv::HandleImpl< Poll, uv_poll_t > wpi::uv::Handle

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< Pollshared_from_this ()
 
std::shared_ptr< const Pollshared_from_this () const
 
uv_poll_tGetRaw () const noexcept
 Get the underlying handle data structure. More...
 
- Public Member Functions inherited from wpi::uv::Handle
 Handle (const Handle &)=delete
 
 Handle (Handle &&)=delete
 
Handleoperator= (const Handle &)=delete
 
Handleoperator= (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< LoopGetLoop () const noexcept
 Get the loop where this handle runs. More...
 
LoopGetLoopRef () 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_tGetRawHandle () 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< PollCreate (Loop &loop, int fd)
 Create a poll handle using a file descriptor. More...
 
static std::shared_ptr< PollCreate (const std::shared_ptr< Loop > &loop, int fd)
 Create a poll handle using a file descriptor. More...
 
static std::shared_ptr< PollCreateSocket (Loop &loop, uv_os_sock_t sock)
 Create a poll handle using a socket descriptor. More...
 
static std::shared_ptr< PollCreateSocket (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< Errorerror
 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)
 

Detailed Description

Poll handle.

Constructor & Destructor Documentation

◆ Poll()

wpi::uv::Poll::Poll ( const private_init &  )
inlineexplicit

◆ ~Poll()

wpi::uv::Poll::~Poll ( )
overridedefaultnoexcept

Member Function Documentation

◆ Create() [1/2]

static std::shared_ptr< Poll > wpi::uv::Poll::Create ( const std::shared_ptr< Loop > &  loop,
int  fd 
)
inlinestatic

Create a poll handle using a file descriptor.

Parameters
loopLoop object where this handle runs.
fdFile descriptor.

◆ Create() [2/2]

static std::shared_ptr< Poll > wpi::uv::Poll::Create ( Loop loop,
int  fd 
)
static

Create a poll handle using a file descriptor.

Parameters
loopLoop object where this handle runs.
fdFile descriptor.

◆ CreateSocket() [1/2]

static std::shared_ptr< Poll > wpi::uv::Poll::CreateSocket ( const std::shared_ptr< Loop > &  loop,
uv_os_sock_t  sock 
)
inlinestatic

Create a poll handle using a socket descriptor.

Parameters
loopLoop object where this handle runs.
sockSocket descriptor.

◆ CreateSocket() [2/2]

static std::shared_ptr< Poll > wpi::uv::Poll::CreateSocket ( Loop loop,
uv_os_sock_t  sock 
)
static

Create a poll handle using a socket descriptor.

Parameters
loopLoop object where this handle runs.
sockSocket descriptor.

◆ Reuse()

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).

Parameters
fdFile descriptor
callbackCallback

◆ ReuseSocket()

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).

Parameters
sockSocket descriptor.
callbackCallback

◆ Start()

void wpi::uv::Poll::Start ( int  events)

Start polling the file descriptor.

Parameters
eventsBitmask of events (UV_READABLE, UV_WRITEABLE, UV_PRIORITIZED, and UV_DISCONNECT).

◆ Stop()

void wpi::uv::Poll::Stop ( )
inline

Stop polling the file descriptor.

Member Data Documentation

◆ pollEvent

sig::Signal<int> wpi::uv::Poll::pollEvent

Signal generated when a poll event occurs.


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