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.8.4 The Generic Package Direct_IO

Static Semantics

1
The generic library package Direct_IO has the following declaration: 
2/5
with Ada.IO_Exceptions;
generic
   type Element_Type is private;
package Ada.Direct_IO
   with Global => in out synchronized is
3
   type File_Type is limited private;
4
   type File_Mode is (In_File, Inout_File, Out_File);
   type Count     is range 0 .. implementation-defined;
   subtype Positive_Count is Count range 1 .. 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;
10.1/5
   procedure Flush (File : in File_Type)
      with Global => overriding in out File;
11
   -- Input and output operations
12/5
   procedure Read (File : in File_Type; Item : out Element_Type;
                                        From : in Positive_Count)
      with Global => overriding in out File;
   procedure Read (File : in File_Type; Item : out Element_Type)
      with Global => overriding in out File;
13/5
   procedure Write(File : in File_Type; Item : in  Element_Type;
                                        To   : in Positive_Count)
      with Global => overriding in out File;
   procedure Write(File : in File_Type; Item : in Element_Type)
      with Global => overriding in out File;
14/5
   procedure Set_Index(File : in File_Type; To : in Positive_Count)
      with Global => overriding in out File;
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;
18.1/5
   package Wide_File_Names is
18.2/5
      -- File management
18.3/5
      procedure Create(File : in out File_Type;
                       Mode : in File_Mode := Inout_File;
                       Name : in Wide_String := "";
                       Form : in Wide_String := "");
18.4/5
      procedure Open  (File : in out File_Type;
                       Mode : in File_Mode;
                       Name : in Wide_String;
                       Form : in Wide_String := "");
18.5/5
      function Name   (File : in File_Type) return Wide_String;
18.6/5
      function Form   (File : in File_Type) return Wide_String;
18.7/5
   end Wide_File_Names;
18.8/5
   package Wide_Wide_File_Names is
18.9/5
      -- File management
18.10/5
      procedure Create(File : in out File_Type;
                       Mode : in File_Mode := Inout_File;
                       Name : in Wide_Wide_String := "";
                       Form : in Wide_Wide_String := "");
18.11/5
      procedure Open  (File : in out File_Type;
                       Mode : in File_Mode;
                       Name : in Wide_Wide_String;
                       Form : in Wide_Wide_String := "");
18.12/5
      function Name   (File : in File_Type) return Wide_Wide_String;
18.13/5
      function Form   (File : in File_Type) return Wide_Wide_String;
18.14/5
   end Wide_Wide_File_Names;
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.

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