IInMemoryDataStorageInput: различия между версиями

Материал из CAMaaS preliminary wiki
Перейти к навигации Перейти к поиску
(Новая страница: «{{IInMemoryDataStorageInput_brief}} {{IInMemoryDataStorageInput methods|Собственные методы}}»)
 
 
Строка 1: Строка 1:
{{IInMemoryDataStorageInput_brief}}
{{interface|IInMemoryDataStorageInput}}
Данные накопителя с интерфейсом [[IInMemoryDataStorageInput]] физически располагаются в памяти машины и могут быть адресованы прямо с использованием указателей C и ссылок C++.  Такой накопитель предполагает произвольный доступ к элементам данных, размер и семантика которых определяются реализацией.  Следовательно, налагается требование к однородности элементов в памяти, которыми, как минимум, могут быть байты.


{{IInMemoryDataStorageInput methods|Собственные методы}}
Для адресации элементов используются унаследованные методы [[IContiguousDataStorageInput]], а также собственный метод [[IInMemoryDataStorageInput::GetPtr|GetPtr]], позволяющий получить непосредственный адрес связанного с накопителем буфера в виде указателя C и размер этого буфера в байтах.
 
Сложность доступа к элементам буфера постоянна.
 
Гарантируется, что любая реализация интерфейса [[IInMemoryDataStorageInput]] будет также поддерживать интерфейсы [[IArbitrarilyAccessedDataStorageInput]] и [[IConsequentDataStorageInput]]. Для получения указателей на эти интерфейсы необходимо использовать метод [[IDataStorage::RepresentAs]], который наследуется интерфейсом  [[IInMemoryDataStorageInput]].
 
[[Файл:IInMemoryDataStorage-relations.png|800px|thumb|right|Отношения интерфейса [[IInMemoryDataStorageInput]]. Сплошными стрелками показано наследование. Пунктирные ребра графа с подписью "r" показывают поддерживаемость реализацией и гарантированную приводимость с помощью [[IDataStorage::RepresentAs]] типа интерфейса в исходящей вершине графа к типу интерфейса во входящей вершине.]]
 
При использовании интерфейса [[IArbitrarilyAccessedDataStorageInput]] ключом будет являться беззнаковый целочисленный восьмибайтовый индекс требуемого блока данных аналогично тому, как это определено для наследуемого метода [[IContiguousDataStorageInput::ReadAt]]. ''Ключ является восьмибайтовым целым в том числе на платформах, на которых размер указателя не равен восьми байтам''.
{{sa_list_begin}}
{{sa_list_add|IInMemoryDataStorage}}
{{sa_list_add|InMemoryDataStorageInputRef}}
{{sa_list_add|InMemoryDataStorageInputOwn}}
{{sa_list_end}}

Текущая версия на 00:14, 17 августа 2019

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

Методы
МетодОписание
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.