IInMemoryDataStorage::ReleaseBufferOwnership

Материал из CAMaaS preliminary wiki
Перейти к навигации Перейти к поиску
return_code_t PLATFORM_NATIVE_CALLING_CONVENTION ReleaseBufferOwnership(void** ppBuf, std::size_t* pcbBuf, IAllocator** ppAlloc) noexcept;

Возвращает управляемый накопителем буфер данных в памяти с передачей владения буфером клиенту.

Параметры
[out]ppBufУказатель, принимающий адрес буфера, которым до вызова управлял накопитель. Реализации могут возвращать nullptr, если они не владели буфером, например, если они ни содержали данных до вызова метода ReleaseBufferOwnership. В этом случае значение *pcbBuf на выходе будет равно нулю, а возвращенный адрес не должен подвергаться освобождению.
[out]pcbBufОпциональный указатель, который, если он не равен nullptr, принимает размер буфера, возвращаемого через ppBuf, в байтах.
[out]ppAllocОпциональный указатель, который принимает адрес менеджера памяти с интерфейсом IAllocator, который должен быть использован клиентом для освобождения буфера, возвращаемого через ppBuf, по окончанию использования. Указатель может быть равен nullptr, только при разделении используемого экземпляра менеджера памяти между клиентом и накопителем this: например, если накопитель this был создан в результате вызова функции CreateInMemoryPreallocatedBinaryDataStorage.
Возвращаемое значение:
32-битовый беззнаковый целый код ошибки, который в случае успешного выполнения неотрицателен.