IAssociativeDataStorage: различия между версиями
Ninok2801 (обсуждение | вклад) (Новая страница: «{{IAssociativeDataStorage_brief}} {{IAssociativeDataStorage methods|Собственные методы}}») |
|||
(не показаны 2 промежуточные версии этого же участника) | |||
Строка 1: | Строка 1: | ||
{{ | {{interface|IAssociativeDataStorage}} | ||
Интерфейс [[IAssociativeDataStorage]] реализуется накопителем, который ассоциирует ключи с узлами. Каждый узел, в свою очередь, связан с собственным накопителем данных [[IDataStorage]], доступ к которому осуществляется с использованием методов интерфейса [[IAssociativeDataStorage]]. | |||
{{ | Интерфейс не налагает требований по сложности доступа к узлам, семантике, размеру, однородности и уникальности ключей, а также реализациям накопителей, которые ассоциированы с ключами. | ||
[[Файл:IAssociativeDataStorage-relations.png|800px|thumb|right|Отношения интерфейса [[IAssociativeDataStorage]]. Сплошными стрелками показано наследование. Пунктиром с подписью "r" показана поддерживаемость реализацией и приводимость с помощью [[IDataStorage::RepresentAs]].]] | |||
Чтение и запись значений, ассоциированных с известными ключами, могут быть осуществлены с помощью метода [[IAssociativeDataStorage::FindNode|FindNode]] с приведением интерфейса соответствующих накопителей и получением их потоков данных для чтения и записи. Этой процедуре аналогичны вызовы наследуемых методов [[IArbitrarilyAccessedDataStorage::ReadOf|ReadOf]] и [[IArbitrarilyAccessedDataStorage::WriteOf|WriteOf]] интерфейса [[IArbitrarilyAccessedDataStorage]], которые позволяют получить потоки чтения или записи за один вызов. | |||
Примером реализации данного интерфейса может быть шаблон [[CAssociativeDataStorage]], специализированный для типов [[IniBasedAssociativeDataStorageImplementation]] и [[InMemoryAssociativeDataStorageImplementation]]. | |||
Реализация накопителя, которая поддерживает интерфейс [[IAssociativeDataStorage]], также поддерживает интерфейсы [[IAssociativeDataStorageInput]] и [[IAssociativeDataStorageOutput]], которые доступны через использование метода [[IDataStorage::RepresentAs]], вызываемого над {{cpp_this}}. | |||
{{sa_list_begin}} | |||
{{sa_list_add|IAssociativeDataStorageInput}} | |||
{{sa_list_add|IAssociativeDataStorageOutput}} | |||
{{sa_list_add|AssociativeDataStorageRef}} | |||
{{sa_list_add|AssociativeDataStorageOwn}} | |||
{{sa_list_end}} |
Текущая версия на 18:09, 18 августа 2019
Интерфейс для чтения и записи в ассоциативный накопитель с использованием понятия узлов, адресуемых ключами.
Метод | Описание |
---|---|
FindNode | Осуществляет поиск значения по ключу и возвращает реализацию интерфейса IDataStorage, ассоциированного с хранилищем значения. |
CreateNode | Создает новый пустой узел ассоциативного хранилища данных. |
DeleteNode | Уделяет узел ассоциативного хранилища данных, который ассоциирован с заданным ключом. |
Класс | Описание |
---|---|
Интерфейс для чтения и записи в накопитель с произвольной адресацией. |
Интерфейс IAssociativeDataStorage реализуется накопителем, который ассоциирует ключи с узлами. Каждый узел, в свою очередь, связан с собственным накопителем данных IDataStorage, доступ к которому осуществляется с использованием методов интерфейса IAssociativeDataStorage.
Интерфейс не налагает требований по сложности доступа к узлам, семантике, размеру, однородности и уникальности ключей, а также реализациям накопителей, которые ассоциированы с ключами.

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