IAssociativeDataStorage: различия между версиями
м |
|||
Строка 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.
Интерфейс не налагает требований по сложности доступа к узлам, семантике, размеру, однородности и уникальности ключей, а также реализациям накопителей, которые ассоциированы с ключами.

Чтение и запись значений, ассоциированных с известными ключами, могут быть осуществлены с помощью метода FindNode с приведением интерфейса соответствующих накопителей и получением их потоков данных для чтения и записи. Этой процедуре аналогичны вызовы наследуемых методов ReadOf и WriteOf интерфейса IArbitrarilyAccessedDataStorage, которые позволяют получить потоки чтения или записи за один вызов.
Примером детализации может являться накопитель IContiguousDataStorage смежных данных, адресуемых индексно так, что целочисленный индекс является ключом методов чтения и записи.
Примером реализации данного интерфейса может быть шаблон CAssociativeDataStorage, специализированный для типов IniBasedAssociativeDataStorageImplementation и InMemoryAssociativeDataStorageImplementation.
Реализация накопителя, которая поддерживает интерфейс IAssociativeDataStorage, также поддерживает интерфейсы IAssociativeDataStorageInput и IAssociativeDataStorageOutput, которые доступны через использование метода IDataStorage::RepresentAs, вызываемого над this.
- См. также
IAssociativeDataStorageInput Интерфейс для чтения из ассоциативного накопителя с использованием понятия узлов, адресуемых ключами. IAssociativeDataStorageOutput Интерфейс для записи в ассоциативный накопитель с использованием понятия узлов, адресуемых ключами. AssociativeDataStorageRef Ссылочный адаптер, определенный над интерфейсом IAssociativeDataStorage. AssociativeDataStorageOwn Владеющий адаптер, определенный над интерфейсом IAssociativeDataStorage.