DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400 Tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Rational R1000/400 Tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download
Index: B T

⟦b2e1fa5e3⟧ TextFile

    Length: 3023 (0xbcf)
    Types: TextFile
    Names: »B«

Derivation

└─⟦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⟧ 

TextFile

separate (Job_Accounting_Solution)
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;