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

⟦f7d3aa5c9⟧ Ada Source

    Length: 8192 (0x2000)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Rs6000_Remote_Exec, seg_058626

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 Ftp;
with Ftp_Defs;
with Ftp_Profile;
with Io;
with Profile;
with Remote_Operations;
with System_Utilities;
with Time_Utilities;
package body Rs6000_Remote_Exec is

    package Ro renames Remote_Operations;
    package Su renames System_Utilities;
    package Tu renames Time_Utilities;

    Printer_User : constant String := "r1000";
    Printer_User_Password : constant String := "Rational";
    Rs6000 : constant String := "aconit";

    The_Context : Ro.Context;  
    The_Status : Ro.Error_Status;

    procedure Initialize is
    begin
        Ro.Acquire (A_Context => The_Context,
                    Status => The_Status,
                    Machine => Rs6000,
                    User => Printer_User,
                    Password => Printer_User_Password,
                    Session => "",
                    Instance => "");
    end Initialize;


    procedure Execute (Command : String := "") is
    begin
        Ro.Execute (Command => Command,
                    In_Context => The_Context,
                    Status => The_Status,
                    Timeout => Remote_Operations.Wait_Forever);
    end Execute;


    procedure Put (File : String := "") is
    begin
        [statement]
    end Put;

    procedure Finalize is
    begin
        Ro.Release (A_Context => The_Context,
                    Status => The_Status,
                    Idle_Timeout => Remote_Operations.Default);
    end Finalize;

    procedure Spool (File : String := "") is
        The_Context : Ro.Context;
        The_Status : Ro.Error_Status;

        Temp_Name : constant String :=
           "/tmp/" & Su.User_Name &
              Tu.Image (Date => Tu.Get_Time,
                        Date_Style => Time_Utilities.Expanded,
                        Time_Style => Time_Utilities.Ada,
                        Contents => Time_Utilities.Time_Only);
    begin
        Io.Echo_Line (File & " spooled to Aconit");
        Ro.Acquire (A_Context => The_Context,
                    Status => The_Status,
                    Machine => Rs6000,
                    User => Printer_User,
                    Password => Printer_User_Password,
                    Session => "",  
                    Instance => "");  
        if Ro."=" (The_Context, Ro.Nil_Context) then
            Io.Echo_Line ("Can't obtain context, check Dtia server");
        end if;
        -- Ro.Put (From_File => File,
        --         To_File => Temp_Name,
        --         In_Context => The_Context,
        --         Status => The_Status,
        --         Append => False,
        --         Options => "");

        Profile.Set (Profile => "<QUIET>", Status => The_Status);

        Ftp.Put (From_Local_File => File,
                 To_Remote_File => Temp_Name,
                 Remote_Machine => Rs6000,
                 Username => Printer_User,
                 Password => Printer_User_Password,
                 Account => Ftp_Profile.Account,
                 Remote_Directory => Ftp_Profile.Remote_Directory,
                 Remote_Type => "unix",
                 Append_To_File => False,
                 Transfer_Type => Ftp_Defs.Image,
                 Transfer_Mode => Ftp_Profile.Transfer_Mode,
                 Transfer_Structure => Ftp_Profile.Transfer_Structure,
                 Send_Port => Ftp_Profile.Send_Port_Enabled,
                 Response => Profile.Get);
        Ro.Execute (Command => "lpr -Paab " & Temp_Name,
                    In_Context => The_Context,
                    Status => The_Status,
                    Timeout => Remote_Operations.Wait_Forever);
        Ro.Delete_File (In_Context => The_Context,
                        With_Name => Temp_Name,
                        Status => The_Status,
                        Options => "");
        Ro.Release (A_Context => The_Context,
                    Status => The_Status,
                    Idle_Timeout => Remote_Operations.Default);
    end Spool;

end Rs6000_Remote_Exec;

E3 Meta Data

    nblk1=7
    nid=2
    hdr6=a
        [0x00] rec0=25 rec1=00 rec2=01 rec3=020
        [0x01] rec0=1e rec1=00 rec2=04 rec3=040
        [0x02] rec0=18 rec1=00 rec2=03 rec3=03e
        [0x03] rec0=13 rec1=00 rec2=06 rec3=042
        [0x04] rec0=05 rec1=00 rec2=05 rec3=000
        [0x05] rec0=04 rec1=00 rec2=02 rec3=000
        [0x06] rec0=04 rec1=00 rec2=02 rec3=001
    tail 0x2010517a688b1637d0023 0x42a00088462060003
Free Block Chain:
  0x2: 0000  00 07 00 43 80 0f 74 69 6f 6e 73 2e 44 65 66 61  ┆   C  tions.Defa┆
  0x7: 0000  00 00 00 10 80 0d 20 20 20 20 20 52 6f 2e 45 78  ┆           Ro.Ex┆