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

Pipe handle. More...

#include "handle-stream.hpp"

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

Public Types

using uv_t = ::uv_pipe_t
 
- Public Types inherited from uv::stream
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

 pipe (const pipe &)=default
 
pipeoperator= (const pipe &)=default
 
 pipe (pipe &&) noexcept=default
 
pipeoperator= (pipe &&) noexcept=default
 
 pipe (uv::loop &_loop, const char *_name, bool _ipc)
 Create a pipe bound to a file path (Unix domain socket) or a name (Windows named pipe). More...
 
 pipe (uv::loop &_loop, ::uv_file _fd, bool _ipc, bool _set_blocking)
 Create a pipe object from an existing OS native pipe descriptor. More...
 
int ipc () const noexcept
 Non-zero if this pipe is used for passing handles.
 
std::string getsockname () const noexcept
 Get the name of the Unix domain socket or the Windows named pipe for this pipe object.
 
std::string getpeername () const noexcept
 Get the name of the Unix domain socket or the Windows named pipe which this pipe object is connected to.
 
void pending_instances (int _count) noexcept
 Set the number of pending pipe instances when this pipe server is waiting for connections. (Windows only.)
 
int pending_handle_count () const noexcept
 The number of pending handles being sent over the IPC pipe. More...
 
stream accept_pending_handle () const
 Used to receive handles over the IPC pipe. More...
 
unsigned int send_buffer_size () const noexcept
 Get the size of the send buffer that the operating system uses for the pipe. More...
 
void send_buffer_size (unsigned int _value) noexcept
 Set the size of the send buffer that the operating system uses for the pipe. More...
 
unsigned int recv_buffer_size () const noexcept
 Get the size of the receive buffer that the operating system uses for the pipe. More...
 
void recv_buffer_size (unsigned int _value) noexcept
 Set the size of the receive buffer that the operating system uses for the pipe. More...
 
 operator const uv_t * () const noexcept
 
 operator uv_t * () noexcept
 
- Public Member Functions inherited from uv::stream
 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

Pipe handle.

See also
libuv API documentation: uv_pipe_t — Pipe handle.

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

Constructor & Destructor Documentation

◆ pipe() [1/2]

uv::pipe::pipe ( uv::loop _loop,
const char *  _name,
bool  _ipc 
)
inline

Create a pipe bound to a file path (Unix domain socket) or a name (Windows named pipe).

See also
libuv API documentation: uv_pipe_init(), uv_pipe_bind().

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

◆ pipe() [2/2]

uv::pipe::pipe ( uv::loop _loop,
::uv_file  _fd,
bool  _ipc,
bool  _set_blocking 
)
inline

Create a pipe object from an existing OS native pipe descriptor.

See also
libuv API documentation: uv_pipe_open().

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

Member Function Documentation

◆ pending_handle_count()

int uv::pipe::pending_handle_count ( ) const
inlinenoexcept

The number of pending handles being sent over the IPC pipe.

Used in conjunction with accept_pending_handle().

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

◆ accept_pending_handle()

stream uv::pipe::accept_pending_handle ( ) const
inline

Used to receive handles over the IPC pipe.

See also
libuv API documentation: uv_pipe_pending_type().

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

◆ send_buffer_size() [1/2]

unsigned int uv::pipe::send_buffer_size ( ) const
inlinenoexcept

Get the size of the send buffer that the operating system uses for the pipe.

See also
libuv API documentation: uv_send_buffer_size().

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

◆ send_buffer_size() [2/2]

void uv::pipe::send_buffer_size ( unsigned int  _value)
inlinenoexcept

Set the size of the send buffer that the operating system uses for the pipe.

See also
libuv API documentation: uv_send_buffer_size().

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

◆ recv_buffer_size() [1/2]

unsigned int uv::pipe::recv_buffer_size ( ) const
inlinenoexcept

Get the size of the receive buffer that the operating system uses for the pipe.

See also
libuv API documentation: uv_recv_buffer_size().

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

◆ recv_buffer_size() [2/2]

void uv::pipe::recv_buffer_size ( unsigned int  _value)
inlinenoexcept

Set the size of the receive buffer that the operating system uses for the pipe.

See also
libuv API documentation: uv_recv_buffer_size().

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


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