Flow-IPC 3.0.0
Flow-IPC project: Public API.
Namespaces | Typedefs | Functions
transport_fwd.hpp File Reference

Namespaces

namespace  ipc
 Catch-all namespace for the Flow-IPC project: A library/API in modern C++17 providing high-performance communication between processes.
 
namespace  ipc::transport
 Flow-IPC module providing transmission of structured messages and/or low-level blobs (and more) between pairs of processes.
 
namespace  ipc::transport::stat
 Stats-related sub-namespace, for ADL segregation and general organization.
 
namespace  ipc::transport::sync_io
 sync_io-pattern counterparts to async-I/O-pattern object types in parent namespace ipc::transport.
 

Typedefs

using ipc::transport::Native_handle = util::Native_handle
 Convenience alias for the commonly used type util::Native_handle.
 
using ipc::transport::Shared_name = util::Shared_name
 Convenience alias for the commonly used type util::Shared_name.
 
using ipc::transport::Posix_mq_sender = Blob_stream_mq_sender< Posix_mq_handle >
 Convenience alias: Blob_sender via unidirectional POSIX MQ (message queue). More...
 
using ipc::transport::Posix_mq_receiver = Blob_stream_mq_receiver< Posix_mq_handle >
 Convenience alias: Blob_receiver via unidirectional POSIX MQ (message queue). More...
 
using ipc::transport::Bipc_mq_sender = Blob_stream_mq_sender< Bipc_mq_handle >
 Convenience alias: Blob_sender via unidirectional bipc MQ (message queue). More...
 
using ipc::transport::Bipc_mq_receiver = Blob_stream_mq_receiver< Bipc_mq_handle >
 Convenience alias: Blob_receiver via unidirectional bipc MQ (message queue). More...
 
using ipc::transport::Posix_mqs_channel_of_blobs = Mqs_channel< false, Posix_mq_handle >
 Convenience alias: Channel peer (Blob_sender, Blob_receiver) at one end of full-duplex (bidirectional) pipe composed of 2 opposite-facing unidirectional POSIX MQs (message queues). More...
 
using ipc::transport::Bipc_mqs_channel_of_blobs = Mqs_channel< false, Bipc_mq_handle >
 Convenience alias: Channel peer (Blob_sender, Blob_receiver) at one end of full-duplex (bidirectional) pipe composed of 2 opposite-facing unidirectional POSIX MQs (message queues). More...
 
using ipc::transport::Posix_mqs_socket_stream_channel = Mqs_socket_stream_channel< false, Posix_mq_handle >
 Convenience alias: Channel peer (Blob_sender, Blob_receiver, Native_handle_sender, 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 ipc::transport::Bipc_mqs_socket_stream_channel = Mqs_socket_stream_channel< false, Bipc_mq_handle >
 Convenience alias: Channel peer (Blob_sender, Blob_receiver, Native_handle_sender, 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...
 
using ipc::transport::sync_io::Posix_mq_sender = Blob_stream_mq_sender< Posix_mq_handle >
 Convenience alias: sync_io::Blob_sender via unidirectional POSIX MQ (message queue).
 
using ipc::transport::sync_io::Posix_mq_receiver = Blob_stream_mq_receiver< Posix_mq_handle >
 Convenience alias: sync_io::Blob_receiver via unidirectional POSIX MQ (message queue).
 
using ipc::transport::sync_io::Bipc_mq_sender = Blob_stream_mq_sender< Bipc_mq_handle >
 Convenience alias: sync_io::Blob_sender via unidirectional bipc MQ (message queue).
 
using ipc::transport::sync_io::Bipc_mq_receiver = Blob_stream_mq_receiver< Bipc_mq_handle >
 Convenience alias: sync_io::Blob_receiver via unidirectional bipc MQ (message queue).
 
using ipc::transport::sync_io::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 ipc::transport::sync_io::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 ipc::transport::sync_io::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 ipc::transport::sync_io::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

std::ostream & ipc::transport::operator<< (std::ostream &os, const Native_socket_stream &val)
 Prints string representation of the given Native_socket_stream to the given ostream. More...
 
template<typename Msg_resource_t >
std::ostream & ipc::transport::operator<< (std::ostream &os, const Native_socket_stream_msg_batch_in< Msg_resource_t > &val)
 Prints string representation of the given Native_socket_stream_msg_batch_in to the given ostream. More...
 
std::ostream & ipc::transport::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...
 
template<typename Persistent_mq_handle >
std::ostream & ipc::transport::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 & ipc::transport::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 & ipc::transport::operator<< (std::ostream &os, const Bipc_mq_handle &val)
 Prints string representation of the given Bipc_mq_handle to the given ostream. More...
 
std::ostream & ipc::transport::operator<< (std::ostream &os, const Posix_mq_handle &val)
 Prints string representation of the given Posix_mq_handle to the given ostream. More...
 
template<typename Blob_sender_t , typename Blob_receiver_t , typename Native_handle_sender_t , typename Native_handle_receiver_t >
std::ostream & ipc::transport::operator<< (std::ostream &os, const Channel< Blob_sender_t, Blob_receiver_t, Native_handle_sender_t, Native_handle_receiver_t > &val)
 Prints string representation of the given Channel to the given ostream. More...
 
std::ostream & ipc::transport::operator<< (std::ostream &os, const Null_peer &val)
 Dummy that is never invoked. More...
 
template<typename Msg_resource_t , bool NO_HNDLS>
std::ostream & ipc::transport::operator<< (std::ostream &os, const Generic_msg_batch_in< Msg_resource_t, NO_HNDLS > &val)
 Prints string representation of the given Generic_msg_batch_in to the given ostream. More...
 
void ipc::transport::swap (Bipc_mq_handle &val1, Bipc_mq_handle &val2)
 Implements Persistent_mq_handle related concept: Swaps two objects. More...
 
void ipc::transport::swap (Posix_mq_handle &val1, Posix_mq_handle &val2)
 Implements Persistent_mq_handle related concept: Swaps two objects. More...
 
template<typename Visitor >
void ipc::transport::stat::declare_stats (const flow::util::stat::Stat_name &name_prefix, const Blob_snd_stats *src_stats, Blob_snd_stats *target_stats, Visitor &&visitor)
 Declares the stats for Blob_snd_stats. More...
 
const Blob_snd_stats & ipc::transport::stat::blob_snd_stats (const Blob_snd_stats &stats)
 Maps a stats struct type to its core Blob_snd_stats; identity for Blob_snd_stats itself. More...
 
template<typename Stats_t >
Blob_snd_stats & ipc::transport::stat::blob_snd_stats_mutable (Stats_t &stats)
 Non-const wrapper around blob_snd_stats(). More...
 
template<typename Visitor >
void ipc::transport::stat::declare_stats (const flow::util::stat::Stat_name &name_prefix, const Blob_rcv_stats *src_stats, Blob_rcv_stats *target_stats, Visitor &&visitor)
 Declares the stats for Blob_rcv_stats. More...
 
const Blob_rcv_stats & ipc::transport::stat::blob_rcv_stats (const Blob_rcv_stats &stats)
 Maps a stats struct type to its core Blob_rcv_stats; identity for Blob_rcv_stats itself. More...
 
template<typename Stats_t >
Blob_rcv_stats & ipc::transport::stat::blob_rcv_stats_mutable (Stats_t &stats)
 Non-const wrapper around blob_rcv_stats(). More...
 
template<bool NO_HNDLS, typename Batch , typename Task_err , typename Async_rcv_impl_func >
void ipc::transport::sync_io::async_receive_batch_emulation (flow::log::Logger *logger_ptr, Batch *batch, bool assume_would_block, Error_code *sync_err_code, Task_err &&on_done_func, Async_rcv_impl_func &&async_rcv_impl_func)
 Implements {Native_handle|Blob}_receiver::async_receive_*_batch() by emulating batch-receiving as a series of single-message receive-ops. More...
 
std::ostream & ipc::transport::sync_io::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 & ipc::transport::sync_io::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...
 
template<typename Persistent_mq_handle >
std::ostream & ipc::transport::sync_io::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...
 
template<typename Persistent_mq_handle >
std::ostream & ipc::transport::sync_io::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...