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

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


{{IArbitrarilyAccessedDataStorage methods|Собственные методы}}
Для получения доступа требуется знание ключа. Семантика и длина ключей могут быть различными для разных элементов доступа. Также различными могут быть типы потоков, ассоциированных с этими элементами и возвращаемых методами [[IArbitrarilyAccessedDataStorage::ReadOf|ReadOf]] и [[IArbitrarilyAccessedDataStorage::WriteOf|WriteOf]].
 
Типы ключей, потоков и ассоциированных с ключами данных определяются реализацией накопителя данных.
 
Примером детализации может являться накопитель [[IContiguousDataStorage]] смежных данных, адресуемых индексно так, что целочисленный индекс является ключом методов чтения и записи.
 
Ассоциативный накопитель данных [[IAssociativeDataStorage]], в отличие от [[IArbitrarilyAccessedDataStorage]], вводит понятие узла, который ассоциирован с собственным накопителем данных [[IDataStorage]], и позволяет отдельными методами искать, создавать и удалять узлы, данные которых адресуются с помощью методов [[IArbitrarilyAccessedDataStorage]].
 
Реализация накопителя, которая поддерживает интерфейс [[IArbitrarilyAccessedDataStorage]], также поддерживает интерфейсы [[IArbitrarilyAccessedDataStorageInput]] и [[IArbitrarilyAccessedDataStorageOutput]], которые доступны через использование метода [[IDataStorage::RepresentAs]], вызываемого над {{cpp_this}}.
{{sa_list_begin}}
{{sa_list_add|IArbitrarilyAccessedDataStorageInput}}
{{sa_list_add|IArbitrarilyAccessedDataStorageOutput}}
{{sa_list_add|ArbitrarilyAccessedDataStorageRef}}
{{sa_list_add|ArbitrarilyAccessedDataStorageOwn}}
{{sa_list_end}}

Текущая версия на 17:47, 18 августа 2019

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

Методы
МетодОписание
ReadOfВозвращает поток чтения данных из буфера, ассоциированного с заданным ключом.
WriteOfВозвращает поток записи данных в буфер, ассоциированный с ключом.
Наследует открыто
КлассОписание
Базовый интерфейс накопителя данных.

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

Для получения доступа требуется знание ключа. Семантика и длина ключей могут быть различными для разных элементов доступа. Также различными могут быть типы потоков, ассоциированных с этими элементами и возвращаемых методами ReadOf и WriteOf.

Типы ключей, потоков и ассоциированных с ключами данных определяются реализацией накопителя данных.

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

Ассоциативный накопитель данных IAssociativeDataStorage, в отличие от IArbitrarilyAccessedDataStorage, вводит понятие узла, который ассоциирован с собственным накопителем данных IDataStorage, и позволяет отдельными методами искать, создавать и удалять узлы, данные которых адресуются с помощью методов IArbitrarilyAccessedDataStorage.

Реализация накопителя, которая поддерживает интерфейс IArbitrarilyAccessedDataStorage, также поддерживает интерфейсы IArbitrarilyAccessedDataStorageInput и IArbitrarilyAccessedDataStorageOutput, которые доступны через использование метода IDataStorage::RepresentAs, вызываемого над this.

См. также
IArbitrarilyAccessedDataStorageInputИнтерфейс для чтения из накопителя с произвольной адресацией данных.
IArbitrarilyAccessedDataStorageOutputИнтерфейс для записи в накопитель с произвольной адресацией.
ArbitrarilyAccessedDataStorageRefСсылочный адаптер, определенный над интерфейсом IArbitrarilyAccessedDataStorage.
ArbitrarilyAccessedDataStorageOwnВладеющий адаптер, определенный над интерфейсом IArbitrarilyAccessedDataStorage.