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 - downloadIndex: ┃ T V ┃
Length: 20050 (0x4e52) Types: TextFile Names: »V«
└─⟦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⟧
with Directory; with Simple_Status; package Profile is pragma Subsystem (Directory); pragma Module_Name (4, 3219); -- A collection of job-related utilities for control of log generation, -- Activity files, and error reactions. These facilities are used by -- most packages in !Commands, and may be used by user-written procedures. type Response_Profile is private; -- The aggregate of all components of the job response profile function Get return Response_Profile; -- Profile for the current job function Get_Default return Response_Profile; -- Profile for the Session (which is the default for a job that -- does not specify one) procedure Set (Profile : Response_Profile); -- Set profile for rest of current job procedure Set_Default (Profile : Response_Profile); -- Set profile for session; this is the value used for the job -- response profile if none is otherwise specified. function Default_Profile return Response_Profile; -- If the user has established no response profile for his session, -- this profile is used; it is the aggregate of all the Default_xxx -- constants defined in this package. subtype Name is String; -- an unambiguous string name -- A map is maintained between a job id and the following values: -- The ERROR REACTION specifies which of several options a command is -- to follow in reacting to error situations. -- The LOG_FILTER specifies in some detail, the desired content of the -- log that is generated by the command. -- The LOG_PREFIXES specifies the format of messages entered into the log. -- The WIDTH specifies the number of columns in the log display. -- The LOG_FILE specifies the predefined file to be used by the Log -- package to generate output. -- The ACTIVITY specifies the activity file used for loading subsystems. -- The REMOTE_PASSWORDS specifies the file in which usernames and -- passwords for remote machines are stored. -- The REMOTE_SESSIONS specifies the file in which session names -- for remote machines are stored. -- Procedures are provided for setting each of these values into -- the map on a job or session basis, and functions are provided -- for retrieving the current value from these maps. -- Error_Reaction specifies how a command is to respond to errors -- along two dimensions: -- Perseverance whether to continue processing or stop at the first -- error. (If a log is to be generated, the process -- perseveres long enough to print an error message -- regardless of the setting of this option.) -- Exception whether or not a process is to propagate an -- Propagation exception to its caller when it terminates a run in -- which errors occurred. (If processing has -- persevered, ERROR is raised.) type Error_Reaction is (Quit, Propagate, Persevere, Raise_Error); -- Quit Command terminates at the first error. It may log -- the error in the job error map, but may not -- propagate an exception to its caller -- Propagate Command terminates at the first error by raising -- an exception. An entry should be made to the job -- error map. Profile.Error may be raised if no other -- exception is appropriate. -- Persevere Command continues after errors at its discretion. -- Exceptions may not be propagated to its caller. -- Raise_Error Command continues after errors at its discretion. -- The command must raise an exception if it was unable -- to complete successfully. Default_Reaction : constant Error_Reaction := Persevere; procedure Set_Reaction (Reaction : Error_Reaction); procedure Set_Default_Reaction (Reaction : Error_Reaction); function Reaction (Response : Response_Profile := Profile.Get) return Error_Reaction; function Persevere (Response : Response_Profile := Profile.Get) return Boolean; -- true if error reaction is Persevere or Raise_Error; i.e. if command -- is to continue after an error function Propagate (Response : Response_Profile := Profile.Get) return Boolean; -- true if error reaction is Propagate or Raise_Error; i.e., if a -- command is to raise an exception when it is done. -- Log Filter type Msg_Kind is (Auxiliary_Msg, Debug_Msg, Note_Msg, Positive_Msg, Position_Msg, Negative_Msg, Warning_Msg, Error_Msg, Exception_Msg, Sharp_Msg, At_Msg, Dollar_Msg); -- Log messages of any class can be filtered out of the log as it is -- being generated using the procedures defined below. type Log_Filter is array (Msg_Kind) of Boolean; -- The filter specifies what types of messages are to be printed. Quiet : constant Log_Filter := Log_Filter'(others => False); Full : constant Log_Filter := Log_Filter' (Debug_Msg => False, others => True); Terse : constant Log_Filter := Log_Filter' (False, False, False, others => True); Errors : constant Log_Filter := Log_Filter'(Negative_Msg .. Exception_Msg => True, others => False); Summary : constant Log_Filter := Log_Filter'(Positive_Msg | Negative_Msg => True, others => False); Default_Filter : constant Log_Filter := Full; function Filter (Response : Response_Profile := Profile.Get) return Log_Filter; function Includes (Kind : Msg_Kind; Response : Response_Profile := Profile.Get) return Boolean; -- iff includes (Kind, Response) is true then messages of that Kind are -- sent to the log. procedure Include (Kind : Msg_Kind; Value : Boolean := True); procedure Include_In_Default (Kind : Msg_Kind; Value : Boolean := True); -- Change the filter value for the given message kind procedure Set_Filter (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 Set_Default_Filter (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 Set_Filter (Filter : Log_Filter); -- Establishes the given filter value(s) as the current filter value -- for the job. procedure Set_Default_Filter (Filter : Log_Filter); -- Establishes the given filter value(s) as the default filter value -- for the session. -- Log Format -- Specifies the prefixes desired for each message and the length of -- the line used in formating messages type Log_Prefix is (Nil, Time, -- 11:00:00 PM Hr_Mn_Sc, -- 23:00:00 Hr_Mn, -- 23:00 Date, -- September 29, 1983 Mn_Dy_Yr, -- 09/29/83 Dy_Mon_Yr, -- 29-SEP-83 Yr_Mn_Dy, -- 83/09/29 Symbols -- +++, ++*, etc ); -- Each prefix (except Nil) is followed by a single blank type Log_Prefixes is array (1 .. 3) of Log_Prefix; -- Any combination of up to three prefixes may be specified Default_Prefixes : constant Log_Prefixes := (Yr_Mn_Dy, Hr_Mn_Sc, Symbols); function Prefixes (Response : Response_Profile := Profile.Get) return Log_Prefixes; procedure Set_Prefixes (Prefixes : Log_Prefixes); procedure Set_Prefixes (Prefix1, Prefix2, Prefix3 : Log_Prefix := Nil); procedure Set_Default_Prefixes (Prefixes : Log_Prefixes); procedure Set_Default_Prefixes (Prefix1, Prefix2, Prefix3 : Log_Prefix := Nil); Default_Width : constant Natural := 77; -- default width of log display procedure Set_Width (Width : Natural); procedure Set_Default_Width (Width : Natural); function Width (Response : Response_Profile := Profile.Get) return Natural; -- ACTIVITY: subtype Activity_Type is Directory.Object; function Default_Activity return Activity_Type; procedure Set_Activity (Activity : Activity_Type); procedure Set_Default_Activity (Activity : Activity_Type); function Activity (Response : Response_Profile := Profile.Get) return Activity_Type; -- LOG_FILE type Log_Output_File is (Use_Output, Use_Error, Use_Standard_Output, Use_Standard_Error); Default_Log_File : constant Log_Output_File := Use_Output; -- default file for log procedure Set_Log_File (Log_File : Log_Output_File); procedure Set_Default_Log_File (Log_File : Log_Output_File); function Log_File (Response : Response_Profile := Profile.Get) return Log_Output_File; function Response (Reaction : Error_Reaction := Profile.Reaction; Filter : Log_Filter := Profile.Filter; Prefixes : Log_Prefixes := Profile.Prefixes; Width : Natural := Profile.Width; Activity : Activity_Type := Profile.Activity; Log_File : Log_Output_File := Profile.Log_File) return Response_Profile; procedure Set_Response (Reaction : Error_Reaction := Profile.Reaction; Filter : Log_Filter := Profile.Filter; Prefixes : Log_Prefixes := Profile.Prefixes; Width : Natural := Profile.Width; Activity : Activity_Type := Profile.Activity; Log_File : Log_Output_File := Profile.Log_File); procedure Set_Default_Response (Reaction : Error_Reaction := Profile.Reaction (Profile.Get_Default); Filter : Log_Filter := Profile.Filter (Profile.Get_Default); Prefixes : Log_Prefixes := Profile.Prefixes (Profile.Get_Default); Width : Natural := Profile.Width (Profile.Get_Default); Activity : Activity_Type := Profile.Activity (Profile.Get_Default); Log_File : Log_Output_File := Profile.Log_File (Profile.Get_Default)); function Ignore (Reaction : Error_Reaction := Profile.Persevere; Filter : Log_Filter := Profile.Quiet; Prefixes : Log_Prefixes := Profile.Prefixes; Width : Natural := Profile.Width; Activity : Activity_Type := Profile.Activity; Log_File : Log_Output_File := Profile.Log_File) return Response_Profile renames Response; function Warn (Reaction : Error_Reaction := Profile.Persevere; Filter : Log_Filter := Profile.Full; Prefixes : Log_Prefixes := Profile.Prefixes; Width : Natural := Profile.Width; Activity : Activity_Type := Profile.Activity; Log_File : Log_Output_File := Profile.Log_File) return Response_Profile renames Response; function Verbose (Reaction : Error_Reaction := Profile.Reaction; Filter : Log_Filter := Profile.Full; Prefixes : Log_Prefixes := Profile.Prefixes; Width : Natural := Profile.Width; Activity : Activity_Type := Profile.Activity; Log_File : Log_Output_File := Profile.Log_File) return Response_Profile renames Response; function Raise_Exception (Reaction : Error_Reaction := Profile.Propagate; Filter : Log_Filter := Profile.Filter; Prefixes : Log_Prefixes := Profile.Prefixes; Width : Natural := Profile.Width; Activity : Activity_Type := Profile.Activity; Log_File : Log_Output_File := Profile.Log_File) return Response_Profile renames Response; No_Prefixes : constant Log_Prefixes := (Nil, Nil, Nil); function Nil (Reaction : Error_Reaction := Profile.Quit; Filter : Log_Filter := Profile.Quiet; Prefixes : Log_Prefixes := Profile.No_Prefixes; Width : Natural := Profile.Default_Width; Activity : Activity_Type := Profile.Default_Activity; Log_File : Log_Output_File := Profile.Default_Log_File) return Response_Profile renames Response; Error : exception; ---------------------- -- String Interface -- ---------------------- -- The strings accepted and returned by the following subprograms obey -- the syntax for form parameters. The Option names and expected values -- are as follows: -- Option Name Value -- REACTION QUIT, PROPAGATE, PERSEVERE, RAISE_ERROR -- -- AUXILIARY_MSG, ::: TRUE or FALSE -- DEBUG_MSG, ??? " -- NOTE_MSG, --- " -- POSITIVE_MSG, +++ " -- POSITION_MSG, >>> " -- NEGATIVE_MSG, ++* " -- WARNING_MSG, !!! " -- ERROR_MSG, *** " -- EXCEPTION_MSG, %%% " -- SHARP_MSG, ### " -- AT_MSG, @@@ " -- DOLLAR_MSG, $$$ " -- -- PREFIX (form[, form[, form]]) where form is one of -- TIME, HR_MN_SC, HR_MN, -- DATE, MN_DY_YR, DY_MON_YR, YR_MN_DY, -- SYMBOLS -- e.g. (TIME, DATE, SYMBOLS) -- (HR_MN_SC, SYMBOLS) -- -- LINE_WIDTH positive integer in 1..1024 -- -- ACTIVITY name of activity file -- -- LOG_FILE USE_OUTPUT, USE_ERROR, USE_STANDARD_OUTPUT, or -- USE_STANDARD_ERROR -- The Options enclosed in "<>" brackets take no value, but denote the -- current value of the named profile. These values may be used by -- themselves to denote all components of the named profile or as the value -- of one of the profile components to denote just that component of the -- named file, e.g. Activity=><DEFAULT>. Where special symbols appear, -- e.g. +++, any symbols not mentioned are turned off. -- -- <DEFAULT> System default, ignores user profile. -- PERSEVERE, :::, ~???, ---..$$$, Width=>77 -- Prefix=>YR_MN_DY, HR_MN_SC SYMBOLS, USE_OUTPUT -- -- <ERRORS> ++*, ***..%%%, <PROFILE> -- -- <IGNORE> ~:::..$$$. <PROFILE> -- -- <NIL> Empty, ignores user profile. -- Quit, ~:::..$$$, Prefix=>, Width=>77, USE_OUTPUT -- -- <PROFILE> Values set by job/session profile. -- -- <QUIET> Equivalent of <NIL> -- -- <PROGRESS> +++, ++*, ***..%%%, <PROFILE> -- -- <RAISE_EXCEPTION> PROPAGATE, <PROFILE> -- -- <SESSION_PROFILE> Use session profile rather than job. -- -- <WARN> ++*..%%%, <PROFILE> -- -- <VERBOSE> :::, ~???, ---..$$$, <PROFILE> function Get return String; -- Profile for the current job as a form parameter function Get_Default return String; -- Profile for the Session (which is the default for a job that -- does not specify one) as a form parameter function Image (Profile : Response_Profile := Standard.Profile.Get) return String; function Value (Image : String := Profile.Get) return Response_Profile; procedure Convert (Image : String; Response : out Response_Profile; Status : in out Simple_Status.Condition); -- Convert between form parameter representation of a profile and the -- internal representation. The Value function ignores invalid options -- in the form parameter. procedure Set (Profile : String; Status : in out Simple_Status.Condition); -- Set profile for rest of current job; An error Status is returned and -- the profile is not changed if the profile string is invalid. procedure Set_Default (Profile : String; Status : in out Simple_Status.Condition); -- Set profile for session; this is the value used for the job -- response profile if none is otherwise specified. procedure Get_Cached_Resolution (Name : String; The_Declaration : out Directory.Declaration; The_Object : out Directory.Object; The_Version : out Directory.Version; Status : out Directory.Naming.Name_Status); -- Retrieve the resolution of the Name as cached at job initiation. Only -- resolution of <IMAGE>, <CURSOR>, <REGION>, and <SELECTION> are cached. function Cached_Selected_Text return String; -- Retrieve the Selected text at job initiation. -- REMOTE_PASSWORDS: subtype Remote_Passwords_Type is Directory.Object; function Remote_Passwords (Response : Response_Profile := Profile.Get) return Remote_Passwords_Type; function Default_Remote_Passwords return Remote_Passwords_Type; procedure Set_Remote_Passwords (Passwords : Remote_Passwords_Type); procedure Set_Default_Remote_Passwords (Passwords : Remote_Passwords_Type); -- REMOTE_SESSIONS: subtype Remote_Sessions_Type is Directory.Object; -- text file function Remote_Sessions (Response : Response_Profile := Profile.Get) return Remote_Sessions_Type; function Default_Remote_Sessions return Remote_Sessions_Type; procedure Set_Remote_Sessions (Sessions : Remote_Sessions_Type); procedure Set_Default_Remote_Sessions (Sessions : Remote_Sessions_Type); end Profile;