IConsequentDataStorageInput: различия между версиями
Строка 13: | Строка 13: | ||
[[Файл:IConsequentDataStorage-access.svg|500px|thumb|right|Пример последовательного доступа к данным.]] | [[Файл:IConsequentDataStorage-access.svg|500px|thumb|right|Пример последовательного доступа к данным.]] | ||
На рисунке справа показана возможная реализация интерфейса [[IConsequentDataStorageInput]]. Чтение осуществляется с использованием двух ''разных'' потоков чтения - <tt>is1</tt> и <tt>is2</tt> - но ассоциированных с одной и той же реализацией [[IConsequentDataStorageInput]]. Сначала осуществляется чтение с использованием <tt>is1</tt>, затем - <tt>is2</tt>, затем - снова <tt>is1</tt>. Аналогично осуществляется запись - с использованием двух разных потоков записи - <tt>os1</tt> и <tt>os2</tt>. Эти потоки агрегируются той же реализацией, что и потоки чтения (но получены с использованием иного интерфейса, например, IConsequentDataStorageOutput). То, к какому блоку данных осуществляется доступ, определяется очередностью чтения и записи. | На рисунке справа показана возможная реализация интерфейса [[IConsequentDataStorageInput]]. Чтение осуществляется с использованием двух ''разных'' потоков чтения - <tt>is1</tt> и <tt>is2</tt> - но ассоциированных с одной и той же реализацией [[IConsequentDataStorageInput]]. Сначала осуществляется чтение с использованием <tt>is1</tt>, затем - <tt>is2</tt>, затем - снова <tt>is1</tt>. Аналогично осуществляется запись - с использованием двух разных потоков записи - <tt>os1</tt> и <tt>os2</tt>. Эти потоки агрегируются той же реализацией последовательного накопителя данных, что и потоки чтения (но получены с использованием иного интерфейса, например, IConsequentDataStorageOutput). То, к какому блоку данных осуществляется доступ, определяется очередностью чтения и записи. |
Версия 18:32, 14 августа 2019
Интерфейс накопителя последовательно расположенных данных только для чтения.
Метод | Описание |
---|---|
Read | Создает поток чтения, связанный с накопителем данных. |
Класс | Описание |
---|---|
Базовый интерфейс накопителя данных. |
- См. также
IConsequentDataStorageOutput Интерфейс записи в накопитель последовательно расположенных данных. IConsequentDataStorage Интерфейс для чтения и записи в накопитель последовательно расположенных данных. ConsequentDataStorageInputRef Ссылочный адаптер, определенный над типом const IConsequentDataStorageInput
.ConsequentDataStorageInputOwn Владеющий адаптер, определенный над интерфейсом типом const IConsequentDataStorageInput
.
Блоки данных накопителя адресуются последовательно, один-за другим. Однородность данных и произвольный доступ не гарантируются.
При наличии множества потоков ввода/вывода из накопителя изменения, выполненные с использованием одного экземпляра потока могут приводить к изменениям в адресации, выполняемой другими экземплярами.
На рисунке справа показана возможная реализация интерфейса IConsequentDataStorageInput. Чтение осуществляется с использованием двух разных потоков чтения - is1 и is2 - но ассоциированных с одной и той же реализацией IConsequentDataStorageInput. Сначала осуществляется чтение с использованием is1, затем - is2, затем - снова is1. Аналогично осуществляется запись - с использованием двух разных потоков записи - os1 и os2. Эти потоки агрегируются той же реализацией последовательного накопителя данных, что и потоки чтения (но получены с использованием иного интерфейса, например, IConsequentDataStorageOutput). То, к какому блоку данных осуществляется доступ, определяется очередностью чтения и записи.