Flow-IPC 1.0.2
Flow-IPC project: Public API.
Class Hierarchy

Go to the graphical class hierarchy

This inheritance list is sorted roughly, but not completely, alphabetically:
[detail level 1234]
 Cipc::session::AppA description of an application in this ipc::session inter-process communication universe
 Cipc::session::Client_appAn App that is used as a client in at least one client-server IPC split
 Cipc::session::Server_appAn App that is used as a server in at least one client-server IPC split
 Cipc::shm::stl::Arena_activator< Arena >RAII-style class operating a stack-like notion of a the given thread's currently active SHM-aware Arena, so that Stateless_allocator knows which Arena is currently active w/r/t a given code context operating on a SHM-stored container instance
 Cipc::shm::Arena_to_borrower_allocator_arena< Arena >Implementation of Arena_to_borrower_allocator_arena_t
 Cipc::shm::Arena_to_borrower_allocator_arena< classic::Pool_arena >Implementation of Arena_to_borrower_allocator_arena_t for SHM-classic arenas
 Cipc::session::shm::Arena_to_shm_session< Arena >Implementation of Arena_to_shm_session_t
 Cipc::session::shm::Arena_to_shm_session< ipc::shm::arena_lend::jemalloc::Ipc_arena >Implementation of Arena_to_shm_session_t for SHM-jemalloc arenas
 Cipc::session::shm::Arena_to_shm_session< ipc::shm::classic::Pool_arena >Implementation of Arena_to_shm_session_t for SHM-classic arenas
 Cipc::util::sync_io::Asio_waitable_native_handleUseful if using the sync_io pattern within a user event loop built on boost.asio (optionally with flow.async help), an object of this class wraps a non-null Native_handle and allows one to use .async_wait() to perform event waiting on behalf of any sync_io-implementing ipc::transport or ipc::session object
 Cipc::transport::Bipc_mq_handleImplements the Persistent_mq_handle concept by thinly wrapping bipc::message_queue, which is boost.interprocess's persistent message queue API
 Cipc::transport::Blob_receiverA documentation-only concept defining the behavior of an object capable of reliably/in-order receiving of discrete messages, each containing a binary blob
 Cipc::transport::sync_io::Blob_receiverA 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
 Cipc::transport::Blob_senderA documentation-only concept defining the behavior of an object capable of reliably/in-order sending of discrete messages, each containing a binary blob
 Cipc::transport::sync_io::Blob_senderA 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
 Cipc::transport::Blob_stream_mq_base< Persistent_mq_handle >Base of Blob_stream_mq_sender and Blob_stream_mq_receiver containing certain static facilities, particularly for post-abort persistent resource cleanup
 Cipc::transport::Blob_stream_mq_receiver< Persistent_mq_handle >Implements 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
 Cipc::transport::Blob_stream_mq_sender< Persistent_mq_handle >Implements 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
 Cipc::transport::sync_io::Blob_stream_mq_receiver< Persistent_mq_handle >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
 Cipc::transport::sync_io::Blob_stream_mq_sender< Persistent_mq_handle >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
 Cipc::transport::struc::shm::Builder_baseShm::Builder base that contains non-parameterized public items such as tag types and constants
 Cipc::transport::struc::shm::Builder< Shm_arena >Implements Struct_builder concept with maximal zero-copy perf by (1) storing the actual user-schema-controlled message using the SHM provider of choice, in SHM, and (2) straightforwardly allocating 1 segment in regular heap and placing the SHM handle there for transmission over IPC
 Cipc::transport::struc::shm::Capnp_message_builder< Shm_arena >A capnp::MessageBuilder used by shm::Builder: similar to a MallocMessageBuilder with the GROW_HEURISTICALLY alloc-strategy but allocating via a SHM provider (of template-arg-specific type) in SHM instead of the heap via malloc()
 Cipc::transport::Channel< Blob_sender, Blob_receiver, Native_handle_sender, Native_handle_receiver >Peer to a bundle of 1-2 full-duplex pipe(s), one for transmitting unstructured binary blobs; the other for transmitting native handle+blob combos; hence a Blob_sender + Blob_receiver, a Native_handle_sender + Native_handle_receiver, or both
 Cipc::transport::struc::Channel< Channel_obj, Message_body, Struct_builder_config, Struct_reader_config >Owning and wrapping a pre-connected transport::Channel peer (an endpoint of an established channel over which unstructured messages and optionally native handles can be transported), this template is the central pillar of the ipc::transport::struc (structured layer), capable of communicating structured capnp-schema-based messages (and native handles)
 Cipc::transport::Channel< Null_peer, Null_peer, std::conditional_t< SIO, sync_io::Native_socket_stream, Native_socket_stream >, std::conditional_t< SIO, sync_io::Native_socket_stream, Native_socket_stream > >
 Cipc::transport::Socket_stream_channel< SIO >A Channel with a handles pipe only (no blobs pipe) that uses a Unix domain socket connection as the underlying transport for that pipe
 Cipc::transport::Channel< std::conditional_t< SIO, sync_io::Blob_stream_mq_sender< Persistent_mq_handle >, Blob_stream_mq_sender< Persistent_mq_handle > >, std::conditional_t< SIO, sync_io::Blob_stream_mq_receiver< Persistent_mq_handle >, Blob_stream_mq_receiver< Persistent_mq_handle > >, Null_peer, Null_peer >
 Cipc::transport::Mqs_channel< SIO, Persistent_mq_handle, Native_handle_sender, Native_handle_receiver >A Channel with at least a blobs pipe consisting of two MQs of type Persistent_mq_handle (template arg 1); and possibly a handles pipe as governed by template args 2 and 3 which default to Null_peer (in which case the handles pipe is disabled)
 Cipc::transport::Channel< std::conditional_t< SIO, sync_io::Blob_stream_mq_sender< Persistent_mq_handle >, Blob_stream_mq_sender< Persistent_mq_handle > >, std::conditional_t< SIO, sync_io::Blob_stream_mq_receiver< Persistent_mq_handle >, Blob_stream_mq_receiver< Persistent_mq_handle > >, std::conditional_t< SIO, sync_io::Native_socket_stream, Native_socket_stream >, std::conditional_t< SIO, sync_io::Native_socket_stream, Native_socket_stream > >
 Cipc::transport::Mqs_channel< SIO, Persistent_mq_handle, std::conditional_t< SIO, sync_io::Native_socket_stream, Native_socket_stream >, std::conditional_t< SIO, sync_io::Native_socket_stream, Native_socket_stream > >
 Cipc::transport::Mqs_socket_stream_channel< SIO, Persistent_mq_handle >A Channel with a blobs pipe consisting of 2 MQs of type Persistent_mq_handle (template arg); and a handles pipe over a Unix domain socket connection
 Cipc::transport::Channel< std::conditional_t< SIO, sync_io::Native_socket_stream, Native_socket_stream >, std::conditional_t< SIO, sync_io::Native_socket_stream, Native_socket_stream >, Null_peer, Null_peer >
 Cipc::transport::Socket_stream_channel_of_blobs< SIO >A Channel with a blobs pipe only (no handles pipe) that uses a Unix domain socket connection as the underlying transport for that pipe
 Cipc::transport::struc::Channel_baseChannel base that contains non-parameterized public items such as tag types and constants
 Cipc::transport::struc::sync_io::Channel< Channel_obj, Message_body, Struct_builder_config, Struct_reader_config >sync_io-pattern counterpart to async-I/O-pattern transport::struc::Channel
 Cipc::session::sync_io::Client_session_adapter< Session >sync_io-pattern counterpart to async-I/O-pattern session::Client_session types and all their SHM-aware variations (at least shm::classic::Client_session et al and shm::arena_lend::jemalloc::Client_session et al)
 Cipc::transport::struc::Heap_fixed_builder::ConfigImplements Struct_builder::Config sub-concept
 Cipc::transport::struc::Heap_reader::ConfigImplements Struct_reader::Config sub-concept
 Cipc::transport::struc::shm::Builder< Shm_arena >::ConfigImplements Struct_builder::Config sub-concept
 Cipc::transport::struc::shm::Reader< Shm_arena >::ConfigImplements Struct_reader::Config sub-concept
 Cipc::transport::struc::Struct_builder::ConfigCopy-ctible, copy-assignable, default-ctible type – informally, cheaply copyable and likely an aggregate struct – objects of which store data that Struct_builder main ctor knows how to interpret as knobs controlling its behavior
 Cipc::transport::struc::Struct_reader::ConfigAnalogous to Struct_builder::Config but for deserialization
 Cipc::util::Default_init_allocator< T, Allocator >Allocator adaptor (useful for, e.g., vector that skips zero-filling) that turns a value-initialization T() into a default-initialization for those types, namely PoDs, for which default-initialization is a no-op
 Cipc::transport::struc::Heap_fixed_builderImplements Struct_builder concept by straightforwardly allocating fixed-size segments on-demand in the regular heap and serializing directly inside those segments
 Cipc::transport::struc::Heap_fixed_builder_capnp_message_builderA capnp::MessageBuilder used by Heap_fixed_builder: similar to a capnp::MallocMessageBuilder with the FIXED_SIZE alloc-strategy but with framing space around the allocated segment(s)
 Cipc::transport::struc::Heap_readerImplements Struct_reader concept by straightforwardly interpreting a serialization by Heap_fixed_builder or any other builder that produces segments directly readable via SegmentArrayMessageReader
 Cboost::system::is_error_code_enum<::ipc::session::error::Code >Ummm – it specializes this struct to – look – the end result is boost.system uses this as authorization to make enum Code convertible to Error_code
 Cboost::system::is_error_code_enum<::ipc::session::shm::arena_lend::jemalloc::error::Code >Ummm – it specializes this struct to – look – the end result is boost.system uses this as authorization to make enum Code convertible to Error_code
 Cboost::system::is_error_code_enum<::ipc::shm::classic::error::Code >Ummm – it specializes this struct to – look – the end result is boost.system uses this as authorization to make enum Code convertible to Error_code
 Cboost::system::is_error_code_enum<::ipc::transport::error::Code >Ummm – it specializes this struct to – look – the end result is boost.system uses this as authorization to make enum Code convertible to Error_code
 Cboost::system::is_error_code_enum<::ipc::transport::struc::error::Code >Ummm – it specializes this struct to – look – the end result is boost.system uses this as authorization to make enum Code convertible to Error_code
 Cboost::system::is_error_code_enum<::ipc::transport::struc::shm::error::Code >Ummm – it specializes this struct to – look – the end result is boost.system uses this as authorization to make enum Code convertible to Error_code
 Cipc::transport::struc::Msg_in< Message_body, Struct_reader_config >A structured in-message instance suitable as received and emittable (to user) by struc::Channel
 Cipc::transport::struc::Msg_out< Message_body, Struct_builder_t >A structured out-message suitable to be sent via struc::Channel::send() (et al)
 Cipc::util::Native_handleA monolayer-thin wrapper around a native handle, a/k/a descriptor a/k/a FD
 Cipc::transport::Native_handle_receiverA documentation-only concept defining the behavior of an object capable of reliably/in-order receiving of discrete messages, each containing a native handle, a binary blob, or both
 Cipc::transport::sync_io::Native_handle_receiverA 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
 Cipc::transport::Native_handle_senderA documentation-only concept defining the behavior of an object capable of reliably/in-order sending of discrete messages, each containing a native handle, a binary blob, or both
 Cipc::transport::sync_io::Native_handle_senderA 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
 Cipc::transport::Native_socket_streamImplements both Native_handle_sender and 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
 Cipc::transport::sync_io::Native_socket_streamImplements 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
 Cipc::transport::Native_socket_stream_acceptorA server object that binds to a Shared_name and listens for incoming Native_socket_stream connect attempts to that name; and yields connected-peer sync_io::Native_socket_stream objects, one per counterpart opposing *_connect()
 Cipc::transport::sync_io::Native_socket_stream_acceptorsync_io-pattern counterpart to async-I/O-pattern transport::Native_socket_stream_acceptor
 Cipc::transport::Null_peerDummy type for use as a template param to Channel when either the blobs pipe or handles pipe is disabled; as well as to mark a given peer object as not having a counterpart form: a sync_io object shall have its using Sync_io_obj = Null_peer and coversely for async-I/O guys and their Async_io_objs
 Cipc::transport::struc::Null_sessionValue for Struct_builder::Session when no extra information is needed when serializing Struct_builder for subsequent sending to another process
 Cipc::transport::Persistent_mq_handleA documentation-only concept defining the behavior of an object representing a light-weight handle to a message queue, capable of receiving/sending discrete messages in non-blocking/blocking/timed-blocking fashion, as well as some support for polling/waiting and interruptions thereof
 Cipc::shm::classic::Pool_arenaA SHM-classic interface around a single SHM pool with allocation-algorithm services by boost.interprocess, as in bipc::managed_shared_memory, with symmetric read/write semantics, compatible with ipc::shm::stl STL-compliance and SHM-handle borrowing manually or via ipc::session
 Cipc::transport::Posix_mq_handleImplements the Persistent_mq_handle concept by wrapping the POSIX message queue API (see man mq_overview)
 Cipc::util::Process_credentialsA process's credentials (PID, UID, GID as of this writing)
 Cipc::transport::asio_local_stream_socket::Opt_peer_process_credentialsGettable (read-only) socket option for use with asio_local_stream_socket::Peer_socket .get_option() in order to get the connected opposing peer process's credentials (PID/UID/GID/etc.)
 Cipc::transport::Protocol_negotiatorA simple state machine that, assuming the opposide side of a comm pathway uses an equivalent state machine, helps negotiate the protocol version to speak over that pathway, given each side being capable of speaking a range of protocol versions and reporting the highest such version to the other side
 Cipc::transport::struc::shm::Reader< Shm_arena >Implements Struct_reader concept by interpreting a serialization by shm::Builder with the same template params
 Cipc::transport::struc::Channel< Channel_obj, Message_body, Struct_builder_config, Struct_reader_config >::Sync_op_state::Request_resultA successul result of sync_request()
 Cipc::transport::struc::Channel_base::Serialize_via_app_shmSimilar to Serialize_via_session_shm but assumes per-app-scope SHM-arena (as opposed to per-session-scope) at compile time
 Cipc::transport::struc::Channel_base::Serialize_via_heapTag type for ctor selection: Backing memory for serialization comes from fixed-size segment allocation(s) from regular heap (malloc()); and similarly for deserialization
 Cipc::transport::struc::Channel_base::Serialize_via_session_shmTag type for ctor selection: Backing RAM for serialization comes from a given session::Session's SHM arena (of per-session scope) via exponential-growing-size segment allocation(s)
 Cipc::session::sync_io::Server_session_adapter< Session >sync_io-pattern counterpart to async-I/O-pattern session::Server_session types and all their SHM-aware variations (at least shm::classic::Server_session et al and shm::arena_lend::jemalloc::Server_session et al)
 Cipc::session::Session< Mdt_payload >A documentation-only concept defining the local side of an IPC conversation (session) with another entity (typically a separate process), also represented by a Session-implementing object, through which one can easily open IPC channels (ipc::transport::Channel), among other IPC features
 Cipc::session::Session_mv< Session_impl_t >Implements the Session concept when it is in PEER state
 Cipc::session::shm::arena_lend::jemalloc::Session_mv< Session_t >Implements the SHM-related API common to shm::arena_lend::jemalloc::Server_session and shm::arena_lend::jemalloc::Client_session
 Cipc::session::shm::classic::Session_mv< Session_t >Implements the SHM-related API common to shm::classic::Server_session and shm::classic::Client_session
 Cipc::session::shm::classic::Server_session< S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload >Identical to session::Server_session in every way, except that it makes available two SHM arenas, from the SHM-classic provider (ipc::shm::classic::Pool_arena), symmetrically accessible by the opposing side
 Cipc::session::Session_mv< Client_session_impl_t >
 Cipc::session::Client_session_mv< Client_session_impl_t >Implements Session concept on the Client_app end: a Session_mv that first achieves PEER state by connecting to an opposing Session_server_mv via Client_session_mv::sync_connect()
 Cipc::session::Session_mv< Server_session_impl< S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload > >
 Cipc::session::Server_session_mv< Server_session_impl< S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload > >
 Cipc::session::shm::arena_lend::jemalloc::Session_mv< session::Server_session_mv< Server_session_impl< S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload > > >
 Cipc::session::shm::arena_lend::jemalloc::Server_session< S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload >Identical to session::Server_session in every way, except that it makes available two SHM arenas, from the SHM-jemalloc provider (ipc::shm::arena_lend::jemalloc)
 Cipc::session::Session_mv< Server_session_impl_t >
 Cipc::session::Server_session_mv< Server_session_impl_t >Implements Session concept on the Server_app end: a Session that is emitted in almost-PEER state by local Session_server accepting a connection by an opposing Client_session_mv::sync_connect()
 Cipc::session::Session_server< S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload >To be instantiated typically once in a given process, an object of this type asynchronously listens for Client_app processes each of which wishes to establish a session with this server process; emits resulting Server_session objects locally
 Cipc::session::shm::arena_lend::jemalloc::Session_server< S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload >This is to vanilla Session_server what shm::arena_lend::jemalloc::Server_session is to vanilla Server_session: it is the session-server type that starts SHM-enabled sessions with SHM-jemalloc provider (ipc::shm::arena_lend::jemalloc)
 Cipc::session::shm::classic::Session_server< S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload >This is to vanilla Session_server what shm::classic::Server_session is to vanilla Server_session: it is the session-server type that starts SHM-enabled sessions with SHM-classic provider (ipc::shm::classic::Pool_arena)
 Cipc::session::sync_io::Session_server_adapter< Session_server >sync_io-pattern counterpart to async-I/O-pattern session::Session_server types and all their SHM-aware variations (at least shm::classic::Session_server and shm::arena_lend::jemalloc::Session_server)
 Cipc::util::Shared_nameString-wrapping abstraction representing a name uniquely distinguishing a kernel-persistent entity from all others in the system, or a fragment of such a name
 Cipc::shm::stl::Stateless_allocator< T, Arena >Stateless allocator usable with STL-compliant containers to store (or merely read) them directly in SHM in a given SHM-aware Arena
 Cipc::transport::struc::Struct_builderA documentation-only concept defining the behavior of an object capable of zero-copy-serializing, similar to capnp::MessageBuilder but geared to transmission over pipe-like IPC transports
 Cipc::transport::struc::Struct_readerA documentation-only concept that is, conceptually, roughly what capnp::MessageReader is to capnp::MessageBuilder, to be used on an in-message serialized by a counterpart Struct_builder, having been transmitted over an IPC transmitter of blobs
 Cipc::util::Use_counted_objectSimple counter that manually tracks utilization. It is not thread-safe