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

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


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

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

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

Методы
МетодОписание
ReadСоздает поток чтения, ассоциированный с накопителем данных IContiguousDataStorageInput, в позиции, связанной с началом данных.
ReadAtСоздает поток чтения, связанный с накопителем данных IContiguousDataStorageInput, в заданной параметрически позиции в накопителе.
GetElementCountВозвращает количество элементов данных в накопителе.
GetByteSizeВозвращает байтовый размер данных в накопителе.
GetMaxByteSizeВозвращает максимально допустимый байтовый размер данных в накопителе.
Наследует открыто
КлассОписание
Базовый интерфейс накопителя данных.

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

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

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

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

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

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