A.9 The Generic Package Storage_IO

From OC Systems Wiki!
< Guide:95lrm
Revision as of 16:48, 1 May 2019 by imported>WikiVisor
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

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

The generic library package Storage_IO has the following declaration:

with Ada.IO_Exceptions;
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 :=
        implementation-defined;
    subtype Buffer_Type is
        System.Storage_Elements.Storage_Array(1..Buffer_Size);

    -- Input and output operations

    procedure Read (Buffer in  Buffer_Type; Item out Element_Type);

    procedure Write(Buffer out Buffer_Type; Item in  Element_Type);

    -- Exceptions

    Data_Error   : exception renames IO_Exceptions.Data_Error;
end Ada.Storage_IO;

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.

Notes

21  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.

Copyright © 1992,1993,1994,1995 Intermetrics, Inc.
Copyright © 2000 The MITRE Corporation, Inc. Ada Reference Manual