IInMemoryDataStorageInput

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

Интерфейс для чтения данных из накопителя, связанного с буфером в памяти.

Методы
МетодОписание
GetPtrВозвращает адрес управляемого накопителем буфера данных в памяти.
Наследует открыто
КлассОписание
Интерфейс для чтения из накопителя последовательно расположенных и однородных данных.

Данные накопителя с интерфейсом IInMemoryDataStorageInput физически располагаются в памяти машины и могут быть адресованы прямо с использованием указателей C и ссылок C++. Такой накопитель предполагает произвольный доступ к элементам данных, размер и семантика которых определяются реализацией. Следовательно, налагается требование к однородности элементов в памяти, которыми, как минимум, могут быть байты.

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

Сложность доступа к элементам буфера постоянна.

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

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

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

См. также
IInMemoryDataStorageИнтерфейс для чтения и записи данных в накопитель, связанный с буфером в памяти.
InMemoryDataStorageInputRefСсылочный адаптер, определенный над интерфейсом IInMemoryDataStorageInput.
InMemoryDataStorageInputOwnВладеющий адаптер, определенный над интерфейсом IInMemoryDataStorageInput.