|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: B T
Length: 3014 (0xbc6)
Types: TextFile
Names: »B«
└─⟦180fe333a⟧ Bits:30000405 8mm tape, Rational 1000, SW CATALOG, 10_20_0
└─⟦180fe333a⟧ Bits:30000537 8mm tape, Rational 1000, SW Catalog 10_20_0
└─⟦5cb1d1d7f⟧ »DATA«
└─⟦3b1ee7bd8⟧
└─⟦this⟧
separate (Job_Accounting)
procedure Initialize (Log_File_Name : String; Iter : out Iterator) is
Input : Sio.File_Type;
List : Entry_List.List := Entry_List.Nil;
Local_Iter : Iterator := new Entry_List.Iterator;
begin
Sio.Open (Input, Sio.In_File, Log_File_Name);
while not Sio.End_Of_File (Input) loop
declare
This_Entry : Entry_Type;
Line : constant String := Sio.Get_Line (Input);
Start_Elapsed : constant String :=
Line (Line'First + Start_Elapsed_Offset ..
Line'First + Start_Elapsed_Offset +
Elapsed_Time_Length);
End_Elapsed : constant String :=
Line (Line'First + End_Elapsed_Offset ..
Line'First + End_Elapsed_Offset + Elapsed_Time_Length);
Cpu_Time : constant String :=
Line (Line'First + Cpu_Time_Offset .. Line'First + Cpu_Time_End);
Job_Number : constant String :=
String_Utilities.Strip (Line (Line'First + Jobs_Offset ..
Line'First + Jobs_End));
Disk_Number : constant String :=
String_Utilities.Strip (Line (Line'First + Disk_Wait_Offset ..
Line'First + Disk_Wait_End));
User_Session : constant String :=
Line (Line'First + User_Session_Offset .. Line'Last);
User_Name : constant String :=
User_Session (User_Session'First .. String_Utilities.Reverse_Locate
(".", User_Session) - 1);
Session_Name : constant String :=
User_Session (String_Utilities.Locate (".", User_Session) + 1 ..
User_Session'Last);
Worked : Boolean;
begin
if Line (Line'First) = 'J' then
This_Entry.Entry_Kind := Job;
else
This_Entry.Entry_Kind := Session;
end if;
This_Entry.Elapsed_Time :=
Time_Utilities.Convert_Time
(Time_Utilities.Value (End_Elapsed)) -
(Time_Utilities.Convert_Time
(Time_Utilities.Value (Start_Elapsed)));
String_Utilities.String_To_Number
(Disk_Number, This_Entry.Disk_Waits, Worked);
String_Utilities.String_To_Number
(Job_Number, This_Entry.Jobs, Worked);
This_Entry.Cpu_Time := Time_Utilities.Convert
(Time_Utilities.Value (Cpu_Time));
Unbounded.Copy (This_Entry.User_Name, User_Name);
Unbounded.Copy (This_Entry.Session_Name, Session_Name);
List := Entry_List.Make (This_Entry, List);
end;
end loop;
Entry_List.Init (Entry_List.Iterator (Local_Iter.all), List);
Sio.Close (Input);
Iter := Local_Iter;
end Initialize;