|
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 - download
Length: 21504 (0x5400) Types: Ada Source Notes: 03_class, FILE, R1k_Segment, e3_tag, package Ftp, pragma Module_Name 4 3538, pragma Subsystem Ftp_Interface, seg_028432
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000 └─ ⟦cfc2e13cd⟧ »Space Info Vol 2« └─⟦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;
nblk1=14 nid=0 hdr6=28 [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=12 rec1=00 rec2=07 rec3=000 [0x07] rec0=17 rec1=00 rec2=08 rec3=00a [0x08] rec0=15 rec1=00 rec2=09 rec3=058 [0x09] rec0=17 rec1=00 rec2=0a rec3=058 [0x0a] rec0=14 rec1=00 rec2=0b rec3=076 [0x0b] rec0=14 rec1=00 rec2=0c rec3=036 [0x0c] rec0=11 rec1=00 rec2=0d rec3=00a [0x0d] rec0=10 rec1=00 rec2=0e rec3=056 [0x0e] rec0=11 rec1=00 rec2=0f rec3=05a [0x0f] rec0=10 rec1=00 rec2=10 rec3=046 [0x10] rec0=11 rec1=00 rec2=11 rec3=01a [0x11] rec0=13 rec1=00 rec2=12 rec3=016 [0x12] rec0=11 rec1=00 rec2=13 rec3=090 [0x13] rec0=0a rec1=00 rec2=14 rec3=000 tail 0x21722363683c172764852 0x42a00088462060003