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

Материал из CAMaaS preliminary wiki
Перейти к навигации Перейти к поиску
м
Строка 6: Строка 6:
[[Файл:IAssociativeDataStorage-relations.png|800px|thumb|right|Отношения интерфейса [[IAssociativeDataStorage]]. Сплошными стрелками показано наследование. Пунктиром с подписью "r" показана поддерживаемость реализацией и приводимость с помощью [[IDataStorage::RepresentAs]].]]
[[Файл:IAssociativeDataStorage-relations.png|800px|thumb|right|Отношения интерфейса [[IAssociativeDataStorage]]. Сплошными стрелками показано наследование. Пунктиром с подписью "r" показана поддерживаемость реализацией и приводимость с помощью [[IDataStorage::RepresentAs]].]]


Чтение и запись значений, ассоциированных с известными ключами могут быть осуществлены с помощью метода [[IAssociativeDataStorage::FindNode|FindNode]] с приведением интерфейса соответствующих накопителей и получением их потоков данных для чтения и записи. Этой процедуре аналогичны вызовы наследуемых методов [[IArbitrarilyAccessedDataStorage::ReadOf|ReadOf]] и [[IArbitrarilyAccessedDataStorage::WriteOf|WriteOf]] интерфейса [[IArbitrarilyAccessedDataStorage]], которые позволяют получить потоки чтения или записи за один вызов.
Чтение и запись значений, ассоциированных с известными ключами, могут быть осуществлены с помощью метода [[IAssociativeDataStorage::FindNode|FindNode]] с приведением интерфейса соответствующих накопителей и получением их потоков данных для чтения и записи. Этой процедуре аналогичны вызовы наследуемых методов [[IArbitrarilyAccessedDataStorage::ReadOf|ReadOf]] и [[IArbitrarilyAccessedDataStorage::WriteOf|WriteOf]] интерфейса [[IArbitrarilyAccessedDataStorage]], которые позволяют получить потоки чтения или записи за один вызов.


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

Версия 18:06, 18 августа 2019

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

Методы
МетодОписание
FindNodeОсуществляет поиск значения по ключу и возвращает реализацию интерфейса IDataStorage, ассоциированного с хранилищем значения.
CreateNodeСоздает новый пустой узел ассоциативного хранилища данных.
DeleteNodeУделяет узел ассоциативного хранилища данных, который ассоциирован с заданным ключом.
Наследует открыто
КлассОписание
Интерфейс для чтения и записи в накопитель с произвольной адресацией.

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

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

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

Чтение и запись значений, ассоциированных с известными ключами, могут быть осуществлены с помощью метода FindNode с приведением интерфейса соответствующих накопителей и получением их потоков данных для чтения и записи. Этой процедуре аналогичны вызовы наследуемых методов ReadOf и WriteOf интерфейса IArbitrarilyAccessedDataStorage, которые позволяют получить потоки чтения или записи за один вызов.

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

Примером реализации данного интерфейса может быть шаблон CAssociativeDataStorage, специализированный для типов IniBasedAssociativeDataStorageImplementation и InMemoryAssociativeDataStorageImplementation.

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

См. также
IAssociativeDataStorageInputИнтерфейс для чтения из ассоциативного накопителя с использованием понятия узлов, адресуемых ключами.
IAssociativeDataStorageOutputИнтерфейс для записи в ассоциативный накопитель с использованием понятия узлов, адресуемых ключами.
AssociativeDataStorageRefСсылочный адаптер, определенный над интерфейсом IAssociativeDataStorage.
AssociativeDataStorageOwnВладеющий адаптер, определенный над интерфейсом IAssociativeDataStorage.