19#ifndef COMMON_UTILS_INCLUDE_COMMONUTILS_SHMALLOCATOR_H_
20#define COMMON_UTILS_INCLUDE_COMMONUTILS_SHMALLOCATOR_H_
50 template <typename T2>
65 if (instance.readyToAllocate()) {
73 if (instance.readyToAllocate()) {
85 template <
class U,
class... Args>
88 ::new ((
void*)p) U(std::forward<Args>(args)...);
95 template <
typename T2>
111 using vector_t = std::vector<T>;
113 if (instance.isOperational() && instance.readyToAllocate()) {
114 auto placement = instance.hasSegment() ? instance.getmemblock(
sizeof(vector_t)) : malloc(
sizeof(vector_t));
115 return new (placement) vector_t;
125 using vector_t = std::vector<T>;
129 ptr->shrink_to_fit();
130 if (instance.hasSegment() && instance.isPointerOk(
ptr)) {
131 instance.freememblock(
ptr);
const_pointer adress(const_reference r) const
const T & const_reference
~ShmAllocator() noexcept=default
pointer adress(reference r)
void deallocate(pointer p, size_type s)
std::ptrdiff_t difference_type
bool operator==(const ShmAllocator< T > &) const
void construct(pointer p, const value_type &value)
ShmAllocator() noexcept=default
bool operator!=(const ShmAllocator< T > &other) const
pointer allocate(size_type n)
void construct(U *p, Args &&... args)
size_type max_size() const noexcept
static ShmManager & Instance()
void * getmemblock(size_t size)
void freememblock(void *, std::size_t=1)
GLsizei const GLfloat * value
void freeSimVector(std::vector< T > *ptr)
std::vector< T > * createSimVector()
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
Common utility functions.
VectorOfTObjectPtrs other