uvcc
libuv C++ bindings
uv::stream Class Reference

Stream handle. More...

#include "handle-stream.hpp"

Inheritance diagram for uv::stream:
uv::io uv::handle uv::pipe uv::tcp uv::tty

Public Types

using uv_t = ::uv_stream_t
 
using on_connection_t = std::function< void(stream _server) >
 The function type of the callback called when a stream server has received an incoming connection. More...
 
- Public Types inherited from uv::io
using uv_t = void
 
using on_read_t = std::function< void(io _handle, ssize_t _nread, buffer _buffer, int64_t _offset, void *_info) >
 The function type of the callback called by read_start() when data was read from an I/O endpoint. More...
 
- Public Types inherited from uv::handle
using uv_t = ::uv_handle_t
 
using on_destroy_t = std::function< void(void *_data) >
 The function type of the callback called when the handle has been closed and about to be destroyed. More...
 

Public Member Functions

 stream (const stream &)=default
 
streamoperator= (const stream &)=default
 
 stream (stream &&) noexcept=default
 
streamoperator= (stream &&) noexcept=default
 
on_connection_ton_connection () const noexcept
 
int listen (int _backlog, const on_connection_t &_connection_cb) const
 Start listening for incoming connections. More...
 
stream accept () const
 Accept incoming connections. More...
 
std::size_t write_queue_size () const noexcept
 The amount of queued bytes waiting to be sent.
 
bool is_readable () const noexcept
 Check if the stream is readable.
 
bool is_writable () const noexcept
 Check if the stream is writable.
 
int set_blocking (bool _enable) noexcept
 Enable or disable blocking mode for the stream. More...
 
 operator const uv_t * () const noexcept
 
 operator uv_t * () noexcept
 
- Public Member Functions inherited from uv::io
 io (const io &)=default
 
iooperator= (const io &)=default
 
 io (io &&) noexcept=default
 
iooperator= (io &&) noexcept=default
 
std::size_t write_queue_size () const noexcept
 The amount of queued bytes waiting to be written/sent to the I/O endpoint. More...
 
on_buffer_alloc_ton_alloc () const noexcept
 Set the input buffer allocation callback.
 
on_read_ton_read () const noexcept
 Set the read callback function.
 
int read_start (std::size_t _size=0, int64_t _offset=-1) const
 Start reading incoming data from the I/O endpoint. More...
 
int read_start (const on_buffer_alloc_t &_alloc_cb, const on_read_t &_read_cb, std::size_t _size=0, int64_t _offset=-1) const
 Start reading incoming data from the I/O endpoint with provided input buffer allocation callback (_alloc_cb) and read callback function (_read_cb). More...
 
int read_stop () const
 Stop reading data from the I/O endpoint. More...
 
int read_pause (bool _trigger_condition) const
 Pause reading data from the I/O endpoint. More...
 
int read_resume (bool _trigger_condition)
 Resume reading data from the I/O endpoint after having been paused. More...
 
 operator const uv_t * () const noexcept
 
 operator uv_t * () noexcept
 
- Public Member Functions inherited from uv::handle
 handle (const handle &_that)
 
handleoperator= (const handle &_that)
 
 handle (handle &&_that) noexcept
 
handleoperator= (handle &&_that) noexcept
 
void swap (handle &_that) noexcept
 
std::uintptr_t id () const noexcept
 The unique ID of the instance managed by this handle variable or 0 if the handle is void.
 
long nrefs () const noexcept
 The current number of existing references to the same object as this handle variable refers to.
 
int uv_status () const noexcept
 The status value returned by the last executed libuv API function on this handle.
 
on_destroy_ton_destroy () const noexcept
 
::uv_handle_type type () const noexcept
 The tag indicating the libuv type of the handle.
 
const char * type_name () const noexcept
 A string containing the name of the handle type.
 
uv::loop loop () const noexcept
 The libuv loop where the handle is running on. More...
 
void *& data () const noexcept
 The pointer to the user-defined arbitrary data. libuv and uvcc does not use this field.
 
int is_active () const noexcept
 Check if the handle is active. More...
 
int is_closing () const noexcept
 Check if the handle is closing or closed. More...
 
::uv_os_fd_t fileno () const noexcept
 Get the platform dependent handle/file descriptor. More...
 
 operator const uv_t * () const noexcept
 
 operator uv_t * () noexcept
 
 operator bool () const noexcept
 Equivalent to (id() and uv_status() >= 0).
 
void attached (bool _state) const noexcept
 
bool attached () const noexcept
 

Additional Inherited Members

- Static Public Member Functions inherited from uv::io
static io guess_handle (uv::loop &, ::uv_file)
 Create an io handle object which actual type is derived from an existing file descriptor. More...
 

Detailed Description

Stream handle.

See also
libuv API documentation: uv_stream_t — Stream handle.

Definition at line 26 of file handle-stream.hpp.

Member Typedef Documentation

◆ on_connection_t

The function type of the callback called when a stream server has received an incoming connection.

The user can accept the connection by calling accept().

See also
libuv API documentation: uv_connection_cb.

Definition at line 42 of file handle-stream.hpp.

Member Function Documentation

◆ listen()

int uv::stream::listen ( int  _backlog,
const on_connection_t _connection_cb 
) const
inline

Start listening for incoming connections.

See also
libuv API documentation: uv_listen().

Definition at line 101 of file handle-stream.hpp.

◆ accept()

stream uv::stream::accept ( ) const
inline

Accept incoming connections.

The function returns stream instance that actually is an object of one of the stream subtype: tcp, pipe, or tty depending on the actual subtype of the stream object which this function is applied to.

See also
libuv API documentation: uv_accept().

Definition at line 509 of file handle-stream.hpp.

◆ set_blocking()

int uv::stream::set_blocking ( bool  _enable)
inlinenoexcept

Enable or disable blocking mode for the stream.

See also
libuv API documentation: uv_stream_set_blocking().

Definition at line 125 of file handle-stream.hpp.


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