19#ifndef COMMON_UTILS_INCLUDE_COMMONUTILS_SHMMANAGER_H_
20#define COMMON_UTILS_INCLUDE_COMMONUTILS_SHMMANAGER_H_
26#if !defined(__CINT__) && !defined(__MAKECINT__) && !defined(__ROOTCLING__) && !defined(__CLING__)
27#include <boost/interprocess/managed_external_buffer.hpp>
28#include <boost/interprocess/allocators/allocator.hpp>
31#if !defined(__CINT__) && !defined(__MAKECINT__) && !defined(__ROOTCLING__) && !defined(__CLING__) && !defined(__APPLE__)
112 void* mBufferPtr =
nullptr;
113 void* mSegPtr =
nullptr;
115 bool mIsMaster =
false;
116 bool mIsOperational =
false;
118 void* tryAttach(
bool& success);
119 size_t getPointerOffset(
void*
ptr)
const {
return (
size_t)((
char*)
ptr - (
char*)mBufferPtr); }
121#if !defined(__CINT__) && !defined(__MAKECINT__) && !defined(__ROOTCLING__) && !defined(__CLING__)
122 boost::interprocess::wmanaged_external_buffer* boostmanagedbuffer;
123 boost::interprocess::allocator<char, boost::interprocess::wmanaged_external_buffer::segment_manager>* boostallocator;
static ShmManager & Instance()
void * getmemblock(size_t size)
bool isOperational() const
void printSegInfo() const
bool readyToAllocate() const
bool isPointerOk(void *ptr) const
void freememblock(void *, std::size_t=1)
bool attachToGlobalSegment()
bool createGlobalSegment(int nsubsegments=1)
constexpr size_t SHMPOOLSIZE
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
Common utility functions.