|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T V
Length: 19030 (0x4a56)
Types: TextFile
Names: »V«
└─⟦d10a02448⟧ Bits:30000409 8mm tape, Rational 1000, ENVIRONMENT, D_12_7_3
└─⟦fc9b38f02⟧ »DATA«
└─⟦9b46a407a⟧
└─⟦12c68c704⟧
└─⟦this⟧
└─⟦5f3412b64⟧ Bits:30000745 8mm tape, Rational 1000, ENVIRONMENT 12_6_5 TOOLS
└─⟦91c658230⟧ »DATA«
└─⟦458657fb6⟧
└─⟦220843204⟧
└─⟦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 := Ftp_Profile.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;