Справочник по Ada 95
A.9 Универсальный пакет Storage_IO
Универсальный пакет Storage_IO предоставляет возможность чтения и записи в буфер в оперативной памяти. Этот универсальный пакет поддерживает создание пользовательских пакетов ввода-вывода.
Статическая семантика
Универсальный библиотечный пакет Storage_IO имеет следующее объявление:
with Ada.IO_Exceptions;
with System.Storage_Elements;
generic
type Element_Type is private;
package Ada.Storage_IO is
pragma Preelaborate(Storage_IO);
with System.Storage_Elements;
generic
type Element_Type is private;
package Ada.Storage_IO is
pragma Preelaborate(Storage_IO);
Buffer_Size : constant System.Storage_Elements.Storage_Count :=
определяется реализацией;
subtype Buffer_Type is
System.Storage_Elements.Storage_Array(1..Buffer_Size);
определяется реализацией;
subtype Buffer_Type is
System.Storage_Elements.Storage_Array(1..Buffer_Size);
-- Операции ввода-вывода
procedure Read (Buffer : in Buffer_Type; Item : out Element_Type);
procedure Write(Buffer : out Buffer_Type; Item : in Element_Type);
-- Исключение
Data_Error : exception renames IO_Exceptions.Data_Error;
end Ada.Storage_IO;
end Ada.Storage_IO;
В каждом случае константа Buffer_Size имеет значение, которое является размером (в элементах памяти) буфера, необходимого для представления содержимого объекта типа Element_Type, включая любые неявные уровни косвенности, используемые реализацией. Процедуры Read и Write пакета Storage_IO соответствуют процедурам Read и Write пакета Direct_IO (см. A.8.4), но содержимое параметра Item читается из или записывается в указанный Buffer, а не во внешний файл.
ПРИМЕЧАНИЯ
21 Буфер, используемый для Storage_IO, хранит только один элемент за раз; внешний файл, используемый для Direct_IO, хранит последовательность элементов.