![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Class template poolBoost , Boost.Pool , Header <boost/pool/poolfwd.hpp>
|
указатель для хранения. |
подробности::PODptr<size_type>find_PODvoid*constchunk]const;находит, из чего был выделен POD в списке 'chunk'.
найдите, из какой памяти PODptr состоит этот кусок.
Возвращается: | PODptr, который удерживает этот кусок. |
size_typealloc_sizeconst;
Расчетный размер кусков памяти, которые будут выделены этим Бассейном.
Возврат: | выделенный размер. |
pool
protected static functionsстатическийбоолявляется_отпустота*консткусочек,чарконстi,констконстразмер_типразмер_i;размер_i;[
Возврат ложный, если кусок был выделен из какого-либо другого пула, или может быть возвращен в результате будущего распределения из какого-либо другого пула. В противном случае обратная стоимость бессмысленна.
Обратите внимание, что эта функция не может использоваться для надежной проверки случайных значений указателей.
Параметры: |
| ||||||||
Возврат: | верно, если кусок был выделен или может быть возвращен. в результате будущего распределения. |
статическийпустота&следующийпустотаконстptr;
Возвращение: | Пойнтер отошел от дел. (Предоставляется и используется для удобства чтения кода :) |
pool
public member functionsboolrelease_memory;
пул должен быть заказан. Освободите каждый блок памяти, который не имеет выделенных кусков.
Возвращение: | истинно, если по меньшей мере один блок памяти был освобожден. |
boolpurge_memory;
пул должен быть заказан. Освободите каждый блок памяти.
Эта функция отменяет любые указатели, ранее возвращенные функциями распределения t.
Возврат: | верно, если был освобожден по меньшей мере один блок памяти. |
size_typeget_next_sizeconst;
Число фрагментов для запроса от системы в следующий раз, когда объекту необходимо выделить системную память. Это значение никогда не должно быть 0.
Возврат: |
voidset_next_sizeconstsize_typennext_size;
Установите количество фрагментов для запроса от системы в следующий раз, когда объекту необходимо выделить системную память. Это значение никогда не должно устанавливаться на 0.
Возврат: | nnext_size. |
size_typeget_max_sizeconst;
max_size. |
voidset_max_sizeconstsize_typenmax_size;
Установите max_size.
size_typeget_requested_sizeconst;
запрашиваемый размер передан конструктору. (Это значение не изменится при жизни объекта бассейна.)
void*malloc;
Выделяет часть памяти. Поиск в списке блоков памяти для блока, который имеет свободный кусок, и возвращает этот свободный кусок, если он найден. В противном случае, создает новый блок памяти, добавляет свой бесплатный список в бесплатный список пула,
Возвращает: | свободный кусок от этого блока. Если новый блок памяти не может быть выделен, возвращается 0. Amortized O(1). |
void*заказал_malloc;
Как и Маллок, только сливает свободные списки, чтобы сохранить порядок. Амортизированный O(1).
Возвращает: | свободный кусок от этого блока. Если новый блок памяти не может быть выделен, возвращается 0. Amortized O(1). |
void*ordered_mallocsize_typen;
Получает адрес кусочка n, выделяя новую память, если она еще не доступна.
Возвращение: | Адрес куска n при выделении ок. 0, если недостаточно памяти для n кусков. |
voidfreevoid*constchunk;
Как и malloc, выделяет достаточное количество смежных кусков для покрытия байтов n * запрашиваемого размера. Amortized O(n).
Выделяет часть памяти. Обратите внимание, что кусочек не может быть 0. O(1).
Чанк должен быть ранее возвращен t.malloc() или t.ordered_malloc(). Допустим, что chunk на самом деле относится к блоку кусков, охватывающих байты n * partition_sz. Располагает каждый кусок в этом блоке. Обратите внимание, что кусочек может не быть 0.
Возвращает: | свободный кусок от этого блока. Если новый блок памяти не может быть выделен, возвращается 0. Amortized O(1). |
voidorder_freevoid*constchunk;
То же самое, что и выше, но с сохранением порядка.
Обратите внимание, что кусочек не может быть 0. O(N) относительно размера бесплатного списка. Кусок должен быть ранее возвращен t.malloc() или t.ordered_malloc().
voidfreevoid*constchunks,constsize_typen;
Предполагает, что chunk фактически относится к блоку chunks.
кусочек должен был быть ранее возвращен t.ordered_malloc(n), охватывающим n* partition_sz байты. Выделите каждый кусок в этом блоке. Обратите внимание, что кусочек может не быть 0. O(n).
voidorderd_freevoid*constchunks,constsize_typen];
Предполагает, что chunk фактически относится к блоку из кусков, охватывающих n * partition_sz байтов; распределяет каждый кусок в этом блоке.
Обратите внимание, что кусочек может не быть 0. Сохранение порядка. O(N + n) где N - размер свободного списка. Кусок должен быть ранее возвращен t.malloc() или t.ordered_malloc().
boolis_fromvoid*constchunkconst;
Возвращение:
Возвращается истинно, если кусок был выделен из u или может быть возвращен в результате будущего распределения из u. Возврат ложный, если кусок был выделен из какого-либо другого пула или может быть возвращен в результате будущего распределения из какого-либо другого пула. В противном случае обратная стоимость бессмысленна. Обратите внимание, что эта функция не может использоваться для надежного тестирования случайных значений указателей.
Статья Class template pool раздела Boost.Pool Header <boost/pool/poolfwd.hpp> может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
:: Главная :: Header <boost/pool/poolfwd.hpp> ::
реклама |