IContiguousDataStorage

Материал из CAMaaS preliminary wiki
Перейти к навигации Перейти к поиску

Интерфейс для чтения и записи в накопитель последовательно расположенных и однородных данных.

Методы
МетодОписание
ReadСоздает поток чтения, ассоциированный с накопителем данных IContiguousDataStorage, в позиции, связанной с началом данных.
ReadAtСоздает поток чтения, связанный с накопителем данных IContiguousDataStorage, в заданной параметрически позиции в накопителе.
GetElementCountВозвращает количество элементов данных в накопителе.
GetByteSizeВозвращает байтовый размер данных в накопителе.
GetMaxByteSizeВозвращает максимально допустимый байтовый размер данных в накопителе.
WriteСоздает поток записи, ассоциированный с накопителем данных IContiguousDataStorage, в позиции, связанной с началом буфера накопителя.
WriteToСоздает поток записи, связанный с накопителем данных IContiguousDataStorage, в заданной параметрически позиции в накопителе.
EraseContentОчищает содержимое буфера, связанного с накопителем this.
DeleteBlockУдаляет блок данных указанной длины, имеющийся в накопителе в заданной позиции.
Наследует открыто
КлассОписание
Базовый интерфейс накопителя данных.

Данные накопителя данных с интерфейсом IContiguousDataStorage однородны и логически расположены последовательно. Разрешен произвольный доступ к данным с низкой (но определенной конкретно только для реализаций интерфейса) вычислительной сложностью. Данные адресуются целочисленными индексами.

Гарантируется, что любая реализация интерфейса IContiguousDataStorage будет также поддерживать интерфейсы IArbitrarilyAccessedDataStorage и IConsequentDataStorage, а также родственные им интерфейсы только для чтения или только для записи данных. Для получения указателей на эти интерфейсы необходимо использовать метод IDataStorage::RepresentAs, который наследуется интерфейсом IContiguousDataStorage.

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

При использовании интерфейса IArbitrarilyAccessedDataStorage ключом будет являться беззнаковый целочисленный восьмибайтовый индекс требуемого блока данных аналогично тому, как это определено для методов ReadAt и WriteTo.

При использовании интерфейса IConsequentDataStorage создаваемые методами чтения и записи потоки данных будут иметь независимые указатели на ассоциированные с этими потоками блоки данных. Данное уточнение снимает соответствующие ограничения интерфейса IConsequentDataStorage. Однако безопасность одновременного обращения к накопителю данных из множества потоков выполнения может гарантироваться только реализацией интерфейса IContiguousDataStorage.

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

См. также
IContiguousDataStorageInputИнтерфейс для чтения из накопителя последовательно расположенных и однородных данных.
IContiguousDataStorageOutputИнтерфейс для чтения и записи в накопитель последовательно расположенных и однородных данных.
ContiguousDataStorageRefСсылочный адаптер, определенный над интерфейсом IContiguousDataStorage.
ContiguousDataStorageOwnВладеющий адаптер, определенный над интерфейсом IContiguousDataStorage.