home *** CD-ROM | disk | FTP | other *** search
- with TEXT_IO; use TEXT_IO;
- with DIRECT_IO;
- with DURATION_IO ; use DURATION_IO ;
-
- package body PIWG_IO is
-
- subtype name_string is STRING(1..12);
- subtype line_string is STRING(1..80);
-
- type io_record is
- record
- testname : name_string;
- classname : name_string;
- cpu_delta : DURATION;
- wall_delta : DURATION;
- num_of_iterations : INTEGER;
- test_desc_1 : line_string;
- test_desc_2 : line_string;
- test_desc_3 : line_string;
- end record;
-
- package PIWG_DIRECT_IO is new DIRECT_IO( IO_RECORD );
- use PIWG_DIRECT_IO;
-
- disk_file : PIWG_DIRECT_IO.file_type;
- record_index : PIWG_DIRECT_IO.count;
-
- ------------------------------------
- procedure OPEN_OUTPUT is
- begin
- begin
- OPEN(disk_file, INOUT_FILE, "PIWGRES" );
- exception
- when PIWG_DIRECT_IO.NAME_ERROR =>
- CREATE( disk_file, INOUT_FILE, "PIWGRES" );
- when others =>
- TEXT_IO.put ( "Error in opening disk file - PIWGRES ");
- TEXT_IO.new_line;
- TEXT_IO.put ( "Please check file namings for your particular host" );
- TEXT_IO.new_line;
- end;
- end OPEN_OUTPUT;
-
- ------------------------------------
- procedure CLOSE_OUTPUT is
- begin
- CLOSE( disk_file );
- end CLOSE_OUTPUT;
-
- -----------------------------------
- procedure PIWG_OUTPUT ( testname : in string;
- classname : in string;
- cpu_delta : in DURATION;
- wall_delta : in DURATION;
- num_of_iterations : in INTEGER;
- test_desc_1 : in string;
- test_desc_2 : in string;
- test_desc_3 : in string) is
-
- data_rec : io_record;
-
- function make_12( name : string ) return name_string is
- begin
- if name'length < 12 then
- return name & ( name'length+1 .. 12 => ' ' ) ;
- else
- return name(1..12);
- end if ;
- end make_12;
-
- function make_80( name : string ) return line_string is
- begin
- if name'length < 80 then
- return name & ( name'length+1 .. 80 => ' ' ) ;
- else
- return name(1..80);
- end if ;
- end make_80;
-
- begin
-
- if not IS_OPEN( disk_file )
- then
- OPEN_OUTPUT;
- end if;
-
- record_index := SIZE( disk_file ) + PIWG_DIRECT_IO.COUNT(1);
-
- DATA_REC.testname := make_12 ( testname ) ;
- DATA_REC.classname := make_12 ( classname ) ;
- DATA_REC.cpu_delta := cpu_delta;
- DATA_REC.wall_delta := wall_delta;
- DATA_REC.num_of_iterations := num_of_iterations;
- DATA_REC.test_desc_1 := make_80 ( test_desc_1 ) ;
- DATA_REC.test_desc_2 := make_80 ( test_desc_2 ) ;
- DATA_REC.test_desc_3 := make_80 ( test_desc_3 ) ;
-
- WRITE( disk_file, DATA_REC, record_index );
-
- CLOSE_OUTPUT;
-
- end PIWG_OUTPUT;
-
- end PIWG_IO;
-