|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 22528 (0x5800)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, package Ftp, pragma Module_Name 4 3538, pragma Subsystem Ftp_Interface, seg_001b72
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦5a81ac88f⟧ »Space Info Vol 1«
└─⟦this⟧
with Profile;
with Ftp_Defs;
with Ftp_Profile;
with Ftp_Name_Map;
with File_Transfer;
package Ftp is
pragma Subsystem (Ftp_Interface, Private_Part => Closed);
pragma Module_Name (4, 3538);
function Profile_Get return Profile.Response_Profile renames Profile.Get;
-- This declaration is introduced to avoid a name collision.
----|| non-interactive transfers ||----
-- Move a file to some other machine:
procedure Put (From_Local_File : String := "<IMAGE>";
To_Remote_File : String := "";
Remote_Machine : String := Ftp_Profile.Remote_Machine;
Username : String := Ftp_Profile.Username;
Password : String := Ftp_Profile.Password;
Account : String := Ftp_Profile.Account;
Remote_Directory : String := Ftp_Profile.Remote_Directory;
Remote_Type : Ftp_Name_Map.Machine_Type :=
Ftp_Profile.Remote_Type;
Append_To_File : Boolean := False;
Transfer_Type : Ftp_Defs.Type_Code :=
Ftp_Profile.Transfer_Type;
Transfer_Mode : Ftp_Defs.Mode_Code :=
Ftp_Profile.Transfer_Mode;
Transfer_Structure : Ftp_Defs.Structure_Code :=
Ftp_Profile.Transfer_Structure;
Send_Port : Boolean := Ftp_Profile.Send_Port_Enabled;
Response : Profile.Response_Profile := Profile.Get);
-- Get a file from some other machine:
procedure Get (From_Remote_File : String := "";
To_Local_File : String := "";
Remote_Machine : String := Ftp_Profile.Remote_Machine;
Username : String := Ftp_Profile.Username;
Password : String := Ftp_Profile.Password;
Account : String := Ftp_Profile.Account;
Remote_Directory : String := Ftp_Profile.Remote_Directory;
Remote_Type : Ftp_Name_Map.Machine_Type :=
Ftp_Profile.Remote_Type;
Append_To_File : Boolean := False;
Transfer_Type : Ftp_Defs.Type_Code :=
Ftp_Profile.Transfer_Type;
Transfer_Mode : Ftp_Defs.Mode_Code :=
Ftp_Profile.Transfer_Mode;
Transfer_Structure : Ftp_Defs.Structure_Code :=
Ftp_Profile.Transfer_Structure;
Send_Port : Boolean := Ftp_Profile.Send_Port_Enabled;
Response : Profile.Response_Profile := Ftp.Profile_Get);
-- The following operations are more interactive, that is,
-- they require that you first establish a connection to
-- a remote machine, and then interact with it to transfer
-- files. Using FTP interactively allows you to do more
-- things than you can do non-interactively.
----|| login operations ||----
procedure Connect (To_Machine : String := Ftp_Profile.Remote_Machine;
Auto_Login : Boolean := Ftp_Profile.Auto_Login;
Username : String := Ftp_Profile.Username;
Password : String := Ftp_Profile.Password;
Account : String := Ftp_Profile.Account;
Remote_Directory : String :=
Ftp_Profile.Remote_Directory;
Remote_Roof : String := Ftp_Profile.Remote_Roof;
Remote_Type : Ftp_Name_Map.Machine_Type :=
Ftp_Profile.Remote_Type;
Transfer_Type : Ftp_Defs.Type_Code :=
Ftp_Profile.Transfer_Type;
Transfer_Mode : Ftp_Defs.Mode_Code :=
Ftp_Profile.Transfer_Mode;
Transfer_Structure : Ftp_Defs.Structure_Code :=
Ftp_Profile.Transfer_Structure;
Send_Port : Boolean := Ftp_Profile.Send_Port_Enabled;
Response : Profile.Response_Profile := Profile.Get);
procedure Login (Username : String := Ftp_Profile.Username;
Password : String := Ftp_Profile.Password;
Account : String := Ftp_Profile.Account;
Remote_Directory : String := Ftp_Profile.Remote_Directory;
Remote_Roof : String := Ftp_Profile.Remote_Roof;
Remote_Type : Ftp_Name_Map.Machine_Type :=
Ftp_Profile.Remote_Type;
Transfer_Type : Ftp_Defs.Type_Code :=
Ftp_Profile.Transfer_Type;
Transfer_Mode : Ftp_Defs.Mode_Code :=
Ftp_Profile.Transfer_Mode;
Transfer_Structure : Ftp_Defs.Structure_Code :=
Ftp_Profile.Transfer_Structure;
Send_Port : Boolean := Ftp_Profile.Send_Port_Enabled;
Response : Profile.Response_Profile := Profile.Get);
procedure Disconnect (Response : Profile.Response_Profile := Profile.Get);
procedure Abandon (Response : Profile.Response_Profile := Profile.Get);
-- Like Disconnect, but a bit stronger:
-- Guaranteed to terminate the connection,
-- even if the remote server is unresponsive.
----|| transfer parameter selection ||----
-- The following procedures override the FTP_Profile values,
-- but ONLY for the duration of the current connection.
-- To modify the FTP_Profile values, see FTP_Profile.Set.
procedure Use_Type (Value : Ftp_Defs.Type_Code := Ftp_Profile.Transfer_Type;
Response : Profile.Response_Profile := Profile.Get;
Account : String := Ftp_Profile.Account);
procedure Use_Mode (Value : Ftp_Defs.Mode_Code := Ftp_Profile.Transfer_Mode;
Response : Profile.Response_Profile := Profile.Get;
Account : String := Ftp_Profile.Account);
procedure Use_Structure (Value : Ftp_Defs.Structure_Code :=
Ftp_Profile.Transfer_Structure;
Response : Profile.Response_Profile := Profile.Get;
Account : String := Ftp_Profile.Account);
procedure Use_Account (Account : String := Ftp_Profile.Account;
Response : Profile.Response_Profile := Profile.Get);
procedure Send_Port (Enabled : Boolean := Ftp_Profile.Send_Port_Enabled;
Response : Profile.Response_Profile := Profile.Get);
procedure Use_Remote_Type
(Value : Ftp_Name_Map.Machine_Type := Ftp_Profile.Remote_Type;
Response : Profile.Response_Profile := Profile.Get);
procedure Use_Remote_Roof
(Value : String := Ftp_Profile.Remote_Roof;
Response : Profile.Response_Profile := Profile.Get);
function Current_Remote_Type return Ftp_Name_Map.Machine_Type
renames Ftp_Profile.Current_Remote_Type;
function Current_Remote_Roof return String
renames Ftp_Profile.Current_Remote_Roof;
function Current_Connection return File_Transfer.Connect_Id;
-- Returns the File_Transfer connection associated with the
-- caller's current session. File_Transfer operations, such
-- as querying the outcome of the last transaction, can be
-- performed on the resulting value.
----|| remote directory operations ||----
procedure Change_Working_Directory
(Remote_Directory : String := Ftp_Profile.Remote_Directory;
Response : Profile.Response_Profile := Profile.Get;
Account : String := FtpProfile.Account);
procedure Cwd (Remote_Directory : String := Ftp_Profile.Remote_Directory;
Response : Profile.Response_Profile := Profile.Get;
Account : String := Ftp_Profile.Account)
renames Change_Working_Directory;
procedure List (Remote_Pathname : String := "";
Verbose : Boolean := True;
To_Local_File : String :=
""; -- default is current output
Response : Profile.Response_Profile := Profile.Get;
Account : String := Ftp_Profile.Account);
procedure Delete (Remote_File : String;
Response : Profile.Response_Profile := Profile.Get;
Account : String := Ftp_Profile.Account);
----|| status operations ||----
procedure Status (Argument : String := "";
Response : Profile.Response_Profile := Profile.Get);
-- Display the status of the current connection.
procedure Status_All (Argument : String := "";
Response : Profile.Response_Profile := Profile.Get);
-- Display the status of all current connections.
procedure Remote_Status (Argument : String := "";
Response : Profile.Response_Profile := Profile.Get;
Account : String := Ftp_Profile.Account);
procedure Remote_Help (Argument : String := "";
Response : Profile.Response_Profile := Profile.Get;
Account : String := Ftp_Profile.Account);
procedure Show_Profile (Response : Profile.Response_Profile := Profile.Get)
renames Ftp_Profile.Show;
-- Display the settings in the current profile.
----|| file transfer operations ||----
procedure Store (From_Local_File : String := "<IMAGE>";
To_Remote_File : String := "";
Append_To_File : Boolean := False;
Response : Profile.Response_Profile := Profile.Get;
Remote_Type : Ftp_Name_Map.Machine_Type :=
Ftp.Current_Remote_Type;
Account : String := Ftp_Profile.Account);
procedure Retrieve (From_Remote_File : String := "";
To_Local_File : String := "";
Append_To_File : Boolean := False;
Response : Profile.Response_Profile := Profile.Get;
Remote_Type : Ftp_Name_Map.Machine_Type :=
Ftp.Current_Remote_Type;
Account : String := Ftp_Profile.Account);
----|| transferring file sets ||----
-- These operations are like their single-file cousins,
-- above, except that they take wildcards, and move a
-- bunch of files at a crack. They're designed to support
-- moving files between a subtree of the local directory
-- system (whose root is designated by "Local_Roof"), to
-- and from an isomorphic subtree of the remote directory
-- system (whose root is designated by "Remote_Roof".
-- File names are transformed between the naming conventions
-- of the R1000 and whatever remote operating system is
-- involved (designated by Remote_Type). The transformation
-- is complex: it is encapsulated in package FTP_Name_Map.
-- If you want to flatten a file_set, that is, move files from
-- many directories on one machine into a single directory on
-- another, specify "" as the source roof (local_roof for Put,
-- remote_roof for Get).
-- Get_List and Retrieve_List retrieve files using a list
-- stored in a file on your local machine. This file must
-- contain text, with one fully-qualified file name (in the
-- form used by the REMOTE machine) per line. No comments,
-- no extra white space.
-- Get_Set and Retrieve_Set depend on the remote machine to
-- produce a list of files from the File_Set you specify:
-- using the same primitive as List (Verbose => False).
-- Sometimes this doesn't work, either because the wild
-- card semantics on that machine won't stretch, or because
-- the remote FTP server doesn't support wild cards.
procedure Put_Set (From_Local_File_Set : String := "<IMAGE>";
Local_Roof : String := "$";
Remote_Roof : String := Ftp_Profile.Remote_Roof;
Remote_Machine : String := Ftp_Profile.Remote_Machine;
Username : String := Ftp_Profile.Username;
Password : String := Ftp_Profile.Password;
Account : String := Ftp_Profile.Account;
Remote_Directory : String :=
Ftp_Profile.Remote_Directory;
Remote_Type : Ftp_Name_Map.Machine_Type :=
Ftp_Profile.Remote_Type;
Append_To_File : Boolean := False;
Transfer_Type : Ftp_Defs.Type_Code :=
Ftp_Profile.Transfer_Type;
Transfer_Mode : Ftp_Defs.Mode_Code :=
Ftp_Profile.Transfer_Mode;
Transfer_Structure : Ftp_Defs.Structure_Code :=
Ftp_Profile.Transfer_Structure;
Send_Port : Boolean := Ftp_Profile.Send_Port_Enabled;
Response : Profile.Response_Profile := Profile.Get);
procedure Get_Set (From_Remote_File_Set : String := "";
Local_Roof : String := "$";
Remote_Roof : String := Ftp_Profile.Remote_Roof;
Remote_Machine : String := Ftp_Profile.Remote_Machine;
Username : String := Ftp_Profile.Username;
Password : String := Ftp_Profile.Password;
Account : String := Ftp_Profile.Account;
Remote_Directory : String :=
Ftp_Profile.Remote_Directory;
Remote_Type : Ftp_Name_Map.Machine_Type :=
Ftp_Profile.Remote_Type;
Append_To_File : Boolean := False;
Transfer_Type : Ftp_Defs.Type_Code :=
Ftp_Profile.Transfer_Type;
Transfer_Mode : Ftp_Defs.Mode_Code :=
Ftp_Profile.Transfer_Mode;
Transfer_Structure : Ftp_Defs.Structure_Code :=
Ftp_Profile.Transfer_Structure;
Send_Port : Boolean := Ftp_Profile.Send_Port_Enabled;
Response : Profile.Response_Profile := Profile.Get);
procedure Get_List (Remote_File_List : String := "";
Local_Roof : String := "$";
Remote_Roof : String := Ftp_Profile.Remote_Roof;
Remote_Machine : String := Ftp_Profile.Remote_Machine;
Username : String := Ftp_Profile.Username;
Password : String := Ftp_Profile.Password;
Account : String := Ftp_Profile.Account;
Remote_Directory : String :=
Ftp_Profile.Remote_Directory;
Remote_Type : Ftp_Name_Map.Machine_Type :=
Ftp_Profile.Remote_Type;
Append_To_File : Boolean := False;
Transfer_Type : Ftp_Defs.Type_Code :=
Ftp_Profile.Transfer_Type;
Transfer_Mode : Ftp_Defs.Mode_Code :=
Ftp_Profile.Transfer_Mode;
Transfer_Structure : Ftp_Defs.Structure_Code :=
Ftp_Profile.Transfer_Structure;
Send_Port : Boolean := Ftp_Profile.Send_Port_Enabled;
Response : Profile.Response_Profile := Profile.Get);
procedure Store_Set (From_Local_File_Set : String := "<IMAGE>";
Local_Roof : String := "$";
Remote_Roof : String := Ftp.Current_Remote_Roof;
Remote_Type : Ftp_Name_Map.Machine_Type :=
Ftp.Current_Remote_Type;
Append_To_File : Boolean := False;
Response : Profile.Response_Profile := Profile.Get;
Account : String := Ftp_Profile.Account);
procedure Retrieve_Set (From_Remote_File_Set : String := "";
Local_Roof : String := "$";
Remote_Roof : String := Ftp.Current_Remote_Roof;
Remote_Type : Ftp_Name_Map.Machine_Type :=
Ftp.Current_Remote_Type;
Append_To_File : Boolean := False;
Response : Profile.Response_Profile := Profile.Get;
Account : String := Ftp_Profile.Account);
procedure Retrieve_List (Remote_File_List : String := "";
Local_Roof : String := "$";
Remote_Roof : String := Ftp.Current_Remote_Roof;
Remote_Type : Ftp_Name_Map.Machine_Type :=
Ftp.Current_Remote_Type;
Append_To_File : Boolean := False;
Response : Profile.Response_Profile := Profile.Get;
Account : String := Ftp_Profile.Account);
----|| constants of imported types ||----
Ascii : constant Ftp_Defs.Type_Code := Ftp_Defs.Ascii;
Ebcdic : constant Ftp_Defs.Type_Code := Ftp_Defs.Ebcdic;
Image : constant Ftp_Defs.Type_Code := Ftp_Defs.Image;
Binary : constant Ftp_Defs.Type_Code := Ftp_Defs.Binary;
Local_Binary : constant Ftp_Defs.Type_Code := Ftp_Defs.Local_Binary;
Local_Byte : constant Ftp_Defs.Type_Code := Ftp_Defs.Local_Byte;
Ascii_Cc : constant Ftp_Defs.Type_Code := Ftp_Defs.Ascii_Cc;
Ebcdic_Cc : constant Ftp_Defs.Type_Code := Ftp_Defs.Ebcdic_Cc;
Ascii_Telnet : constant Ftp_Defs.Type_Code := Ftp_Defs.Ascii_Telnet;
Ebcdic_Telnet : constant Ftp_Defs.Type_Code := Ftp_Defs.Ebcdic_Telnet;
Stream : constant Ftp_Defs.Mode_Code := Ftp_Defs.Stream;
Block : constant Ftp_Defs.Mode_Code := Ftp_Defs.Block;
Compressed : constant Ftp_Defs.Mode_Code := Ftp_Defs.Compressed;
File : constant Ftp_Defs.Structure_Code := Ftp_Defs.File;
Recrd : constant Ftp_Defs.Structure_Code := Ftp_Defs.Recrd;
Page : constant Ftp_Defs.Structure_Code := Ftp_Defs.Page;
Rational : constant Ftp_Name_Map.Machine_Type := Ftp_Name_Map.Rational;
R1000 : constant Ftp_Name_Map.Machine_Type := Rational;
Unix : constant Ftp_Name_Map.Machine_Type := Ftp_Name_Map.Unix;
Aos : constant Ftp_Name_Map.Machine_Type := Ftp_Name_Map.Aos;
Mv : constant Ftp_Name_Map.Machine_Type := Aos;
Vms : constant Ftp_Name_Map.Machine_Type := Ftp_Name_Map.Vms;
Vax : constant Ftp_Name_Map.Machine_Type := Vms;
Mvs : constant Ftp_Name_Map.Machine_Type := Ftp_Name_Map.Mvs;
end Ftp;
nblk1=15
nid=0
hdr6=2a
[0x00] rec0=1d rec1=00 rec2=01 rec3=02a
[0x01] rec0=14 rec1=00 rec2=02 rec3=01c
[0x02] rec0=12 rec1=00 rec2=03 rec3=02c
[0x03] rec0=13 rec1=00 rec2=04 rec3=060
[0x04] rec0=11 rec1=00 rec2=05 rec3=00c
[0x05] rec0=17 rec1=00 rec2=06 rec3=016
[0x06] rec0=11 rec1=00 rec2=07 rec3=088
[0x07] rec0=16 rec1=00 rec2=08 rec3=064
[0x08] rec0=00 rec1=00 rec2=15 rec3=002
[0x09] rec0=16 rec1=00 rec2=09 rec3=034
[0x0a] rec0=16 rec1=00 rec2=0a rec3=05a
[0x0b] rec0=14 rec1=00 rec2=0b rec3=060
[0x0c] rec0=12 rec1=00 rec2=0c rec3=072
[0x0d] rec0=12 rec1=00 rec2=0d rec3=062
[0x0e] rec0=11 rec1=00 rec2=0e rec3=06e
[0x0f] rec0=10 rec1=00 rec2=0f rec3=062
[0x10] rec0=11 rec1=00 rec2=10 rec3=03a
[0x11] rec0=11 rec1=00 rec2=11 rec3=03a
[0x12] rec0=12 rec1=00 rec2=12 rec3=000
[0x13] rec0=11 rec1=00 rec2=13 rec3=020
[0x14] rec0=0d rec1=00 rec2=14 rec3=000
tail 0x20100efaa7da18d4353ca 0x42a00088462065003