Ncapnp | Small group of miscellaneous utilities to ease work with capnp (Cap'n Proto), joining its capnp namespace |
▼Nipc | Catch-all namespace for the Flow-IPC project: A library/API in modern C++17 providing high-performance communication between processes |
Nbipc | Short-hand for boost.interprocess namespace |
Nfs | Short-hand for filesystem namespace |
▼Nsession | Flow-IPC module providing the broad lifecycle and shared-resource organization – via the session concept – in such a way as to make it possible for a given pair of processes A and B to set up ipc::transport structured- or unstructured-message channels for general IPC, as well as to share data in SHared Memory (SHM) |
►Nerror | Namespace containing the ipc::session module's extension of boost.system error conventions, so that that API can return codes/messages from within its own new set of error codes/messages |
CCategory | The boost.system category for errors returned by the ipc::session module |
►Nshm | Ipc::session sub-namespace that groups together facilities for SHM-backed sessions, particularly augmenting Client_session, Server_session, and Session_server classes by providing SHM-backed zero-copy functionality |
►Narena_lend | Bundles ipc::session::shm support for the various arena-lend-style SHM-providers, as of this writing at least ipc::session::shm::arena_lend::jemalloc |
►Njemalloc | Support for SHM-backed ipc::session sessions and session-servers with the SHM-jemalloc (ipc::shm::arena_lend::jemalloc) provider |
►Nerror | Analogous to ipc::session::error but for errors pertaining to SHM-jemalloc-enabled sessions specifically |
CCategory | The boost.system category for errors returned by the ipc::session module |
CClient_session_impl | Core internally-used implementation of shm::arena_lend::jemalloc::Client_session: it is to the latter what its public super-class Client_session_impl is to Client_session |
CClient_session_mv | |
CServer_session | 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) |
CServer_session_impl | Core internally-used implementation of shm::arena_lend::jemalloc::Server_session: it is to the latter what its public super-class Server_session_impl is to Server_session |
CServer_session_mv | |
CSession_impl | Common data and logic for shm::arena_lend::jemalloc::Server_session_impl and shm::arena_lend::jemalloc::Client_session_impl |
CSession_mv | Implements the SHM-related API common to shm::arena_lend::jemalloc::Server_session and shm::arena_lend::jemalloc::Client_session |
CSession_server | 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) |
►Nclassic | Support for SHM-backed ipc::session sessions and session-servers with the SHM-classic (ipc::shm::classic::Pool_arena) provider |
CClient_session_impl | Core internally-used implementation of shm::classic::Client_session: it is to the latter what its public super-class Client_session_impl is to Client_session |
CClient_session_mv | |
CServer_session | 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 |
CServer_session_impl | Core internally-used implementation of shm::classic::Server_session: it is to the latter what its public super-class Server_session_impl is to Server_session |
CServer_session_mv | |
CSession_impl | Common data and logic for shm::classic::Server_session_impl and shm::classic::Client_session_impl |
CSession_mv | Implements the SHM-related API common to shm::classic::Server_session and shm::classic::Client_session |
CSession_server | 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) |
CArena_to_shm_session | Implementation of Arena_to_shm_session_t |
CArena_to_shm_session< ipc::shm::arena_lend::jemalloc::Ipc_arena > | Implementation of Arena_to_shm_session_t for SHM-jemalloc arenas |
CArena_to_shm_session< ipc::shm::classic::Pool_arena > | Implementation of Arena_to_shm_session_t for SHM-classic arenas |
►Nsync_io | sync_io -pattern counterparts to async-I/O-pattern object types in parent namespace ipc::session |
CClient_session_adapter | 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) |
CServer_session_adapter | 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) |
►CSession_adapter | Internal-use workhorse containing common elements of Client_session_adapter and Server_session_adapter |
CChannel_open_result | Set of result arg values from a successful passive-channel-open from a Session_obj invoking On_channel_func |
CSession_server_adapter | 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) |
CApp | A description of an application in this ipc::session inter-process communication universe |
CClient_app | An App that is used as a client in at least one client-server IPC split |
►CClient_session_impl | Internal, non-movable pImpl-lite implementation of Client_session_mv class template |
CMaster_channel_req | An open-channel/log-in request out-message |
CClient_session_mv | Implements Session concept on the Client_app end: a Session_mv that first achieves PEER state by connecting to an opposing Session_server via Client_session_mv::sync_connect() |
CServer_app | An App that is used as a server in at least one client-server IPC split |
CServer_session_dtl | This is the data-less sub-class of Server_session or any more-advanced (e.g., SHM-capable) variant thereof that exposes protected APIs hidden from public user by providing public access to them; this is used internally by Session_server |
►CServer_session_impl | Internal, non-movable pImpl-lite implementation of Server_session_mv class template |
COpen_channel_req | An open-channel request out-message |
CServer_session_mv | 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() |
CSession | 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 |
►CSession_base | Internal type containing data and types common to internal types Server_session_impl and Client_session_impl which are the respective true cores of Server_session and Client_session respectively |
CGraceful_finisher | Optional to use by subclasses, this operates a simple state machine that carries out a graceful-session-end handshake procedure |
CSession_mv | Implements the Session concept when it is in PEER state |
CSession_server | 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 |
►CSession_server_impl | Internal class template comprising API/logic common to every Session_server variant, meant to be private ly sub-classed and largely forwarded |
CState | All internal mutable state of Session_server_impl |
▼Nshm | Modules for SHared Memory (SHM) support |
►Nclassic | Ipc::shm sub-module with the SHM-classic SHM-provider. See ipc::shm doc header for introduction |
►Nerror | Namespace containing the ipc::shm::classic module's extension of boost.system error conventions, so that that API can return codes/messages from within its own new set of error codes/messages |
CCategory | The boost.system category for errors returned by the ipc::shm module |
►CPool_arena | A 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 |
CHandle_in_shm | The data structure stored in SHM corresponding to an original construct()-returned Handle; exactly one of which exists per construct() call invoked from any Pool_arena connected to the underlying pool |
►Nstl | Ipc::shm sub-module providing integration between STL-compliant components (including containers) and SHared Memory (SHM) providers |
CArena_activator | 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 |
CStateless_allocator | Stateless allocator usable with STL-compliant containers to store (or merely read) them directly in SHM in a given SHM-aware Arena |
CArena_to_borrower_allocator_arena | Implementation of Arena_to_borrower_allocator_arena_t |
CArena_to_borrower_allocator_arena< classic::Pool_arena > | Implementation of Arena_to_borrower_allocator_arena_t for SHM-classic arenas |
▼Ntransport | Flow-IPC module providing transmission of structured messages and/or low-level blobs (and more) between pairs of processes |
►Nasio_local_stream_socket | Additional (versus boost.asio) APIs for advanced work with local stream (Unix domain) sockets including transmission of native handles through such streams; and peer process credentials acquisition |
Nlocal_ns | Short-hand for boost.asio Unix domain socket namespace |
COpt_peer_process_credentials | Gettable (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.) |
►Nerror | Namespace containing the ipc::transport module's extension of boost.system error conventions, so that that API can return codes/messages from within its own new set of error codes/messages |
CCategory | The boost.system category for errors returned by the ipc::transport module |
►Nstruc | Sub-module of Flow-IPC module ipc::transport providing transmission of structured messages specifically |
►Nerror | Analogous to ipc::transport::error but applies to the sub-namespace ipc::transport::struc – errors having to do with structured messaging |
CCategory | The boost.system category for errors returned by the ipc::transport::struc module |
►Nshm | Segregates zero-copy/SHM implementations of concepts residing in parent namespace ipc::transport::struc proper – most notably the concepts ipc::transport::struc::Struct_builder and ipc::transport::struc::Struct_reader – and items related to them |
►Narena_lend | See parent ipc::transport::struc::shm and at least sub-namespace ipc::transport::struc::shm::arena_lend::jemalloc |
Njemalloc | As of this writing certain convenience aliases supplied for the SHM-jemalloc SHM-provider as pertains to zero-copy structured message passing with that SHM-provider |
Nclassic | As of this writing certain convenience aliases supplied for the SHM-classic SHM-provider as pertains to zero-copy structured message passing with that SHM-provider |
►Nerror | Analogous to ipc::transport::struc::error but applies to the sub-namespace ipc::transport::struc::shm – errors having to do with structured messaging with zero-copy backed by SHM |
CCategory | The boost.system category for errors returned by the ipc::transport::struc::shm module |
►CBuilder | 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 |
CConfig | Implements Struct_builder::Config sub-concept |
CBuilder_base | Shm::Builder base that contains non-parameterized public items such as tag types and constants |
CCapnp_message_builder | 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() |
►CReader | Implements Struct_reader concept by interpreting a serialization by shm::Builder with the same template params |
CConfig | Implements Struct_reader::Config sub-concept |
►Nsync_io | sync_io -pattern counterparts to async-I/O-pattern object types in parent namespace ipc::transport::struc |
►CChannel | sync_io -pattern counterpart to async-I/O-pattern transport::struc::Channel |
CExpecting_response | Policy for how to act upon receiving a response in-message that indicates its originating out-message is the message associated with this object in Expecting_response_map |
CMsg_in_pipe | Data and policy with respect to receipt of the next/currently-incomplete in-message |
►CChannel | 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) |
►CSync_op_state | State in m_sync_op_state, when a sync-op is in fact in progress, meaning m_sync_op_state is not null |
CRequest_result | A successul result of sync_request() |
►CChannel_base | Channel base that contains non-parameterized public items such as tag types and constants |
CSerialize_via_app_shm | Similar to Serialize_via_session_shm but assumes per-app-scope SHM-arena (as opposed to per-session-scope) at compile time |
CSerialize_via_heap | Tag type for ctor selection: Backing memory for serialization comes from fixed-size segment allocation(s) from regular heap (malloc() ); and similarly for deserialization |
CSerialize_via_session_shm | Tag 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) |
►CHeap_fixed_builder | Implements Struct_builder concept by straightforwardly allocating fixed-size segments on-demand in the regular heap and serializing directly inside those segments |
CConfig | Implements Struct_builder::Config sub-concept |
CHeap_fixed_builder_capnp_message_builder | A 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) |
►CHeap_reader | Implements Struct_reader concept by straightforwardly interpreting a serialization by Heap_fixed_builder or any other builder that produces segments directly readable via SegmentArrayMessageReader |
CConfig | Implements Struct_reader::Config sub-concept |
CMsg_in | A structured in-message instance suitable as received and emittable (to user) by struc::Channel |
CMsg_in_impl | Internally used (data-free) addendum on-top of Msg_in which makes the protected API public instead |
CMsg_mdt_out | Internally used (data-free) addendum on-top of Msg_out; really an alias to Msg_out<schema::detail::StructuredMessage> , where the latter is the internal-use set of metadata schema, with a convenience public mutating API wrapping around capnp-generated mutator API for things like message ID |
CMsg_out | A structured out-message suitable to be sent via struc::Channel::send() (et al) |
CMsg_out_impl | Internally used (data-free) addendum on-top of Msg_out which makes the protected API public instead |
CNull_session | Value for Struct_builder::Session when no extra information is needed when serializing Struct_builder for subsequent sending to another process |
►CStruct_builder | A 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 |
CConfig | Copy-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 |
►CStruct_reader | A 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 |
CConfig | Analogous to Struct_builder::Config but for deserialization |
►Nsync_io | sync_io -pattern counterparts to async-I/O-pattern object types in parent namespace ipc::transport |
►CAsync_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 |
CUser_request | Data store representing a deficit user async-receive request: either one being currently handled by m_sync_io – which can handle one m_sync_io.async_receive_*() at a time, no more – or one queued up behind it, if async_receive_*() was called before the current one could complete |
CAsync_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 |
CBlob_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 |
CBlob_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 |
CBlob_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 |
►CBlob_stream_mq_receiver_impl | Internal, non-movable pImpl-lite implementation of sync_io::Blob_stream_mq_receiver class template |
CUser_request | Identical to sync_io::Async_adapter_receiver::User_request, except we only keep at most 1 of these and thus don't need a Ptr alias inside; and we need not worry about transmitting Native_handle s |
CBlob_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 |
►CBlob_stream_mq_sender_impl | Internal, non-movable pImpl-lite implementation of sync_io::Blob_stream_mq_sender class template |
CSnd_low_lvl_payload | Data store representing a payload corresponding to exactly one attempted async write-op, albeit used if and only if we encounter would-block in send_blob() or on_ev_auto_ping_now_timer_fired() or *end_sending() and have to queue (and therefore one-time-copy) data in m_pending_payloads_q |
CNative_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 |
CNative_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 |
►CNative_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 |
►CImpl | Internal, non-movable pImpl implementation of sync_io::Native_socket_stream class |
CRcv_user_request | Identical to sync_io::Async_adapter_receiver::User_request, except we only keep at most 1 of these and thus don't need a Ptr alias inside |
CSnd_low_lvl_payload | Data store representing a payload corresponding to exactly one attempted async write-op, albeit used if and only if we encounter would-block in send_*() or snd_on_ev_auto_ping_now_timer_fired() or *end_sending() and have to queue (and therefore one-time-copy) data in m_snd_pending_payloads_q |
CNative_socket_stream_acceptor | sync_io -pattern counterpart to async-I/O-pattern transport::Native_socket_stream_acceptor |
CBipc_mq_handle | Implements the Persistent_mq_handle concept by thinly wrapping bipc::message_queue , which is boost.interprocess's persistent message queue API |
CBlob_receiver | A documentation-only concept defining the behavior of an object capable of reliably/in-order receiving of discrete messages, each containing a binary blob |
CBlob_sender | A documentation-only concept defining the behavior of an object capable of reliably/in-order sending of discrete messages, each containing a binary blob |
CBlob_stream_mq_base | Base of Blob_stream_mq_sender and Blob_stream_mq_receiver containing certain static facilities, particularly for post-abort persistent resource cleanup |
CBlob_stream_mq_base_impl | Internal implementation of Blob_stream_mq_base class template; and common utilities used by Blob_stream_mq_sender_impl and Blob_stream_mq_receiver_impl (static items only as of this writing) |
CBlob_stream_mq_receiver | 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 |
CBlob_stream_mq_receiver_impl | Internal, non-movable pImpl-lite implementation of Blob_stream_mq_receiver class template |
CBlob_stream_mq_sender | 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 |
CBlob_stream_mq_sender_impl | Internal, non-movable pImpl-lite implementation of Blob_stream_mq_sender class template |
CChannel | 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 |
CMqs_channel | 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) |
CMqs_socket_stream_channel | 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 |
CNative_handle_receiver | A 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 |
CNative_handle_sender | A 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 |
►CNative_socket_stream | Implements 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 |
CImpl | Internal, non-movable pImpl implementation of Native_socket_stream class |
►CNative_socket_stream_acceptor | A 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() |
CUser_request | Data store representing a deficit user async-accept request that had to be saved due to lacking surplus of finalized peer socket handles |
CNull_peer | Dummy 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_obj s |
CPersistent_mq_handle | A 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 |
CPosix_mq_handle | Implements the Persistent_mq_handle concept by wrapping the POSIX message queue API (see man mq_overview ) |
CProtocol_negotiator | A 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 |
CSocket_stream_channel | A Channel with a handles pipe only (no blobs pipe) that uses a Unix domain socket connection as the underlying transport for that pipe |
CSocket_stream_channel_of_blobs | A Channel with a blobs pipe only (no handles pipe) that uses a Unix domain socket connection as the underlying transport for that pipe |
▼Nutil | Flow-IPC module containing miscellaneous general-use facilities that ubiquitously used by ~all Flow-IPC modules and/or do not fit into any other Flow-IPC module |
►Nsync_io | Contains common code, as well as important explanatory documentation in the following text, for the sync_io pattern used in ipc::transport and ipc::session to provide fine-tuned control over integrating asynchronous Flow-IPC activities into the user's event loop |
CAsio_waitable_native_handle | Useful 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 |
CTimer_event_emitter | An object of this type, used internally to implement sync_io -pattern objects that require timer events, starts a thread dedicated exclusively to running timer waits on the sync_io object's behalf, so that when such a timer fires, it emits a pipe-readable event to be detected by the user's event loop, which it then reports to sync_io object |
CDefault_init_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 |
CNative_handle | A monolayer-thin wrapper around a native handle, a/k/a descriptor a/k/a FD |
CProcess_credentials | A process's credentials (PID, UID, GID as of this writing) |
CShared_name | String-wrapping abstraction representing a name uniquely distinguishing a kernel-persistent entity from all others in the system, or a fragment of such a name |
CUse_counted_object | Simple counter that manually tracks utilization. It is not thread-safe |