IInMemoryDataStorageInput: различия между версиями
Ninok2801 (обсуждение | вклад) (Новая страница: «{{IInMemoryDataStorageInput_brief}} {{IInMemoryDataStorageInput methods|Собственные методы}}») |
|||
Строка 1: | Строка 1: | ||
{{ | {{interface|IInMemoryDataStorageInput}} | ||
Данные накопителя с интерфейсом [[IInMemoryDataStorageInput]] физически располагаются в памяти машины и могут быть адресованы прямо с использованием указателей C и ссылок C++. Такой накопитель предполагает произвольный доступ к элементам данных, размер и семантика которых определяются реализацией. Следовательно, налагается требование к однородности элементов в памяти, которыми, как минимум, могут быть байты. | |||
{{ | Для адресации элементов используются унаследованные методы [[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.

При использовании интерфейса IArbitrarilyAccessedDataStorageInput ключом будет являться беззнаковый целочисленный восьмибайтовый индекс требуемого блока данных аналогично тому, как это определено для наследуемого метода IContiguousDataStorageInput::ReadAt. Ключ является восьмибайтовым целым в том числе на платформах, на которых размер указателя не равен восьми байтам.
- См. также
IInMemoryDataStorage Интерфейс для чтения и записи данных в накопитель, связанный с буфером в памяти. InMemoryDataStorageInputRef Ссылочный адаптер, определенный над интерфейсом IInMemoryDataStorageInput. InMemoryDataStorageInputOwn Владеющий адаптер, определенный над интерфейсом IInMemoryDataStorageInput.