CreateInMemoryPreallocatedBinaryDataStorage

Материал из CAMaaS preliminary wiki
Перейти к навигации Перейти к поиску
 return_code_t PLATFORM_NATIVE_CALLING_CONVENTION CreateInMemoryPreallocatedBinaryDataStorage(void* pBuffer, std::size_t cbBuffer, bool fOwnBuffer, const IAllocator* pAlloc, IInMemoryDataStorage** ppDataStorage) noexcept;

Создает накопитель данных на основе заранее выделенного буфера памяти.

Параметры
[in]pBufferИспользуемый буфер памяти.
cbBufferРазмер буфера pBuffer в байтах.
fOwnBufferФлаг переноса владения буфером. Если флаг сброшен, управление временем жизни буфера осуществляется клиентом функции. В этом случае параметр pAlloc игнорируется. Если же флаг установлен, владение буфером переносится на создаваемый накопитель данных. Такой накопитель при собственном уничтожении гарантированно освобождает буфер, используя предоставленный параметром pAlloc менеджер памяти или, если pAlloc установлен в NULL, менеджер, созданный с помощью функции CreateDefaultAllocator.
[in]pAllocОпционально задаваемый менеджер памяти, который используется при переноса владения буфером на создаваемый накопитель данных. Если параметр задан, накопитель вызывает его метод Clone и получает собственный экземпляр менеджера, т.е. клиент функции CreateInMemoryPreallocatedBinaryDataStorage остается ответственным за закрытие менеджера pAlloc. Если же параметр установлен в NULL, используется менеджер, возвращаемый функцией CreateDefaultAllocator.
[out]ppDataStorageУказатель, который на выходе принимает адрес созданного экземпляра источника данных. В случае ошибки выходное значение устанавливается в 0
Возвращаемое значение:
32-битовый целый код ошибки, который в случае успешного выполнения неотрицателен.