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

⟦a1e0c5dba⟧ Ada Source

    Length: 9216 (0x2400)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package Telnet_Characteristics, pragma Module_Name 4 4145, pragma Segmented_Heap Object, pragma Segmented_Heap Pattern_Item, pragma Segmented_Heap Pattern_List_Ptr, pragma Segmented_Heap String_Ptr, seg_01b23c

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 Simple_Status;
package Telnet_Characteristics is

    type Pattern_Item is private;  
    type Pattern_List is array (Natural range <>) of Pattern_Item;
    -- Error or warning patterns type

    type Object is private;
    -- Type of the telnet characteristics object

    Null_Object : constant Object;

    -- Exceptions

    Target_Is_Registered : exception;
    Target_Not_Initialized : exception;
    Invalid_Access : exception;
    -- Raised if a Get is attempted on an object that was never built

    function Build (Pattern_String : String := ""; For_Target : String)
                   return Pattern_Item;

    function Build (Username_Prompt : String := "";  
                    Username_Failure : String := "";
                    -- Telnet remote username prompt and username
                    -- failure string

                    Password_Prompt : String := "";
                    Password_Failure : String := "";
                    -- Remote password prompt and password
                    -- failure string

                    Command_Prompt : String := "";
                    -- Remote command prompt

                    Prompt1 : String := "";
                    Prompt2 : String := "";
                    Prompt3 : String := "";
                    Prompt4 : String := "";
                    -- Extra prompts . Can be used incase
                    -- remote compilers have prompts that
                    -- need to be responded to.

                    Check_Status_Of_Commands : Boolean := True;
                    -- This flag determines how we check the
                    -- status of a remote command. If this flag
                    -- is true we issue a status command to
                    -- check status of previous command

                    Status_Command : String := "";  
                    Status_Code_Offset : Integer := 1;
                    Status_Code_Length : Integer := 1;
                    -- The status commnand specifies the
                    -- remote command to echo status
                    -- Offset and length determine how
                    -- to extract the status code from
                    -- the output of the status comamnd

                    Dir_Command : String := "";
                    -- The remote directory command

                    Initial_Command : String := "";
                    -- This command is issued immediately after
                    -- logging in to the remote machine.

                    Transmit_Before_Login : String := "";
                    -- Stream of characters to be transmitted
                    -- after connecting to a remote machine
                    -- (typically CRs)

                    Transmit_After_Login : String := "";
                    -- Stream of characters to be transmitted
                    -- after connecting to a remote machine
                    -- (typically CRs)

                    Error_Pattern_List : Pattern_List;
                    -- List of patterns that are to be matched
                    -- against a remote command's output to determine
                    -- if it has produced errors

                    Warning_Pattern_List : Pattern_List;
                    -- List of patterns that are to be matched against
                    -- a remote command's output to determine if it has
                    -- produced warnings.

                    Telnet_Protocol_Local_Echo : Boolean := False;
                    -- If this value is false then the local
                    -- TELNET clinet will not echo back packets received
                    -- from the remote TELNET server.

                    For_Target : String) return Object;

    procedure Check (The_Object : Object;
                     Status : in out Simple_Status.Condition);
    procedure Display (The_Object : Object);


    -- Prompts

    function Get_User_Name_Prompt (The_Object : Object) return String;
    function Get_Password_Prompt (The_Object : Object) return String;
    function Get_Command_Prompt (The_Object : Object) return String;
    function Get_Password_Failure (The_Object : Object) return String;

    -- Patterns

    function Get_Error_Patterns (The_Object : Object) return Pattern_List;
    function Get_Error_Patterns_Count (The_Object : Object) return Integer;
    function Get_Warning_Patterns (The_Object : Object) return Pattern_List;
    function Get_Warning_Patterns_Count (The_Object : Object) return Integer;

    -- Commands

    function Get_Status_Command (The_Object : Object) return String;
    function Get_Status_Code_Start (The_Object : Object) return Integer;
    function Get_Status_Code_Length (The_Object : Object) return Integer;
    function Get_Dir_Command (The_Object : Object) return String;
    function Initial_Command_Specified (The_Object : Object) return Boolean;
    function Get_Initial_Command (The_Object : Object) return String;
    function Check_Command_Status (The_Object : Object) return Boolean;

    function Get_Transmit_Before_Login (The_Object : Object) return String;
    function Get_Transmit_After_Login (The_Object : Object) return String;

    function Get_Pattern (Item : Pattern_Item) return String;
    function Get_Telnet_Protocol_Local_Echo
                (The_Object : Object) return Boolean;

    pragma Module_Name (4, 4145);
    pragma Bias_Key (32);


private

    type String_Ptr is access String;
    pragma Segmented_Heap (String_Ptr);

    type Pattern_Rec (Length : Integer) is
        record
            Pattern : String (1 .. Length);
        end record;

    type Pattern_Item is access Pattern_Rec;
    pragma Segmented_Heap (Pattern_Item);

    Null_Pattern_Item : Pattern_Item := null;

    type Pattern_List_Ptr is access Pattern_List;
    pragma Segmented_Heap (Pattern_List_Ptr);

    Null_Pattern_List : Pattern_List_Ptr := null;

    type Object_Rec is
        record
            Username_Prompt : String_Ptr;
            Username_Failure : String_Ptr;
            Password_Prompt : String_Ptr;
            Password_Failure : String_Ptr;
            Command_Prompt : String_Ptr;
            Prompt1 : String_Ptr;
            Prompt2 : String_Ptr;
            Prompt3 : String_Ptr;
            Prompt4 : String_Ptr;

            Check_Status_Of_Commands : Boolean;
            Status_Command : String_Ptr;  
            Status_Code_Offset : Integer;
            Status_Code_Length : Integer;
            Dir_Command : String_Ptr;
            Initial_Command : String_Ptr;
            Transmit_Before_Login : String_Ptr;
            Transmit_After_Login : String_Ptr;

            Error_Pattern_List : Pattern_List_Ptr;
            Warning_Pattern_List : Pattern_List_Ptr;
            Telnet_Protocol_Local_Echo : Boolean;
        end record;

    type Object is access Object_Rec;
    pragma Segmented_Heap (Object);

    Null_Object : constant Object := null;

end Telnet_Characteristics;

E3 Meta Data

    nblk1=8
    nid=0
    hdr6=10
        [0x00] rec0=1f rec1=00 rec2=01 rec3=01e
        [0x01] rec0=16 rec1=00 rec2=02 rec3=04c
        [0x02] rec0=16 rec1=00 rec2=03 rec3=00a
        [0x03] rec0=15 rec1=00 rec2=04 rec3=052
        [0x04] rec0=17 rec1=00 rec2=05 rec3=058
        [0x05] rec0=1f rec1=00 rec2=06 rec3=010
        [0x06] rec0=1b rec1=00 rec2=07 rec3=040
        [0x07] rec0=09 rec1=00 rec2=08 rec3=000
    tail 0x21517d79683637c29aca4 0x42a00088462060003