Next: , Previous: A.8.3, Up: A.8


A.8.4 The Generic Package Direct_IO

Static Semantics

1
The generic library package Direct_IO has the following declaration:

2

     with Ada.IO_Exceptions;
     generic
        type Element_Type is private;
     package Ada.Direct_IO is

3

        type File_Type is limited private;

4

        type File_Mode is (In_File, Inout_File, Out_File);
        type Count     is range .. implementation−defined;
        subtype Positive_Count is Count range .. Count'Last;

5

        −− File management

6

        procedure Create(File in out File_Type;
                         Mode in File_Mode := Inout_File;
                         Name in String := "";
                         Form in String := "");

7

        procedure Open  (File in out File_Type;
                         Mode in File_Mode;
                         Name in String;
                         Form in String := "");

8

        procedure Close (File in out File_Type);
        procedure Delete(File in out File_Type);
        procedure Reset (File in out File_Type; Mode in File_Mode);
        procedure Reset (File in out File_Type);

9

        function Mode   (File in File_Type) return File_Mode;
        function Name   (File in File_Type) return String;
        function Form   (File in File_Type) return String;

10

        function Is_Open(File in File_Type) return Boolean;

11

        −− Input and output operations

12

        procedure Read (File in File_Type; Item out Element_Type;
                                             From in Positive_Count);
        procedure Read (File in File_Type; Item out Element_Type);

13

        procedure Write(File in File_Type; Item in  Element_Type;
                                             To   in Positive_Count);
        procedure Write(File in File_Type; Item in Element_Type);

14

        procedure Set_Index(File in File_Type; To in Positive_Count);

15

        function Index(File in File_Type) return Positive_Count;
        function Size (File in File_Type) return Count;

16

        function End_Of_File(File in File_Type) return Boolean;

17

        −− Exceptions

18

        Status_Error exception renames IO_Exceptions.Status_Error;
        Mode_Error   exception renames IO_Exceptions.Mode_Error;
        Name_Error   exception renames IO_Exceptions.Name_Error;
        Use_Error    exception renames IO_Exceptions.Use_Error;
        Device_Error exception renames IO_Exceptions.Device_Error;
        End_Error    exception renames IO_Exceptions.End_Error;
        Data_Error   exception renames IO_Exceptions.Data_Error;

19

     private
        ... −− not specified by the language
     end Ada.Direct_IO;

20/2
The type File_Type needs finalization (see 7.6) in every instantiation of Direct_IO.