Flow-IPC 3.0.0
Flow-IPC project: Full implementation reference.
Classes | Namespaces
thread_lcl_obj_db.hpp File Reference
#include "ipc/shm/arena_lend/arena_lend_fwd.hpp"
#include "ipc/shm/arena_lend/detail/lend_tracker_pool.hpp"
#include "ipc/shm/arena_lend/detail/owner_spc_impl.hpp"
#include "ipc/shm/arena_lend/detail/shm_pool_offset_ptr_data.hpp"
#include "ipc/shm/arena_lend/arena_lend_stats.hpp"
#include "ipc/shm/arena_lend/detail/arena_lend_fwd.hpp"
#include "ipc/shm/arena_lend/detail/stats.hpp"
#include "ipc/shm/shm_stats.hpp"
#include "ipc/session/standalone/shm/arena_lend/detail/borrower_shm_pool_collection_repository.hpp"
#include "ipc/util/process_credentials.hpp"
#include "ipc/common.hpp"
#include <flow/util/linked_hash_map.hpp>
#include <flow/util/thread_lcl.hpp>
#include <flow/util/util.hpp>
#include <flow/util/stat/stat_set.hpp>
#include <flow/util/stat/stat_set_list.hpp>
#include <flow/log/log.hpp>
#include <flow/log/config.hpp>
#include <flow/async/async_fwd.hpp>
#include <boost/thread/future.hpp>
#include <boost/thread/thread_only.hpp>
#include <boost/unordered/unordered_flat_set.hpp>
#include <boost/unordered/unordered_flat_map.hpp>
#include <boost/range/join.hpp>
#include <boost/range/adaptor/filtered.hpp>
#include <boost/range/adaptor/transformed.hpp>
#include <boost/range/adaptor/map.hpp>
#include <boost/range/algorithm/for_each.hpp>
#include <type_traits>
#include <vector>
#include <cstdlib>
#include <optional>
#include <atomic>

Go to the source code of this file.

Classes

class  ipc::shm::arena_lend::detail::Thread_lcl_obj_db_admin< Shm_arena_t >
 (Internal-use) Thread_lcl_obj_db_admin<A>::this_thread_obj_db() is the current thread's module that tracks extant a.construct<>()ed (in this thread) objects in SHM, where a represents all SHM-arenas of type A. More...
 
struct  ipc::shm::arena_lend::detail::Thread_lcl_obj_db_admin< Shm_arena_t >::Collection_db
 Per-arena (per-collection-ID) tracking state owned by this per-thread admin. More...
 
struct  ipc::shm::arena_lend::detail::Thread_lcl_obj_db_admin< Shm_arena_t >::Collection_db::Object
 A single constructed object's tracking data: its address and the functor to destroy/dealloc it. More...
 
struct  ipc::shm::arena_lend::detail::Thread_lcl_obj_db_admin< Shm_arena_t >::Arena_forget_progress
 For each arena currently being forgotten via forgetting_shm_arena(), the state tracking the progress of that operation. More...
 
struct  ipc::shm::arena_lend::detail::Thread_lcl_obj_db_admin< Shm_arena_t >::Static_state
 Singleton state shared across all per-thread Thread_lcl_obj_db_admin instances (for a given Shm_arena type). More...
 
class  ipc::shm::arena_lend::detail::Thread_lcl_obj_db_client< Shm_arena_t >
 (Internal-use) Where a Thread_lcl_obj_db_admin cannot handle lend-object and dispose-object tracking, because the end user triggering those ops happens to be in a thread different from the one in which the object was .construct()ed, use Thread_lcl_obj_db_client: whether in the owner process (but not-constructing thread) or a borrower process (any thread). More...
 
struct  ipc::shm::arena_lend::detail::Thread_lcl_obj_db_client< Shm_arena_t >::Pool_data
 Per-lend-tracker-pool bookkeeping on the client side: the pool handle itself and its identity. More...
 
struct  ipc::shm::arena_lend::detail::Thread_lcl_obj_db_client< Shm_arena_t >::Static_state
 Singleton state shared across all per-thread Thread_lcl_obj_db_client instances (for a given Shm_arena type). More...
 

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::shm
 Modules for SHared Memory (SHM) support.
 
namespace  ipc::shm::arena_lend
 ipc::shm sub-module providing the SHM-provider family based on the arena-lending paradigm: each process allocates in its own arena(s), lending the resulting objects to other processes, which can read them but not allocate (nor deallocate) in that arena.
 
namespace  ipc::shm::arena_lend::detail
 Segregated private stuff for ipc::shm::arena_lend.