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: 4951 (0x1357) 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⟧
package Simple_Status is -- Error status reporting package -- A simple_status.condition can be used to return error information from -- procedure calls. They are relatively large and should always -- be passed in out (by convention to avoid copies). -- A Condition consists of a Condition_Name and a Message. -- The Condition_Name indicates the type of error (if any) and how -- how serious the error is (or if completion was -- successful). The Message provides additional information about -- the error. -- In simple applications, A Condition_Name alone can be used to -- indicate status. -- By convention, condition names in an application should be -- standardized so that error conditions can be tested -- programmaticly. type Condition_Name is private; -- A short name for the error type type Condition_Class is (Normal, -- operation completed normally Warning, -- operation completed, but something unexpected happened Problem, -- operation did not complete, but no harm done Fatal); -- operation did not complete. Proceeding is dangerous. type Condition is private; -- Contains the above plus a message -- Conditions are self-initializing to -- severity Normal and null names procedure Initialize (Status : in out Condition); -- The empty condition has null name and severity normal -- a declared condition is initialized; This procedure will set the -- Condition to be Normal (ie, successful). function Name (Error_Type : Condition_Name) return String; function Name (Status : Condition) return String; -- get the human-readable name of this Condition_Name (Condition) function Severity (Error_Type : Condition_Name) return Condition_Class; function Severity (Status : Condition) return Condition_Class; function Error_Type (Status : Condition) return Condition_Name; -- provide the Condition_Name on which a Condition is built function Error (Error_Type : Condition_Name; Level : Condition_Class := Warning) return Boolean; function Error (Status : Condition; Level : Condition_Class := Warning) return Boolean; -- True <=> Severity (Error_Type/Status) >= Level; -- usage: -- Do_Something (Status); -- if Simple_Status.Error (Status) then -- ... Put (Display_Message (Status); function Display_Message (Status : Condition) return String; -- given a condition that indicates and error, this function returns -- a string suitable for display to users. It includes the -- string form of the condition name and any additional problem- -- specific information recorded in the condition. function Message (Status : Condition) return String; -- return just the message part of the Condition. procedure Create_Condition (Status : in out Condition; Error_Type : String; Message : String := ""; Severity : Condition_Class := Problem); procedure Create_Condition (Status : in out Condition; Error_Type : Condition_Name; Message : String := ""); -- Create a new error condition. The Error_Type is intended to -- specify the class of error (limited to 63 characters), generally -- in a few words (eg, "Illegal name"). Message is intended to -- supplement the error_type with more specific information -- (eg, ": '#' is an illegal character"). Function Display_Message -- would then return "Illegal name: '#' is an illegal character". function Create_Condition_Name (Error_Type : String; Severity : Condition_Class := Problem) return Condition_Name; function Equal (Status : Condition; Error_Type : String) return Boolean; function Equal (Status : Condition; Error_Type : Condition_Name) return Boolean; function Equal (Status : Condition_Name; Error_Type : String) return Boolean; function Equal (Status : Condition_Name; Error_Type : Condition_Name) return Boolean; -- return true if the error_type string of Status is equal to the -- right error_type string (the second parameter). The severity -- does not participate in the comparison. The strings must -- match exactly (except for index range). Sample usage: -- Directory.Open(File, Status); -- if SS.Equal (Status, "Nonexistent file") then ... -- elsif SS.Equal (Status, "Internal error") then ... -- etc. -- The strings in the example should be constants, of course. pragma Subsystem (Miscellaneous); pragma Module_Name (4, 810); end Simple_Status;