IContiguousDataStorage
Интерфейс для чтения и записи в накопитель последовательно расположенных и однородных данных.
Метод | Описание |
---|---|
Read | Создает поток чтения, ассоциированный с накопителем данных IContiguousDataStorage, в позиции, связанной с началом данных. |
ReadAt | Создает поток чтения, связанный с накопителем данных IContiguousDataStorage, в заданной параметрически позиции в накопителе. |
GetElementCount | Возвращает количество элементов данных в накопителе. |
GetByteSize | Возвращает байтовый размер данных в накопителе. |
GetMaxByteSize | Возвращает максимально допустимый байтовый размер данных в накопителе. |
Write | Создает поток записи, ассоциированный с накопителем данных IContiguousDataStorage, в позиции, связанной с началом буфера накопителя. |
WriteTo | Создает поток записи, связанный с накопителем данных IContiguousDataStorage, в заданной параметрически позиции в накопителе. |
EraseContent | Очищает содержимое буфера, связанного с накопителем this. |
DeleteBlock | Удаляет блок данных указанной длины, имеющийся в накопителе в заданной позиции. |
Класс | Описание |
---|---|
Базовый интерфейс накопителя данных. |
Данные накопителя данных с интерфейсом IContiguousDataStorage однородны и логически расположены последовательно. Разрешен произвольный доступ к данным с низкой (но определенной конкретно только для реализаций интерфейса) вычислительной сложностью. Данные адресуются целочисленными индексами.
Гарантируется, что любая реализация интерфейса IContiguousDataStorage будет также поддерживать интерфейсы IArbitrarilyAccessedDataStorage и IConsequentDataStorage, а также родственные им интерфейсы только для чтения или только для записи данных. Для получения указателей на эти интерфейсы необходимо использовать метод IDataStorage::RepresentAs, который наследуется интерфейсом IContiguousDataStorage.

При использовании интерфейса IArbitrarilyAccessedDataStorage ключом будет являться беззнаковый целочисленный восьмибайтовый индекс требуемого блока данных аналогично тому, как это определено для методов ReadAt и WriteTo.
При использовании интерфейса IConsequentDataStorage создаваемые методами чтения и записи потоки данных будут иметь независимые указатели на ассоциированные с этими потоками блоки данных. Данное уточнение снимает соответствующие ограничения интерфейса IConsequentDataStorage. Однако безопасность одновременного обращения к накопителю данных из множества потоков выполнения может гарантироваться только реализацией интерфейса IContiguousDataStorage.
Реализация накопителя, которая поддерживает интерфейс IContiguousDataStorage, также поддерживает интерфейсы IContiguousDataStorageInput и IContiguousDataStorageOutput, которые доступны через использование метода IDataStorage::RepresentAs, вызываемого над this.
- См. также
IContiguousDataStorageInput Интерфейс для чтения из накопителя последовательно расположенных и однородных данных. IContiguousDataStorageOutput Интерфейс для чтения и записи в накопитель последовательно расположенных и однородных данных. ContiguousDataStorageRef Ссылочный адаптер, определенный над интерфейсом IContiguousDataStorage. ContiguousDataStorageOwn Владеющий адаптер, определенный над интерфейсом IContiguousDataStorage.