IArbitrarilyAccessedDataStorage::WriteOf: различия между версиями

Материал из CAMaaS preliminary wiki
Перейти к навигации Перейти к поиску
 
(не показаны 3 промежуточные версии этого же участника)
Строка 1: Строка 1:
{{function_begin | return_code_t PLATFORM_NATIVE_CALLING_CONVENTION WriteOf(bytecount_(cbKey) const void* pKey, std::uint32_t cbKey,  IOutputStream** ppStream) const noexcept; |{{IArbitrarilyAccessedDataStorageOutput::WriteOf brief}}}}
{{function_begin|return_code_t PLATFORM_NATIVE_CALLING_CONVENTION WriteOf(bytecount_(cbKey) const void* pKey, std::uint32_t cbKey,  IOutputStream** ppStream) const noexcept; |{{IArbitrarilyAccessedDataStorage::WriteOf brief}}}}
{{function_paramlist begin}}
{{function_paramlist begin}}
{{function_paramlist add|pKey|.|paramdir=[In]}}
{{function_paramlist add|pKey|Указатель на блок данных, задающих ключ.|paramdir=[In]}}
{{function_paramlist add|cbKey|.}}
{{function_paramlist add|cbKey|Байтовый размер ключа.}}
{{function_paramlist add|ppStream|.|paramdir=[out]}}
{{function_paramlist add|ppStream|Выходной буфер, принимающий адрес реализации потока записи данных, ассоциированных с ключом. После успешного вызова метода полученная реализация должна быть освобождена вызовом [[InterfaceBase::Release]] над <source inline lang="cpp">(*ppStream)</source>.  Тип потока и данных, необходимость существования ключа и требования уникальности определяются реализацией интерфейса [[IArbitrarilyAccessedDataStorage]].|paramdir=[out]}}
{{function_paramlist end}}
{{function_paramlist end}}
{{function_return_value|32-битовый беззнаковый целый код ошибки, который в случае успешного выполнения неотрицателен.}}
{{function_return_value|32-битовый беззнаковый целый код ошибки, который в случае успешного выполнения неотрицателен.}}
{{function_end}}
{{function_end}}
Интерфейс [[IArbitrarilyAccessedDataStorage]] и связанный с ним адаптер [[ArbitrarilyAccessedDataStorageRef]] не определяют поведение в следующих контекстах вызова методов записи данных, адресуемых ключом.
* Поведение в случае отсутствия в накопителе данных, ассоциированных с указанным ключом.
* Поведение в случае, когда накопитель содержит более чем одну ассоциацию с указанным ключом, то есть когда не выполняется (и не предъявляется) требование уникальности ключа.
* Локальность данных, ассоциированных с ключом.
Эти аспекты определяются более низкими уровнями компонентной и интерфейсной иерархии, как это делается, например, наследующим из [[IArbitrarilyAccessedDataStorage]] интерфейсом [[IAssociativeDataStorage]] и его адаптером [[AssociativeDataStorageRef]].

Текущая версия на 15:37, 15 августа 2019

return_code_t PLATFORM_NATIVE_CALLING_CONVENTION WriteOf(bytecount_(cbKey) const void* pKey, std::uint32_t cbKey,  IOutputStream** ppStream) const noexcept;

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

Параметры
[In]pKeyУказатель на блок данных, задающих ключ.
cbKeyБайтовый размер ключа.
[out]ppStreamВыходной буфер, принимающий адрес реализации потока записи данных, ассоциированных с ключом. После успешного вызова метода полученная реализация должна быть освобождена вызовом InterfaceBase::Release над (*ppStream). Тип потока и данных, необходимость существования ключа и требования уникальности определяются реализацией интерфейса IArbitrarilyAccessedDataStorage.
Возвращаемое значение:
32-битовый беззнаковый целый код ошибки, который в случае успешного выполнения неотрицателен.

Интерфейс IArbitrarilyAccessedDataStorage и связанный с ним адаптер ArbitrarilyAccessedDataStorageRef не определяют поведение в следующих контекстах вызова методов записи данных, адресуемых ключом.

  • Поведение в случае отсутствия в накопителе данных, ассоциированных с указанным ключом.
  • Поведение в случае, когда накопитель содержит более чем одну ассоциацию с указанным ключом, то есть когда не выполняется (и не предъявляется) требование уникальности ключа.
  • Локальность данных, ассоциированных с ключом.

Эти аспекты определяются более низкими уровнями компонентной и интерфейсной иерархии, как это делается, например, наследующим из IArbitrarilyAccessedDataStorage интерфейсом IAssociativeDataStorage и его адаптером AssociativeDataStorageRef.