Ада-95. Компилятор GNAT



         

Потоки ввода/вывода - часть 6


Предопределенные атрибуты 'Read и 'Write

используют операции Read и Write

ассоциированного с ними потока, и пользователь может описывать атрибуты одинаковым образом.

Примечательно, что параметр Stream для корневого типа имеет тип Root_Stream_Type, тогда как атрибут - это ссылочный тип обозначающий соответствующий класс.

Таким образом, такой атрибут, определяемый пользователем, должен будет выполнять подходящее разыменование:

procedure My_Write(Stream : access Streams.Root_Stream_Type'Class; Item : T) is

begin

. . . -- преобразование значений в потоковые элементы Streams.Write(Stream.all, ...); -- диспетчеризации (перенаправления) вызова end My_Write;

В заключение рассмотрения потоков Ады заметим что Ada.Stream_IO

может быть использован для осуществления индексированного доступа.

Это возможно, поскольку файл структурирован как последовательность потоковых элементов.

Таким образом, индексированный доступ работает в терминах потоковых элементов подобно тому как работает Direct_IO в терминах элементов типа.

Это значит, что индекс может быть прочитан и переустановлен.

Процедуры Read и Write выполняют обработку относительно текущего значения индекса, также существует альтернативная процедура Read

которая стартует согласно указанного значения индекса.

Процедуры Read и Write (которые используют файловый параметр) точно соответствуют диспетчеризуемым (перенаправляемым) операциям ассоциированного потока.




Содержание  Назад  Вперед