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

⟦03d751ae9⟧ Ada Source

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

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



separate (Library_Extensions)
procedure Import_Postprocess  
             (Views_To_Import :        Directory.Naming.Iterator;
              Into_View       :        String;
              Status          : in out Simple_Status.Condition) is

    Views_2_Import : Naming.Iterator := Views_To_Import;

    Machine_Result : constant Library_Interface.String_Result :=
       Library_Interface.Remote_Machine (View => Into_View);

    Directory_Result : constant Library_Interface.String_Result :=
       Library_Interface.Remote_Directory (View => Into_View);

    Remote_Machine : constant String :=
       Machine_Result.Result (1 .. Machine_Result.Size);

    Remote_Directory : constant String :=
       Directory_Result.Result (1 .. Directory_Result.Size);

    Old_Context : Directory.Naming.Context;

    procedure Display_Information is
    begin
        if Remote_Machine = "" then
            Log.Put_Line (Message => "A null remote machine name was provided.",
                          Kind    => Profile.Warning_Msg);
        end if;
        if Remote_Directory = "" then
            Log.Put_Line (Message =>
                             "A null remote directory name was provided.",
                          Kind    => Profile.Warning_Msg);
        end if;
    end Display_Information;

begin

    Log.Put_Line  
       (Message => "Import_Postprocess ( Views_To_Import =>",
        Kind    => Profile.Sharp_Msg);

    Naming.Reset (Views_2_Import);
    while not Naming.Done (Views_2_Import) loop
        Log.Put_Line  
           (Message => Naming.Source_Name (Views_2_Import),
            Kind    => Profile.Sharp_Msg);

        Naming.Next (Views_2_Import);
    end loop;


    Log.Put_Line  
       (Message => "into_view => " & Into_View & ")",
        Kind    => Profile.Sharp_Msg);


    Simple_Status.Initialize (Status);

    -- Sanity checks
    Naming.Reset (Views_2_Import);
    if Naming.Done (Views_2_Import) then
        return;  -- there are no views to import!
    end if;

    if Remote_Machine = "" or else Remote_Directory = "" then
        Display_Information;
        Set_Status
           (Status   => Status,
            Message  => "Insufficient remote program library information.",
            Severity => Simple_Status.Problem);
        return;
    end if;

    Set_Context  
       (Old_Context => Old_Context,  
        View        => Into_View,  
        Status      => Status);

    if not Simple_Status.Error (Status) then
        declare
            Remote_Connection : Rci.Context;

        begin

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

            if not Simple_Status.Error (Status) then
                declare
                    View_Object   : Directory.Object;
                    Naming_Status : Directory.Error_Status :=
                       Directory.Successful;
                begin
                    Naming.Reset (Views_2_Import);
                    while not Naming.Done (Views_2_Import) loop

                        Naming.Get_Object (Iter       => Views_2_Import,
                                           The_Object => View_Object,
                                           Status     => Naming_Status);

                        if Directory."=" (Naming_Status,
                                          Directory.Successful) then
                            declare
                                Immediate_Import : constant String :=
                                   Naming.Get_Full_Name (Entity => View_Object);
                            begin
                                Acquire_Visibility
                                   (Imported_View     => Immediate_Import,
                                    Into_View         => Into_View,
                                    Remote_Connection => Remote_Connection,
                                    Status            => Status);
                            end;
                        else
                            Log.Put_Line (Message => Simple_Status.Message
                                                        (Status => Status),
                                          Kind    => Profile.Negative_Msg);
                        end if;
                        Naming.Next (Views_2_Import);
                    end loop;
                exception
                    when others =>
                        Rci.Release  
                           (Remote_Connection => Remote_Connection,
                            Status            => Status,
                            Trace_Command     => Trace_Rci_Commands);
                        raise;
                end;

                Rci.Release  
                   (Remote_Connection => Remote_Connection,
                    Status            => Status,
                    Trace_Command     => Trace_Rci_Commands);

            end if;

        exception
            when others =>
                Reset_Context (Old_Context);
                raise;
        end;

        Reset_Context (Old_Context);
    end if;

exception
    when others =>
        Unhandled_Exception (Status, "Import_Postprocess");
end Import_Postprocess;


E3 Meta Data

    nblk1=6
    nid=0
    hdr6=c
        [0x00] rec0=1b rec1=00 rec2=01 rec3=098
        [0x01] rec0=23 rec1=00 rec2=02 rec3=014
        [0x02] rec0=1f rec1=00 rec2=03 rec3=06a
        [0x03] rec0=13 rec1=00 rec2=04 rec3=05c
        [0x04] rec0=15 rec1=00 rec2=05 rec3=03a
        [0x05] rec0=14 rec1=00 rec2=06 rec3=000
    tail 0x215348012856574baf833 0x42a00088462062803