Ada Reference Manual (Ada 2022)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