ArbitrarilyAccessedDataStorageOutputRef::write

Материал из CAMaaS preliminary wiki
Перейти к навигации Перейти к поиску
OutputStreamOwn write(const void* pKey, std::uint32_t cbKey); //1
OutputStreamOwn write(const T* pKey, std::uint32_t cbKey); //2
template <class ByteContainer>
OutputStreamOwn write(const ByteContainer& key); //3
template <class char_t, class traits_t, class alloc_t>
OutputStreamOwn write(const std::basic_string<char_t, traits_t, alloc_t>& key); //4
OutputStreamOwn write(const char* pszKey);

Создает поток для записи данных, ассоциируемых с указанным параметрически ключом, в накопитель ArbitrarilyAccessedDataStorageOutputRef.

Параметры шаблона
TТип элемента ключа pKey в перегрузке 2. Данный шаблон участвует в процедуре разрешения перегрузки, только если T является целочисленным байтовым типом.
ByteContainerТип контейнера байт, образующих данные ключа key в перегрузке 3. Шаблон 3 участвует в процедуре разрешения перегрузки, только если тип элемента контейнера, получаемый дедукцией типа, который образуется разыменовыванием результата вызова key.data(), является целочисленным байтовым типом.
char_tТип элемента строки-ключа key в перегрузке 4. В отличие от иных перегрузок метода write, тип char_t может не являться байтовым.
traits_tТип политики обработки CharTraits элементов char_t ключа в перегрузке 4. Тип используется только для дедукции типа параметра key в перегрузке 4 и игнорируется при делегировании вызова методу IArbitrarilyAccessedDataStorageOutput::WriteOf.
alloc_tТип менеджера памяти Allocator, используемого для управления временем жизни ключа key ключа в перегрузке 4. Тип используется только для дедукции типа параметра key в перегрузке 4 и игнорируется при делегировании вызова методу IArbitrarilyAccessedDataStorageOutput::WriteOf.
Параметры
[in]pKeyУказатель C, адресующий байты ключа в перегрузках 1 и 2 метода write.
cbKeyБайтовый размер ключа в перегрузках 1 и 2.
keyC++ контейнер с ключом. При использовании нестрокового контейнера в перегрузке 3 элементы контейнера key должны быть байтовыми. Этого требования не предъявляется при использовании перегрузки 4.
[in]pszKeyC-строка, завершающаяся терминальным нулем, задающая ключ при использовании для адресации данных перегрузки 5.
Возвращаемое значение:
Адаптер с владением OutputStreamOwn реализацией потока, который может быть использован для записи данных в накопитель. Конкретный тип потока и принимаемых накопителем данных определяется агрегируемой адаптером реализацией интерфейса IArbitrarilyAccessedDataStorageOutput.

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

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

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