procedure
OPEN(FILE : in out
FILE_TYPE; in
FILE_MODE; in
STRING; in
STRING := "");
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);
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;
function
IS_OPEN(FILE : in
FILE_TYPE) return
BOOLEAN;
procedure
WRITE(FILE : in
FILE_TYPE; ITEM : in
ELEMENT_TYPE);
function
END_OF_FILE(FILE : in
FILE_TYPE) return
BOOLEAN;
with
IO_EXCEPTIONS; generic
type
ELEMENT_TYPE is private
; package
SEQUENTIAL_IO is
type
FILE_TYPE is limited private
;
type
FILE_MODE is
(IN_FILE, OUT_FILE);
-- File management
procedure
CREATE( FILE : in out
FILE_TYPE; in
FILE_MODE := OUT_FILE; in
STRING := ""; in
STRING := "");
procedure
OPEN ( FILE : in out
FILE_TYPE; in
FILE_MODE; in
STRING; FORM : in
STRING := "");
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);
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;
function
IS_OPEN(FILE : in
FILE_TYPE) return
BOOLEAN;
-- Input and output operations
procedure
READ (FILE : in
FILE_TYPE; ITEM : out
ELEMENT_TYPE); procedure
WRITE (FILE : in
FILE_TYPE; ITEM : in
ELEMENT_TYPE);
function
END_OF_FILE(FILE : in
FILE_TYPE) return
BOOLEAN;
-- Exceptions
STATUS_ERROR :
exception renames
IO_EXCEPTIONS.STATUS_ERROR; exception renames
IO_EXCEPTIONS.MODE_ERROR; exception renames
IO_EXCEPTIONS.NAME_ERROR; exception renames
IO_EXCEPTIONS.USE_ERROR; exception renames
IO_EXCEPTIONS.DEVICE_ERROR; exception renames
IO_EXCEPTIONS.END_ERROR; exception renames
IO_EXCEPTIONS.DATA_ERROR;
private
end
SEQUENTIAL_IO;
procedure
WRITE(FILE : in
FILE_TYPE; ITEM : in
ELEMENT_TYPE;
TO : in
POSITIVE_COUNT);
procedure
WRITE(FILE : in
FILE_TYPE; ITEM : in
ELEMENT_TYPE);
procedure
SET_INDEX(FILE : in
FILE_TYPE; TO : in
POSITIVE_COUNT);
function
INDEX(FILE : in
FILE_TYPE) return
POSITIVE_COUNT;
function
SIZE(FILE : in
FILE_TYPE) return
COUNT;
function
END_OF_FILE(FILE : in
FILE_TYPE) return
BOOLEAN;
with
IO_EXCEPTIONS; generic
type
ELEMENT_TYPE is private
; package
DIRECT_IO is
type
FILE_TYPE is limited private
;
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;
procedure
CREATE( FILE : in out
FILE_TYPE;
MODE : in
FILE_MODE := INOUT_FILE;
NAME : in
STRING := "";
FORM : in
STRING := "");
procedure
OPEN ( FILE : in out
FILE_TYPE;
MODE : in
FILE_MODE; NAME : in
STRING;
FORM : in
STRING := "");
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);
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;
function
IS_OPEN(FILE : in
FILE_TYPE) return
BOOLEAN;
procedure
READ (FILE : in
FILE_TYPE; ITEM : out
ELEMENT_TYPE;
FROM : POSITIVE_COUNT);
procedure
READ (FILE : in
FILE_TYPE; ITEM : out
ELEMENT_TYPE);
procedure
WRITE(FILE : in
FILE_TYPE; ITEM : in
ELEMENT_TYPE;
TO : POSITIVE_COUNT);
procedure
WRITE(FILE : in
FILE_TYPE; ITEM : in
ELEMENT_TYPE);
procedure
SET_INDEX(FILE : in
FILE_TYPE;
TO : in
POSITIVE_COUNT);
function
INDEX(FILE : in
FILE_TYPE) return
POSITIVE_COUNT;
function
SIZE (FILE : in
FILE_TYPE) return
COUNT;
function
END_OF_FILE(FILE : in
FILE_TYPE) return
BOOLEAN;
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;
private
-- implementation-dependent
end
DIRECT_IO;