IInMemoryDataStorage::ReleaseBufferOwnership: различия между версиями
Перейти к навигации
Перейти к поиску
(Исправление для нулевого кода return_code_t и включение PLATFORM_NATIVE_CALLING_CONVENTION в интерфейсы.) |
|||
(не показана 1 промежуточная версия этого же участника) | |||
Строка 1: | Строка 1: | ||
{{function_begin | return_code_t PLATFORM_NATIVE_CALLING_CONVENTION ReleaseBufferOwnership( | {{function_begin|return_code_t PLATFORM_NATIVE_CALLING_CONVENTION ReleaseBufferOwnership(void** ppBuf, std::size_t* pcbBuf, IAllocator** ppAlloc) noexcept;|{{IInMemoryDataStorage::ReleaseBufferOwnership brief}}}} | ||
{{function_paramlist begin}} | {{function_paramlist begin}} | ||
{{function_paramlist add|ppBuf|.|paramdir=[out]}} | {{function_paramlist add|ppBuf|Указатель, принимающий адрес буфера, которым до вызова управлял накопитель. Реализации могут возвращать {{cpp_nullptr}}, если они не владели буфером, например, если они ни содержали данных до вызова метода [[IInMemoryDataStorage::ReleaseBufferOwnership|ReleaseBufferOwnership]]. В этом случае значение {{param|*pcbBuf}} на выходе будет равно нулю, а возвращенный адрес не должен подвергаться освобождению.|paramdir=[out]}} | ||
{{function_paramlist add|pcbBuf|.|paramdir=[out]}} | {{function_paramlist add|pcbBuf|Опциональный указатель, который, если он не равен {{cpp_nullptr}}, принимает размер буфера, возвращаемого через {{param|ppBuf}}, в байтах.|paramdir=[out]}} | ||
{{function_paramlist add|ppAlloc|.|paramdir=[out]}} | {{function_paramlist add|ppAlloc|Опциональный указатель, который принимает адрес менеджера памяти с интерфейсом [[IAllocator]], который должен быть использован клиентом для освобождения буфера, возвращаемого через {{param|ppBuf}}, по окончанию использования. Указатель может быть равен {{cpp_nullptr}}, только при разделении используемого экземпляра менеджера памяти между клиентом и накопителем {{cpp_this}}: например, если накопитель {{cpp_this}} был создан в результате вызова функции [[CreateInMemoryPreallocatedBinaryDataStorage]].|paramdir=[out]}} | ||
{{function_paramlist end}} | {{function_paramlist end}} | ||
{{function_return_value|32-битовый беззнаковый целый код ошибки, который в случае успешного выполнения неотрицателен.}} | {{function_return_value|32-битовый беззнаковый целый код ошибки, который в случае успешного выполнения неотрицателен.}} | ||
{{function_end}} | {{function_end}} |
Текущая версия на 23:57, 16 августа 2019
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-битовый беззнаковый целый код ошибки, который в случае успешного выполнения неотрицателен.