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

⟦1f930dff0⟧ Ada Source

    Length: 7168 (0x1c00)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, procedure Create_Program_Library, seg_03be52, separate Library_Extensions

Derivation

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

E3 Source Code



with Directory;
with Directory_Tools;
with Rcf_Switch_Implementation;

separate (Library_Extensions)
procedure Create_Program_Library  
             (Host_View              :        String;
              Remote_Directory       :        String;
              Remote_Program_Library :        String;
              Remote_Machine         :        String;
              Status                 : in out Simple_Status.Condition) is

    Remote_Connection    : Remote_Command_Interface.Context;
    Build_Adalib_Command : constant String := "a.mklib -f " & Remote_Directory;

    function Remote_Parent_Library_Name return String is  
        Subsystem_Path_Name : constant String :=
           Directory_Tools.Naming.Full_Name ("<subsystem>");
        Library_Switch_File : constant String :=
           Subsystem_Path_Name & "." & "library_switches";  
        Remote_Parent_Library_Option : constant String :=
           "M68K_Sunos_Vdx_Remote_Parent_Library";
        Object : Directory.Object;
        Name_Status : Directory.Naming.Name_Status;
    begin
        Directory.Naming.Resolve (Name       => Library_Switch_File,
                                  The_Object => Object,
                                  Status     => Name_Status);
        return Rcf_Switch_Implementation.Value
                  (Name => Remote_Parent_Library_Option, Switch_File => Object);
    end Remote_Parent_Library_Name;

begin

    -- This routine reads a switch named Remote_Parent_Library in order
    -- to determine if a parent library needs to be associated with the
    -- library to be created.  If so, it is appended to the a.mklib
    -- command.
    --
    -- The library switch file is assumed to reside in the subsystem
    -- level library.  That is, the library containing the names of all
    -- the views within the subsystem.

    Log.Put_Line  
       (Message => "Creating remote program library = " &
                      Remote_Program_Library,
        Kind    => Profile.Debug_Msg);

    Acquire_Connection  
       (Remote_Connection => Remote_Connection,
        Remote_Machine    => Remote_Machine,
        Status            => Status);

    Log.Put_Line  
       (Message => "Executing remote command: " & Build_Adalib_Command,
        Kind    => Profile.Note_Msg);

    Rci.Execute_Command  
       (Command_Line => Build_Adalib_Command & " " & Remote_Parent_Library_Name,
        Remote_Connection => Remote_Connection,
        Status => Status,
        Error_Pattern => "",
        Parse_Error_Output => False,
        Parse_Standard_Output => False,
        Show_Parsed_Output => True,
        Trace_Command => Trace_Rci_Commands);

    if Simple_Status.Error (Status) then
        Log.Put_Line  
           (Message => Simple_Status.Message (Status),
            Kind    => Profile.Negative_Msg);

        Set_Status  
           (Status  => Status,
            Message => "Unable to create the remote adalib in, " &
                          Remote_Directory & ".");

        Log.Put_Line  
           (Message => "Creation of the Remote Ada Library Failed",
            Kind    => Profile.Error_Msg);

        Log.Put_Line  
           (Message => "Possible causes of this failure include: ",
            Kind    => Profile.Negative_Msg);

        Log.Put_Line  
           (Message => "     - Invalid Username & Password from your " &
                          "switches or remote passwords file.",
            Kind    => Profile.Negative_Msg);

        Log.Put_Line
           (Message =>
               "     - Remote machine is not accessable via the network",
            Kind    => Profile.Negative_Msg);

        Log.Put_Line  
           (Message => "     - Invalid permissions on the target",
            Kind    => Profile.Negative_Msg);

        Log.Put_Line
           (Message =>
               "After resolving this problem use Rcf.Build_Remote_Library " &
                  "to create the Ada library on the target.",
            Kind    => Profile.Negative_Msg);

    end if;



    -- Rci.Release
    --    (Remote_Connection => Remote_Connection,
    --     Status            => Local_Status,
    --     Trace_Command     => Trace_Rci_Commands);
    --
exception
    when others =>
        Unhandled_Exception (Status, "Create_Program_Library");
        -- BEGIN
        --    Rci.Release
        --       (Remote_Connection => Remote_Connection,
        --        Status            => Local_Status,
        --        Trace_Command     => Trace_Rci_Commands);
        --
        -- EXCEPTION
        --    WHEN OTHERS =>
        --       NULL;
        -- END;
        --
end Create_Program_Library;



E3 Meta Data

    nblk1=6
    nid=0
    hdr6=c
        [0x00] rec0=18 rec1=00 rec2=01 rec3=01a
        [0x01] rec0=00 rec1=00 rec2=06 rec3=006
        [0x02] rec0=17 rec1=00 rec2=02 rec3=04c
        [0x03] rec0=1d rec1=00 rec2=03 rec3=048
        [0x04] rec0=1b rec1=00 rec2=04 rec3=06c
        [0x05] rec0=1e rec1=00 rec2=05 rec3=000
    tail 0x21739be308565750996cc 0x42a00088462062803