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 - download
Index: ┃ T V

⟦e166c2697⟧ TextFile

    Length: 10474 (0x28ea)
    Types: TextFile
    Names: »V«

Derivation

└─⟦d10a02448⟧ Bits:30000409 8mm tape, Rational 1000, ENVIRONMENT, D_12_7_3
    └─ ⟦fc9b38f02⟧ »DATA« 
        └─⟦9b46a407a⟧ 
            └─⟦12c68c704⟧ 
                └─⟦this⟧ 
└─⟦5f3412b64⟧ Bits:30000745 8mm tape, Rational 1000, ENVIRONMENT 12_6_5 TOOLS 
    └─ ⟦91c658230⟧ »DATA« 
        └─⟦458657fb6⟧ 
            └─⟦220843204⟧ 
                └─⟦this⟧ 

TextFile

with Io;
with Diana;
with Directory;
with Error_Messages;
with Machine;
with Profile;
with Simple_Status;
package Log is

    subtype Name is String;  -- an unambiguous string name

    procedure Set_Log (To_Be : Name := ">>FILE NAME<<";
                       Filter : Profile.Log_Filter := Profile.Filter);
    -- Set Current_Output to To_Be, changing the profile to direct log
    -- output to Use_Current_Output.  Change the Log_Filter to Filter.
    -- If To_Be cannot be created, Current_Output is not redirected, but
    -- no exception is raised.

    procedure Reset_Log (Filter : Profile.Log_Filter := Profile.Filter);
    -- Equivalent to IO.Reset_..., but changes Log_Filter


    procedure Put_System_Messages
                 (Response : Profile.Response_Profile := Profile.Get);
    -- Copy contents of the message log for the current job into Current_Output

    procedure Put_Job_Messages
                 (For_Job : Machine.Job_Id;
                  Response : Profile.Response_Profile := Profile.Get);
    -- Copy contents of the message log for specified job into Current_Output


    procedure Put_Condition
                 (Status : Simple_Status.Condition;
                  Response : Profile.Response_Profile := Profile.Get);

    -- Display contents of Status in Current_Output.
    procedure Put_Line (Message : String;
                        Kind : Profile.Msg_Kind := Profile.Note_Msg;
                        Response : Profile.Response_Profile := Profile.Get);
    -- Appends the Message to the end of the Current_Output as described by
    -- the given response profile. If Profile.Includes (Kind, Response) is
    -- true, then the messages is generated as described below; otherwise
    -- the Put_line call returns immediately.

    -- The Time, Date and Symbol prefixes are printed first, in the order
    -- and format specified by the Profile.Prefixes (Response) array.
    -- If the Profile.Symbols prefix is requested, a unique three-character
    -- string is generated for each possible vale of Kind:

    --   -- KIND --   Symbol            Excplanation

    --  Position_Msg    >>>
    --       Identifies the location in a file or program
    --       to which subsequent messages refer.
    --  Sharp_Msg       ### \
    --  Dollar_Msg      $$$  + Available for user-defined purposes
    --  At_Msg          @@@ /
    --  Debug_Msg       ???
    --  Auxiliary_Msg   :::
    --  Note_Msg        ---
    --       Supplemental information.
    --  Positive_Msg    +++
    --       Indicates that a major step in the process has
    --       completed successfully. e.g. a unit has been
    --       compiled, or generation of an output file is
    --       complete.
    --  Warning_Msg     !!!
    --       Indicates a minor problem in processing a major
    --       step of the process.  Warnings generally do not
    --       lead to negative messages (see below).
    --  Negative_Msg    ++*
    --       Indicates that a major step in the process has
    --       completed unsuccessfully. e.g. a unit has failed
    --       to compile, or generation of an output file is
    --       could not be accomplished.
    --  Error_Msg       ***
    --       Indicates a significant problem within a major
    --       step of the process that has been detected by
    --       the command.  Error messages will
    --       frequently be followed by negative messges
    --  Exception_Msg   %%%
    --       Indicates that a command caught an unexpected
    --       exception.

    -- The text of the message follows the prefixes.  If the message line
    -- exceeds Profile.Width (Response), it is continued on the next line.
    -- Each continuation line starts with the same prefixes as the first
    -- line, except that the three-character string "..." is used instead
    -- of the symbols in the table above.  (If no Symbols prefix is
    -- requested by the Profile.Prefixes (Response), the symbol string
    -- "... " is inserted between the rightmost prefix and the message text.)

    procedure Copy (Log_File : Name := "<IMAGE>";
                    Destination : Name := "";
                    Filter : Profile.Log_Filter := Profile.Filter);
    -- Once a log file has been generated with symbol prefixes, the
    -- following procedures may be used to copy the file while filtering
    -- out unwanted messages.  The default destination is Current_Output


    procedure Filter (Log_File : Name := "<IMAGE>";
                      Destination : Name := "";
                      Auxiliaries : Boolean := True;
                      Diagnostics : Boolean := True;
                      Notes : Boolean := True;
                      Positives : Boolean := True;
                      Negatives : Boolean := True;
                      Positions : Boolean := True;
                      Warnings : Boolean := True;
                      Errors : Boolean := True;
                      Exceptions : Boolean := True;
                      Sharps : Boolean := True;
                      Dollars : Boolean := True;
                      Ats : Boolean := True);

    procedure Summarize (Log_File : Name := "<IMAGE>";
                         Destination : Name := "";
                         Auxiliaries : Boolean := True;
                         Diagnostics : Boolean := True;
                         Notes : Boolean := False;
                         Positives : Boolean := True;
                         Negatives : Boolean := True;
                         Positions : Boolean := False;
                         Warnings : Boolean := False;
                         Errors : Boolean := False;
                         Exceptions : Boolean := False;
                         Sharps : Boolean := False;
                         Dollars : Boolean := False;
                         Ats : Boolean := False) renames Filter;

    procedure Filter_Errors (Log_File : Name := "<IMAGE>";
                             Destination : Name := "";
                             Auxiliaries : Boolean := True;
                             Diagnostics : Boolean := True;
                             Notes : Boolean := False;
                             Positives : Boolean := False;
                             Negatives : Boolean := True;
                             Positions : Boolean := False;
                             Warnings : Boolean := True;
                             Errors : Boolean := True;
                             Exceptions : Boolean := False;
                             Sharps : Boolean := False;
                             Dollars : Boolean := False;
                             Ats : Boolean := False) renames Filter;

    procedure Set_Error (To_Be : Name := ">>FILE NAME<<");
    procedure Set_Input (To_Be : Name := "<REGION>") renames Io.Set_Input;
    procedure Set_Output (To_Be : Name := ">>FILE NAME<<");
    -- Set_Output and Set_Error deal with interaction with profiles that
    -- direct Log output to streams other than Current_Output.

    procedure Pop_Error renames Io.Pop_Error;
    procedure Pop_Input renames Io.Pop_Input;
    procedure Pop_Output renames Io.Pop_Output;

    procedure Reset_Error renames Io.Reset_Error;
    procedure Reset_Input renames Io.Reset_Input;
    procedure Reset_Output renames Io.Reset_Output;

    procedure Flush (Response : Profile.Response_Profile := Profile.Get);
    -- force any log output into the log file

    procedure Save (Response : Profile.Response_Profile := Profile.Get);
    -- make the current contents of the log file permanent; calls flush

    generic
        type Object_Type is private;
        with function Full (Object : Object_Type) return String;
        with function Simple (Object : Object_Type) return String;
        with function Is_Nil (Object : Object_Type) return Boolean;
        with function Nil return Object_Type;

    procedure Put_Line_Generic
                 (Object1 : Object_Type;
                  Message : String := "";
                  Object2 : Object_Type := Nil;
                  Kind : Profile.Msg_Kind := Profile.Note_Msg;
                  Response : Profile.Response_Profile := Profile.Get);

    procedure Put_Line (Object1 : Directory.Object;
                        Message : String := "";
                        Object2 : Directory.Object := Directory.Nil;
                        Kind : Profile.Msg_Kind := Profile.Note_Msg;
                        Response : Profile.Response_Profile := Profile.Get);

    procedure Put_Line (Object1 : Directory.Version;
                        Message : String := "";
                        Object2 : Directory.Version := Directory.Nil;
                        Kind : Profile.Msg_Kind := Profile.Note_Msg;
                        Response : Profile.Response_Profile := Profile.Get);

    procedure Put_Line (Object1 : Diana.Tree;
                        Message : String := "";
                        Object2 : Diana.Tree := Diana.Empty;
                        Kind : Profile.Msg_Kind := Profile.Note_Msg;
                        Response : Profile.Response_Profile := Profile.Get);

    -- Enters a message into the log, if messages of the Kind specified
    -- are to be included.

    -- If the message does go into the log, the name of the specified
    -- object(s) is computed and inserted into the text of the message.
    -- The location for the name of the first object is indicated by the
    -- symbol "<1>"; if this string is not found in the message, the
    -- name of the object is placed at the beginning of the message.
    -- The location for the name of the object object is indicated by the
    -- symbol "<2>"; if this string is not found in the message, the
    -- name of the object, if not nil, is placed at the end of the message.

    -- Directory.Naming.Unique_Full_Name is used to generate the name of
    -- the object when the symbols given above are used or if no symbols
    -- are found.  The symbols "<<1>>" and "<<2>>" cause the value of
    -- Directory.Naming.Get_Simple_Name to be used instead.

    procedure Put_Errors (Errors : Error_Messages.Errors;
                          Response : Profile.Response_Profile := Profile.Get);

    -- Enter the Error messages into the log.

    function Image (Kind : Profile.Msg_Kind) return String;

    -- Returns the three-letter prefix used for the indicated Msg_Kind.

    pragma Subsystem (Input_Output);
    pragma Module_Name (4, 3218);
end Log;