WPILibC++
2019.1.1-beta-4-6-g6593f43
|
Network stream handle. More...
#include <NetworkStream.h>
Public Member Functions | |
std::shared_ptr< NetworkStream > | shared_from_this () |
std::shared_ptr< const NetworkStream > | shared_from_this () const |
void | Listen (int backlog=kDefaultBacklog) |
Start listening for incoming connections. More... | |
void | Listen (std::function< void()> callback, int backlog=kDefaultBacklog) |
Start listening for incoming connections. More... | |
std::shared_ptr< NetworkStream > | Accept () |
Accept incoming connection. More... | |
bool | Accept (const std::shared_ptr< NetworkStream > &client) |
Accept incoming connection. More... | |
![]() | |
std::shared_ptr< Stream > | shared_from_this () |
std::shared_ptr< const Stream > | shared_from_this () const |
void | Shutdown (const std::shared_ptr< ShutdownReq > &req) |
Shutdown the outgoing (write) side of a duplex stream. More... | |
void | Shutdown (std::function< void()> callback=nullptr) |
Shutdown the outgoing (write) side of a duplex stream. More... | |
void | StartRead () |
Start reading data from an incoming stream. More... | |
void | StopRead () |
Stop reading data from the stream. More... | |
void | Write (ArrayRef< Buffer > bufs, const std::shared_ptr< WriteReq > &req) |
Write data to the stream. More... | |
void | Write (ArrayRef< Buffer > bufs, std::function< void(MutableArrayRef< Buffer >, Error)> callback) |
Write data to the stream. More... | |
int | TryWrite (ArrayRef< Buffer > bufs) |
Queue a write request if it can be completed immediately. More... | |
bool | IsReadable () const noexcept |
Check if the stream is readable. More... | |
bool | IsWritable () const noexcept |
Checks if the stream is writable. More... | |
bool | SetBlocking (bool enable) noexcept |
Enable or disable blocking mode for a stream. More... | |
size_t | GetWriteQueueSize () const noexcept |
Gets the amount of queued bytes waiting to be sent. More... | |
uv_stream_t * | GetRawStream () const noexcept |
Get the underlying stream data structure. More... | |
![]() | |
Handle (const Handle &)=delete | |
Handle (Handle &&)=delete | |
Handle & | operator= (const Handle &)=delete |
Handle & | operator= (Handle &&)=delete |
Type | GetType () const noexcept |
Get the type of the handle. More... | |
StringRef | 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 | 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) |
Report an error. More... | |
Public Attributes | |
sig::Signal | connection |
Signal generated when an incoming connection is received. | |
![]() | |
sig::Signal< Buffer &, size_t > | data |
Signal generated when data was read on a stream. | |
sig::Signal | end |
Signal generated when no more read data is available. | |
![]() | |
sig::Signal< Error > | error |
Error signal. | |
sig::Signal | closed |
Closed signal. | |
Static Public Attributes | |
static constexpr int | kDefaultBacklog = 128 |
Protected Member Functions | |
NetworkStream (uv_stream_t *uv_stream) | |
virtual NetworkStream * | DoAccept ()=0 |
![]() | |
Stream (uv_stream_t *uv_stream) | |
![]() | |
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) |
Additional Inherited Members | |
![]() | |
using | Type = uv_handle_type |
![]() | |
static void | AllocBuf (uv_handle_t *handle, size_t size, uv_buf_t *buf) |
static void | DefaultFreeBuf (Buffer &buf) |
Network stream handle.
This is an abstract type; there are two network stream implementations (Tcp and Pipe).
|
inline |
Accept incoming connection.
This call is used in conjunction with Listen()
to accept incoming connections. Call this function after receiving a ListenEvent event to accept the connection. An error signal will be emitted in case of errors.
When the connection signal is emitted it is guaranteed that this function will complete successfully the first time. If you attempt to use it more than once, it may fail. It is suggested to only call this function once per connection signal.
|
inline |
Accept incoming connection.
This call is used in conjunction with Listen()
to accept incoming connections. Call this function after receiving a connection signal to accept the connection. An error signal will be emitted in case of errors.
When the connection signal is emitted it is guaranteed that this function will complete successfully the first time. If you attempt to use it more than once, it may fail. It is suggested to only call this function once per connection signal.
client | Client stream object. |
void wpi::uv::NetworkStream::Listen | ( | int | backlog = kDefaultBacklog | ) |
Start listening for incoming connections.
When a new incoming connection is received the connection signal is generated.
backlog | the number of connections the kernel might queue, same as listen(2). |
void wpi::uv::NetworkStream::Listen | ( | std::function< void()> | callback, |
int | backlog = kDefaultBacklog |
||
) |
Start listening for incoming connections.
This is a convenience wrapper around Listen(int)
that also connects a callback to the connection signal. When a new incoming connection is received the connection signal is generated (and the callback is called).
callback | the callback to call when a connection is received. Accept() should be called from this callback. |
backlog | the number of connections the kernel might queue, same as listen(2). |