Flow-IPC 1.0.0
Flow-IPC project: Public API.
Classes | Typedefs | Functions
ipc::transport::sync_io Namespace Reference

sync_io-pattern counterparts to async-I/O-pattern object types in parent namespace ipc::transport. More...

Classes

class  Blob_receiver
 A documentation-only concept: what transport::Blob_receiver is to transport::Native_handle_receiver (namely a degenerate version thereof), this is to sync_io::Native_handle_receiver. More...
 
class  Blob_sender
 A documentation-only concept: what transport::Blob_sender is to transport::Native_handle_sender (namely a degenerate version thereof), this is to sync_io::Native_handle_sender. More...
 
class  Blob_stream_mq_receiver
 Implements sync_io::Blob_receiver concept by using an adopted Persistent_mq_handle MQ handle to an MQ (message queue) of that type, such as a POSIX or bipc MQ. More...
 
class  Blob_stream_mq_sender
 Implements sync_io::Blob_sender concept by using an adopted Persistent_mq_handle MQ handle to an MQ (message queue) of that type, such as a POSIX or bipc MQ. More...
 
class  Native_handle_receiver
 A documentation-only concept defining the behavior of an object that is the sync_io-pattern counterpart of the async-I/O-pattern-following concept of the same name in our parent namespace: transport::Native_handle_receiver. More...
 
class  Native_handle_sender
 A documentation-only concept defining the behavior of an object that is the sync_io-pattern counterpart of the async-I/O-pattern-following concept of the same name in our parent namespace: transport::Native_handle_sender. More...
 
class  Native_socket_stream
 Implements both sync_io::Native_handle_sender and sync_io::Native_handle_receiver concepts by using a stream-oriented Unix domain socket, allowing high-performance but non-zero-copy transmission of discrete messages, each containing a native handle, a binary blob, or both. More...
 
class  Native_socket_stream_acceptor
 sync_io-pattern counterpart to async-I/O-pattern transport::Native_socket_stream_acceptor. More...
 

Typedefs

using Posix_mq_sender = Blob_stream_mq_sender< Posix_mq_handle >
 Convenience alias: sync_io::Blob_sender via unidirectional POSIX MQ (message queue).
 
using Posix_mq_receiver = Blob_stream_mq_receiver< Posix_mq_handle >
 Convenience alias: sync_io::Blob_receiver via unidirectional POSIX MQ (message queue).
 
using Bipc_mq_sender = Blob_stream_mq_sender< Bipc_mq_handle >
 Convenience alias: sync_io::Blob_sender via unidirectional bipc MQ (message queue).
 
using Bipc_mq_receiver = Blob_stream_mq_receiver< Bipc_mq_handle >
 Convenience alias: sync_io::Blob_receiver via unidirectional bipc MQ (message queue).
 
using Posix_mqs_channel_of_blobs = transport::Mqs_channel< true, Posix_mq_handle >
 Convenience alias: Channel peer (sync_io::Blob_sender, sync_io::Blob_receiver) at one end of full-duplex (bidirectional) pipe composed of 2 opposite-facing unidirectional POSIX MQs (message queues).
 
using Bipc_mqs_channel_of_blobs = transport::Mqs_channel< true, Bipc_mq_handle >
 Convenience alias: Channel peer (sync_io::Blob_sender, sync_io::Blob_receiver) at one end of full-duplex (bidirectional) pipe composed of 2 opposite-facing unidirectional POSIX MQs (message queues).
 
using Posix_mqs_socket_stream_channel = Mqs_socket_stream_channel< true, Posix_mq_handle >
 Convenience alias: Channel peer (sync_io::Blob_sender, sync_io::Blob_receiver, sync_io::Native_handle_sender, sync_io::Native_handle_receiver) at one end of a full-duplex (bidirectional) pipe composed of 2 opposite-facing unidirectional POSIX MQs (message queues), transmitting blobs only; and a full-duplex pipe over a Unix domain stream connection, transmitting native-handle-and/or-meta-blob messages.
 
using Bipc_mqs_socket_stream_channel = Mqs_socket_stream_channel< true, Bipc_mq_handle >
 Convenience alias: Channel peer (sync_io::Blob_sender, sync_io::Blob_receiver, sync_io::Native_handle_sender, sync_io::Native_handle_receiver) at one end of a full-duplex (bidirectional) pipe composed of 2 opposite-facing unidirectional bipc MQs (message queues), transmitting blobs only; and a full-duplex pipe over a Unix domain stream connection, transmitting native-handle-and/or-meta-blob messages.
 

Functions

template<typename Persistent_mq_handle >
std::ostream & operator<< (std::ostream &os, const Blob_stream_mq_receiver< Persistent_mq_handle > &val)
 Prints string representation of the given Blob_stream_mq_receiver to the given ostream. More...
 
template<typename Persistent_mq_handle >
std::ostream & operator<< (std::ostream &os, const Blob_stream_mq_sender< Persistent_mq_handle > &val)
 Prints string representation of the given Blob_stream_mq_sender to the given ostream. More...
 
std::ostream & operator<< (std::ostream &os, const Native_socket_stream &val)
 Prints string representation of the given Native_socket_stream to the given ostream. More...
 
std::ostream & operator<< (std::ostream &os, const Native_socket_stream_acceptor &val)
 Prints string representation of the given Native_socket_stream_acceptor to the given ostream. More...
 

Detailed Description

sync_io-pattern counterparts to async-I/O-pattern object types in parent namespace ipc::transport.

For example transport::sync_io::Native_socket_stream <=> transport::Native_socket_stream.

See also
util::sync_io doc header – describes the general sync_io pattern we are following.

Function Documentation

◆ operator<<() [1/4]

template<typename Persistent_mq_handle >
std::ostream & operator<< ( std::ostream &  os,
const Blob_stream_mq_receiver< Persistent_mq_handle > &  val 
)

Prints string representation of the given Blob_stream_mq_receiver to the given ostream.

If object is default-cted (or moved-from), this will output something graceful indicating this.

Parameters
osStream to which to write.
valObject to serialize.
Returns
os.

◆ operator<<() [2/4]

template<typename Persistent_mq_handle >
std::ostream & operator<< ( std::ostream &  os,
const Blob_stream_mq_sender< Persistent_mq_handle > &  val 
)

Prints string representation of the given Blob_stream_mq_sender to the given ostream.

If object is default-cted (or moved-from), this will output something graceful indicating this.

Parameters
osStream to which to write.
valObject to serialize.
Returns
os.

◆ operator<<() [3/4]

std::ostream & operator<< ( std::ostream &  os,
const Native_socket_stream val 
)

Prints string representation of the given Native_socket_stream to the given ostream.

Friend of Native_socket_stream.

Parameters
osStream to which to write.
valObject to serialize.
Returns
os.

◆ operator<<() [4/4]

std::ostream & operator<< ( std::ostream &  os,
const Native_socket_stream_acceptor val 
)

Prints string representation of the given Native_socket_stream_acceptor to the given ostream.

Parameters
osStream to which to write.
valObject to serialize.
Returns
os.