Ada Conformity Assessment Authority      Home Conformity Assessment   Test Suite ARGAda Standard
 
Ada Reference Manual (Ada 2022 with Amendment 1)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