Flow-IPC 1.0.0
Flow-IPC project: Full implementation reference.
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  Async_adapter_receiver
 Internal-use type that adapts a given PEER-state sync_io::Native_handle_receiver or sync_io::Blob_receiver core into the async-I/O-pattern Native_handle_receiver or Blob_receiver. More...
 
class  Async_adapter_sender
 Internal-use type that adapts a given PEER-state sync_io::Native_handle_sender or sync_io::Blob_sender core into the async-I/O-pattern Native_handle_sender or Blob_sender. More...
 
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_receiver_impl
 Internal, non-movable pImpl-lite implementation of sync_io::Blob_stream_mq_receiver class template. 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  Blob_stream_mq_sender_impl
 Internal, non-movable pImpl-lite implementation of sync_io::Blob_stream_mq_sender class template. 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). More...
 
using Posix_mq_receiver = Blob_stream_mq_receiver< Posix_mq_handle >
 Convenience alias: sync_io::Blob_receiver via unidirectional POSIX MQ (message queue). More...
 
using Bipc_mq_sender = Blob_stream_mq_sender< Bipc_mq_handle >
 Convenience alias: sync_io::Blob_sender via unidirectional bipc MQ (message queue). More...
 
using Bipc_mq_receiver = Blob_stream_mq_receiver< Bipc_mq_handle >
 Convenience alias: sync_io::Blob_receiver via unidirectional bipc MQ (message queue). More...
 
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). More...
 
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). More...
 
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. More...
 
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. More...
 

Functions

template<typename Persistent_mq_handle >
std::ostream & operator<< (std::ostream &os, const Blob_stream_mq_receiver_impl< Persistent_mq_handle > &val)
 Prints string representation of the given Blob_stream_mq_receiver_impl to the given ostream. More...
 
template<typename Persistent_mq_handle >
std::ostream & operator<< (std::ostream &os, const Blob_stream_mq_sender_impl< Persistent_mq_handle > &val)
 Prints string representation of the given Blob_stream_mq_sender to the given ostream. More...
 
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::Impl &val)
 Prints string representation of the given Native_socket_stream::Impl 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.

Typedef Documentation

◆ Bipc_mq_receiver

Convenience alias: sync_io::Blob_receiver via unidirectional bipc MQ (message queue).

Definition at line 319 of file transport_fwd.hpp.

◆ Bipc_mq_sender

Convenience alias: sync_io::Blob_sender via unidirectional bipc MQ (message queue).

Definition at line 317 of file transport_fwd.hpp.

◆ Bipc_mqs_channel_of_blobs

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

Definition at line 331 of file transport_fwd.hpp.

◆ Bipc_mqs_socket_stream_channel

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.

Definition at line 347 of file transport_fwd.hpp.

◆ Posix_mq_receiver

Convenience alias: sync_io::Blob_receiver via unidirectional POSIX MQ (message queue).

Definition at line 315 of file transport_fwd.hpp.

◆ Posix_mq_sender

Convenience alias: sync_io::Blob_sender via unidirectional POSIX MQ (message queue).

Definition at line 313 of file transport_fwd.hpp.

◆ Posix_mqs_channel_of_blobs

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

Definition at line 325 of file transport_fwd.hpp.

◆ Posix_mqs_socket_stream_channel

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.

Definition at line 339 of file transport_fwd.hpp.

Function Documentation

◆ operator<<() [1/7]

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.

Definition at line 385 of file blob_stream_mq_rcv.hpp.

◆ operator<<() [2/7]

template<typename Persistent_mq_handle >
std::ostream & ipc::transport::sync_io::operator<< ( std::ostream &  os,
const Blob_stream_mq_receiver_impl< Persistent_mq_handle > &  val 
)

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

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

Definition at line 1254 of file blob_stream_mq_rcv_impl.hpp.

◆ operator<<() [3/7]

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.

Definition at line 417 of file blob_stream_mq_snd.hpp.

◆ operator<<() [4/7]

template<typename Persistent_mq_handle >
std::ostream & ipc::transport::sync_io::operator<< ( std::ostream &  os,
const Blob_stream_mq_sender_impl< Persistent_mq_handle > &  val 
)

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

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

Definition at line 1702 of file blob_stream_mq_snd_impl.hpp.

◆ operator<<() [5/7]

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.

Definition at line 155 of file native_socket_stream.cpp.

◆ operator<<() [6/7]

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

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

Friend of Native_socket_stream.

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

Definition at line 518 of file native_socket_stream_impl.cpp.

◆ operator<<() [7/7]

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.

Definition at line 81 of file native_socket_stream_acceptor.cpp.