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

Материал из CAMaaS preliminary wiki
Перейти к навигации Перейти к поиску
(Новая страница: «{{IContiguousDataStorageOutput_brief}} {{IContiguousDataStorageOutput methods|Собственные методы}}»)
 
Строка 1: Строка 1:
{{IContiguousDataStorageOutput_brief}}
{{interface|IContiguousDataStorageOutput}}
Данные накопителя данных с интерфейсом [[IContiguousDataStorageOutput]] однородны и логически расположены последовательно. Разрешен произвольный доступ к данным с низкой (но определенной конкретно только для реализаций интерфейса) вычислительной сложностью. Данные адресуются целочисленными индексами.


{{IContiguousDataStorageOutput methods|Собственные методы}}
Гарантируется, что любая реализация интерфейса [[IContiguousDataStorageOutput]] будет также поддерживать интерфейсы [[IArbitrarilyAccessedDataStorageOutput]] и [[IConsequentDataStorageOutput]]. Для получения указателей на эти интерфейсы необходимо использовать метод [[IDataStorage::RepresentAs]], который наследуется интерфейсом  [[IContiguousDataStorageOutput]].
 
[[Файл:IContiguousDataStorageOutput-relations.png|800px|thumb|right|Отношения интерфейса [[IContiguousDataStorageOutput]]. Сплошными стрелками показано наследование. Пунктирные ребра графа с подписью "r" показывают поддерживаемость реализацией и гарантированную приводимость с помощью [[IDataStorage::RepresentAs]] типа интерфейса в исходящей вершине графа к типу интерфейса во входящей вершине.]]
 
При использовании интерфейса [[IArbitrarilyAccessedDataStorageOutput]] ключом будет являться беззнаковый целочисленный восьмибайтовый индекс требуемого блока данных аналогично тому, как это определено для метода [[IContiguousDataStorageOutput::WriteTo|WriteTo]].
 
При использовании интерфейса [[IConsequentDataStorage]] создаваемые методами чтения и записи потоки данных будут иметь независимые указатели на ассоциированные с этими потоками блоки данных. Данное уточнение снимает соответствующие ограничения интерфейса [[IConsequentDataStorage]]. Однако безопасность одновременного обращения к накопителю данных из множества потоков выполнения может гарантироваться только реализацией интерфейсов [[IContiguousDataStorageInput]] и [[IContiguousDataStorageOutput]].
{{sa_list_begin}}
{{sa_list_add|IContiguousDataStorageInput}}
{{sa_list_add|IContiguousDataStorageOutput}}
{{sa_list_add|ContiguousDataStorageOutputRef}}
{{sa_list_add|ContiguousDataStorageOutputOwn}}
{{sa_list_end}}

Версия 20:35, 15 августа 2019

Интерфейс для чтения и записи в накопитель последовательно расположенных и однородных данных.

Методы
МетодОписание
WriteСоздает поток записи, ассоциированный с накопителем данных IContiguousDataStorageOutput, в позиции, связанной с началом буфера накопителя.
WriteToСоздает поток записи, связанный с накопителем данных IContiguousDataStorageOutput, в заданной параметрически позиции в накопителе.
GetMaxByteSizeВозвращает максимально допустимый байтовый размер данных в накопителе.
EraseContentОчищает содержимое буфера, связанного с накопителем this.
Наследует открыто
КлассОписание
Базовый интерфейс накопителя данных.

Данные накопителя данных с интерфейсом IContiguousDataStorageOutput однородны и логически расположены последовательно. Разрешен произвольный доступ к данным с низкой (но определенной конкретно только для реализаций интерфейса) вычислительной сложностью. Данные адресуются целочисленными индексами.

Гарантируется, что любая реализация интерфейса IContiguousDataStorageOutput будет также поддерживать интерфейсы IArbitrarilyAccessedDataStorageOutput и IConsequentDataStorageOutput. Для получения указателей на эти интерфейсы необходимо использовать метод IDataStorage::RepresentAs, который наследуется интерфейсом IContiguousDataStorageOutput.

Файл:IContiguousDataStorageOutput-relations.png
Отношения интерфейса IContiguousDataStorageOutput. Сплошными стрелками показано наследование. Пунктирные ребра графа с подписью "r" показывают поддерживаемость реализацией и гарантированную приводимость с помощью IDataStorage::RepresentAs типа интерфейса в исходящей вершине графа к типу интерфейса во входящей вершине.

При использовании интерфейса IArbitrarilyAccessedDataStorageOutput ключом будет являться беззнаковый целочисленный восьмибайтовый индекс требуемого блока данных аналогично тому, как это определено для метода WriteTo.

При использовании интерфейса IConsequentDataStorage создаваемые методами чтения и записи потоки данных будут иметь независимые указатели на ассоциированные с этими потоками блоки данных. Данное уточнение снимает соответствующие ограничения интерфейса IConsequentDataStorage. Однако безопасность одновременного обращения к накопителю данных из множества потоков выполнения может гарантироваться только реализацией интерфейсов IContiguousDataStorageInput и IContiguousDataStorageOutput.

См. также
IContiguousDataStorageInputИнтерфейс для чтения из накопителя последовательно расположенных и однородных данных.
IContiguousDataStorageOutputИнтерфейс для чтения и записи в накопитель последовательно расположенных и однородных данных.
ContiguousDataStorageOutputRefСсылочный адаптер, определенный над интерфейсом IContiguousDataStorageOutput.
ContiguousDataStorageOutputOwnВладеющий адаптер, определенный над интерфейсом IContiguousDataStorageOutput.