Ada Reference Manual (Ada 2022)Legal Information
Contents   Index   References   Search   Previous   Next 

A.9 The Generic Package Storage_IO

1
The generic package Storage_IO provides for reading from and writing to an in-memory buffer. This generic package supports the construction of user-defined input-output packages. 

Static Semantics

2
The generic library package Storage_IO has the following declaration: 
3/5
with Ada.IO_Exceptions;
with System.Storage_Elements;
generic
   type Element_Type is private;
package Ada.Storage_IO
   with Preelaborate, Global => in out synchronized is
4
   Buffer_Size : constant System.Storage_Elements.Storage_Count :=
      implementation-defined;
   subtype Buffer_Type is
      System.Storage_Elements.Storage_Array(1..Buffer_Size);
5
   -- Input and output operations
6
   procedure Read (Buffer : in  Buffer_Type; Item : out Element_Type);
7
   procedure Write(Buffer : out Buffer_Type; Item : in  Element_Type);
8
   -- Exceptions
9
   Data_Error   : exception renames IO_Exceptions.Data_Error;
end Ada.Storage_IO;
10
In each instance, the constant Buffer_Size has a value that is the size (in storage elements) of the buffer required to represent the content of an object of subtype Element_Type, including any implicit levels of indirection used by the implementation. The Read and Write procedures of Storage_IO correspond to the Read and Write procedures of Direct_IO (see A.8.4), but with the content of the Item parameter being read from or written into the specified Buffer, rather than an external file.
11
NOTE   A buffer used for Storage_IO holds only one element at a time; an external file used for Direct_IO holds a sequence of elements. 

Contents   Index   References   Search   Previous   Next 
Ada-Europe Ada 2005 and 2012 Editions sponsored in part by Ada-Europe