Flow-IPC 3.0.0
Flow-IPC project: Full implementation reference.
Namespaces | Typedefs | Functions
arena_lend_fwd.hpp File Reference
#include "ipc/util/shared_name_fwd.hpp"
#include "ipc/util/util_fwd.hpp"
#include <flow/log/log_fwd.hpp>
#include <flow/util/action_registry.hpp>
#include <flow/util/stat/stat_fwd.hpp>
#include <sys/types.h>
#include <cstddef>
#include <cstdint>
#include <memory>

Go to the source code of this file.

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::stat
 Stats-related sub-namespace, for ADL segregation and general organization.
 

Typedefs

template<typename T >
using ipc::shm::arena_lend::Obj_handle = std::shared_ptr< T >
 Determines the shared_ptr variety returned by A::construct() and S::borrow_object() for any arena-lending SHM-provider, where for a given SHM-provider A is the arena type (SHM-jemalloc: jemalloc::Ipc_arena), S is the SHM-session type (SHM-jemalloc: session::shm::arena_lend::jemalloc::Shm_session). More...
 
using ipc::shm::arena_lend::Shared_name = util::Shared_name
 Short-hand for util::Shared_name; used in particular for SHM pool names at least. More...
 
using ipc::shm::arena_lend::owner_id_t = util::process_id_t
 Alias for an identifier of the owner (essentially namespace of collection_id_ts) of shared information. More...
 
using ipc::shm::arena_lend::collection_id_t = uint32_t
 Identifier type for a shared memory pool collection. More...
 
using ipc::shm::arena_lend::Set_logger_registry = flow::util::Action_registry< Set_logger_tag, flow::log::Logger * >
 The Action_registry that fans out set_logger() calls to all SHM-arena-lend singletons. More...
 

Functions

void ipc::shm::arena_lend::set_logger (flow::log::Logger *logger_ptr)
 Convenience function that sets (or clears) the Logger used by all SHM-arena-lend singleton subsystems. More...
 
template<typename Visitor >
void ipc::shm::arena_lend::stat::declare_stats (const flow::util::stat::Stat_name &name_prefix, const Owner_obj_stats *src_stats, Owner_obj_stats *target_stats, Visitor &&visitor)
 Declares the stats for Owner_obj_stats. More...
 
template<typename Visitor >
void ipc::shm::arena_lend::stat::declare_stats (const flow::util::stat::Stat_name &name_prefix, const Zombie_obj_reaper_stats *src_stats, Zombie_obj_reaper_stats *target_stats, Visitor &&visitor)
 Declares the stats for Zombie_obj_reaper_stats. More...
 
template<typename Visitor >
void ipc::shm::arena_lend::stat::declare_stats (const flow::util::stat::Stat_name &name_prefix, const Sharded_stats *src_stats, Sharded_stats *target_stats, Visitor &&visitor)
 Declares the stats for Sharded_stats. More...
 
template<typename Visitor >
void ipc::shm::arena_lend::stat::declare_stats (const flow::util::stat::Stat_name &name_prefix, const Obj_db_aux_pool_stats *src_stats, Obj_db_aux_pool_stats *target_stats, Visitor &&visitor)
 Declares the stats for Obj_db_aux_pool_stats. More...
 
template<typename Visitor >
void ipc::shm::arena_lend::stat::declare_stats (const flow::util::stat::Stat_name &name_prefix, const Obj_db_aux_pool_global_stats *src_stats, Obj_db_aux_pool_global_stats *target_stats, Visitor &&visitor)
 Declares the stats for Obj_db_aux_pool_global_stats. More...
 
template<typename Visitor >
void ipc::shm::arena_lend::stat::declare_stats (const flow::util::stat::Stat_name &name_prefix, const Owner_pool_stats *src_stats, Owner_pool_stats *target_stats, Visitor &&visitor)
 Declares the stats for Owner_pool_stats. More...
 
template<typename Visitor >
void ipc::shm::arena_lend::stat::declare_stats (const flow::util::stat::Stat_name &name_prefix, const Pool_stats *src_stats, Pool_stats *target_stats, Visitor &&visitor)
 Declares the stats for Pool_stats. More...
 
template<typename Visitor >
void ipc::shm::arena_lend::stat::declare_stats (const flow::util::stat::Stat_name &name_prefix, const Owner_pool_lookup_global_stats *src_stats, Owner_pool_lookup_global_stats *target_stats, Visitor &&visitor)
 Declares the stats for Owner_pool_lookup_global_stats. More...
 
template<typename Visitor >
void ipc::shm::arena_lend::stat::declare_stats (const flow::util::stat::Stat_name &name_prefix, const Borrower_pool_stats *src_stats, Borrower_pool_stats *target_stats, Visitor &&visitor)
 Declares the stats for Borrower_pool_stats. More...
 
template<typename Visitor >
void ipc::shm::arena_lend::stat::declare_stats (const flow::util::stat::Stat_name &name_prefix, const Borrower_pool_lookup_global_stats *src_stats, Borrower_pool_lookup_global_stats *target_stats, Visitor &&visitor)
 Declares the stats for Borrower_pool_lookup_global_stats. More...
 
template<typename Visitor >
void ipc::shm::arena_lend::stat::declare_stats (const flow::util::stat::Stat_name &name_prefix, const Shm_pool_info *src_stats, Shm_pool_info *target_stats, Visitor &&visitor)
 Declares the fields for Shm_pool_info, intended for use with stat::print(). More...
 
template<typename Visitor >
void ipc::shm::arena_lend::stat::declare_stats (const flow::util::stat::Stat_name &name_prefix, const Memory_manager_stats *src_stats, Memory_manager_stats *target_stats, Visitor &&visitor)
 Declares the stats for Memory_manager_stats. More...