Class template segment_manager_base
boost::interprocess::segment_manager_base
Synopsis
Description
Этот объект является общественным базовым классом менеджера сегмента. Этот класс зависит только от алгоритма выделения памяти и реализует все функции выделения, не связанные с названными или уникальными объектами.
Сохранение ссылки наsegment_managerзаставляет класс держателя зависеть от типов индексов и типов символов. Когда такая зависимость нежелательна и нужны только анонимные и необработанные выделения,segment_manager_baseявляется правильным ответом.
segment_manager_base
public
construct/copy/destruct
- <
segment_manager_base(size_typesz,size_typereserved_bytes);
>Конструктор<segment_manager_base
>
«размера» — это размер сегмента памяти, где строится базовый менеджер сегмента.
«reserved_bytes» — это количество байтов после окончания самого объекта алгоритма памяти, которое алгоритм памяти исключит из динамического распределения
segment_manager_base
public member functions
- <
size_typeget_size()const;
>Возвращает размер сегмента памяти
- <
size_typeget_free_memory()const;
>Возвращает количество свободных байтов сегмента памяти
- <
void*allocate(size_typenbytes,conststd::nothrow_t&);
>Выделяет байты nbytes. Эта функция используется только в односегментном управлении. Никогда не бросайте
- <
void*allocate(size_typenbytes);
>Выделяет байты. Неудачи<boost::interprocess::bad_alloc
>
- <
void*allocate_aligned(size_typenbytes,size_typealignment,
conststd::nothrow_t&);
>Выделяет байты. Эта функция используется только в односегментном управлении. Никогда не бросайте
- <
void*allocate_aligned(size_typenbytes,size_typealignment);
>Выделяет байты nbytes. Эта функция используется только в односегментном управлении. Когда не получается<bad_alloc
>
- <
voiddeallocate(void*addr);
>Выделяет байты, выделенные с выделением/выделением_многие(), указанные с помощью добавления
- <
voidgrow(size_typeextra_size);
>Увеличивает управляемую память в байтах дополнительного размера. Это работает только с односегментным управлением.
- <
voidshrink_to_fit();
>Уменьшение управляемой памяти до минимума. Это работает только с односегментным управлением.
- <
boolall_memory_deallocated();
>Возвращает результат функции «all_memory_deallocated()» используемого алгоритма памяти
- <
boolcheck_sanity();
>Возвращает результат функции «check_sanity()» используемого алгоритма памяти
- <
voidzero_free_memory();
>Записывает на ноль свободную память (память еще не выделена) алгоритма памяти
- <
size_typesize(constvoid*ptr)const;
>Возвращает размер буфера, ранее выделенного заостренным ptr.
segment_manager_base
public static functions
- <
staticsize_typeget_min_size(size_typesize);
>Получает минимальный размер, необходимый менеджеру сегмента
segment_manager_base
public
public data members
- <
staticconstsize_typePayloadPerAllocation;
>Эта постоянная указывает размер полезной нагрузки, связанный с каждым выделением алгоритма памяти
.