DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400

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

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦70250a699⟧ Ada Source

    Length: 4096 (0x1000)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package Log_Reader, seg_001862

Derivation

└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦5a81ac88f⟧ »Space Info Vol 1« 
        └─⟦this⟧ 

E3 Source Code



with Calendar;
with Time_Utilities;
with Simple_Status;

package Log_Reader is

-- Abstraction for reading the system error log.
--
-- Provides an Iterator that automatically crosses log files and also
-- extends into the current active error log.  Thus, log messages
-- can be read right up to the last one issued by the system.
--
-- The date part of the date/time for an entry may be unknown for the first
-- few entries in the log.  In this case, 1/1/1901 is returned.
--
-- Continuation lines are automatically incorporated into each entry so that
-- each call to Next moves to a complete new entry.  Continuation lines
-- are read as part of the Message field and are preceeded by ASCII.lf
-- characters.


    procedure Load_Logs (From_Directory : String := "!machine.error_logs");

    procedure Load_Logs (Start_Time : Calendar.Time;
                         Stop_Time : Calendar.Time;
                         From_Directory : String := "!machine.error_logs");

    -- Initialize the module.  Must be called before any other operations.
    -- Builds map of log files in the specified directory.  Specifying a
    -- start and stop time will reduce the number of log files examined to
    -- those created during the given period.  Otherwise, all log files in
    -- the given directory are examined.


    type Iterator is private;
    procedure Initialize (I : out Iterator;
                          Status : in out Simple_Status.Condition);

    procedure Next (I : in out Iterator;
                    Status : in out Simple_Status.Condition);


    function Done (I : Iterator) return Boolean;
    function Current_Entry (I : Iterator) return String;
    function Current_Time (I : Iterator) return Time_Utilities.Time;
    function Current_Severity (I : Iterator) return String;
    function Current_Client (I : Iterator) return String;
    function Current_Condition (I : Iterator) return String;
    function Current_Message (I : Iterator) return String;
    function Current_File (I : Iterator) return String;

    function Get_Time (Log_Entry : String) return Time_Utilities.Time;
    -- Note that only the HH:MM:SS part of the time is set by this operation
    function Severity (Log_Entry : String) return String;
    function Client (Log_Entry : String) return String;
    function Condition (Log_Entry : String) return String;
    function Message (Log_Entry : String) return String;

    function Number_Of_Log_Files return Natural;
    -- Returns number of log files that exist.  Defined only after call
    -- to Load_Logs.
private

    type Iterator_Data;
    type Iterator is access Iterator_Data;

end Log_Reader;

E3 Meta Data

    nblk1=3
    nid=0
    hdr6=6
        [0x00] rec0=1b rec1=00 rec2=01 rec3=08a
        [0x01] rec0=17 rec1=00 rec2=02 rec3=028
        [0x02] rec0=13 rec1=00 rec2=03 rec3=000
    tail 0x205004d9a7da188fae279 0x42a00088462060003