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 - downloadIndex: ┃ T V ┃
Length: 14872 (0x3a18) 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 Ftp_Defs; with Transport_Defs; with Machine; package File_Transfer is pragma Subsystem (Ftp_Interface, Private_Part => Closed); pragma Module_Name (4, 4005); type Connect_Id is private; --- handle for all communications to ftp transfer service Socket_21 : constant := 21; Default_Ftp_Socket : constant Transport_Defs.Socket_Id := (1 => 0, 2 => Socket_21); procedure Open (Connection : out Connect_Id; Status : out Transport_Defs.Status_Code); ---- allocate a connection and initialize it; ---- May fail due to resource limitations and/or networking ---- problems procedure Close (Connection : Connect_Id); ---- Release connection. ---- Returned to pool for others requesters procedure Get_Owner (Connection : Connect_Id; Owner : out Machine.Job_Id); ---- return the current owner of the connection procedure Set_Owner (Connection : in Connect_Id; Owner : Machine.Job_Id); ---- change the owner of the connection ---- Connection with FTP have knowledge of the job which opened ---- the connect. It detects the death of the job and reclaims the ---- resources. If a user wishes to pass the connect_id between ---- jobs and have it be used then it should update the owner ---- the the jobs or a job which will be running the full time ---- the connection is in use. procedure Connect (Connection : Connect_Id; To_Remote_Host : Transport_Defs.Host_Id; Remote_Socket : Transport_Defs.Socket_Id := Default_Ftp_Socket); ---- Initiate a connection to the host and socket specified ---- The outcome of this operations is checked by using the ---- COMMAND_STATUS and READ_RESPONSE procedures procedure Disconnect (Connection : Connect_Id); ---- Break the current Ethernet connection ---- Used in case of a problem otherwise the SEND_QUIT command ---- should be sent. procedure Read_Response (Connection : Connect_Id; Message : out String; Count : out Natural); ---- Return the text messages recieved from the FTP server. The ---- messages will still contain the code values found at the start of ---- the messages. The messages are line oriented. Count is the number ---- of characters in the message. ---- Read_response will block waiting for the next message or ---- the end of the command. ---- Note: A string length of 80 or more ---- is recommended to get full lines of the message; ---- If no command is active then a message of length zero is returned function End_Of_Line (Connection : Connect_Id) return Boolean; ---- Returns true when the end of a given message line is reached. ---- If no command is active and the fucntion is called true ---- is returned. function End_Of_Response (Connection : Connect_Id) return Boolean; ---- When all response messages for a FTP request have been read ---- END_OF_RESPONSE will be TRUE. If no command is active and ---- the function is called True is again returned. procedure Command_Status (Connection : Connect_Id; Status : out Ftp_Defs.Status_Code); ---- Return the final status of the last operation performed. ---- If COMMAND_STATUS is called before all responses have been ---- read they will be discarded. procedure File_Transfer_Status (Connection : Connect_Id; Status : out Ftp_Defs.Transfer_Status); ---- Return status the current status of the most recent ---- file transfer procedure Send_Username (Connection : Connect_Id; Username : String); ---- Send username information to the FTP server. ---- The command should be the first command issued after a successful ---- connect. (ie REQUEST_STATUS returns a status of successful); procedure Send_Password (Connection : Connect_Id; Password : String); ---- Send the password associated with the username previously sent. ---- A command status of NEED_PASSWORD returned after the user command ---- denotes the the password information is needed. procedure Send_Account (Connection : Connect_Id; Account : String); ---- Some FTP servers require Account information for some file ---- operations. procedure Send_Quit (Connection : Connect_Id); ---- Send to command to the server informing it that the session is ---- logging off. This will cause the connection to be disconnected. procedure Set_Type (Connection : Connect_Id; New_Type : Ftp_Defs.Type_Code); ---- Send request for transfer type setting to be change to ---- specified value. First the local server checks to see that ---- it supports the TYPE if it does the request is sent. If a ---- positive response is recieved then the local setting is updated. procedure Set_Mode (Connection : Connect_Id; New_Mode : Ftp_Defs.Mode_Code); ---- Send request for transfer mode setting to be change to ---- specified value. First the local server checks to see that ---- it supports the MODE if it does the request is sent. If a ---- positive response is recieved then the local setting is updated. procedure Set_Structure (Connection : Connect_Id; New_Structure : Ftp_Defs.Structure_Code); ---- Send request for transfer mode setting to be change to ---- specified value. First the local server checks to see that ---- it supports the MODE if it does the request is sent. If a ---- positive response is recieved then the local setting is updated. procedure Set_Allocation (Connection : Connect_Id; Pages : Natural; Records : Natural); ---- Some machines will require that space be preallocated to transfer ---- data. procedure Send_Delete (Connection : Connect_Id; Remote_Filename : String); ---- Send command across link requesting the remote machine to ---- delete the named file. procedure Send_Cwd (Connection : Connect_Id; Remote_Pathname : String); ---- Send command across link requesting the remote machine to ---- update its current working directory to the pathname specified function Pio_File_Of (Connection : Connect_Id) return Ftp_Defs.Pio_Pointer; function Dio_File_Of (Connection : Connect_Id) return Ftp_Defs.Dio_Pointer; ---- Return to pointer for the files used by FTP. The FTP ---- transfer routines handle control of the file handle for the ---- local files. The functions above give the user visibility to ---- these handles so that their program can also work with the ---- file without having to pass the name around. procedure Start_Store (Connection : Connect_Id; Remote_Filename : String; Append : Boolean := False); ---- Start the process for sending a file across the network data link ---- This form assumes the user has already opened the file for reading ---- (Using either poly_io for binary transfers or device_independent_io ---- for character and byte transfers) on the file_pointers supplied by ---- the pio_of ---- Append specifies that the data sent is to be appened to the ---- contents of the remote file if it exist. procedure Start_Store (Connection : Connect_Id; Local_Filename : String; Remote_Filename : String; Append : Boolean := False); ---- Similiar to the previous store, only this version opens the file ---- for the user using the name supplied in local_filename. ---- the current transfer type setting (binary,ascii ...etc) determines ---- which type of open will be used. procedure Start_Retrieve (Connection : Connect_Id; Remote_Filename : String); ---- Request that the remote server send a copy of the file specified ---- by remote_filename be sent across the data connect and placed ---- in the local file which the use has opened using the appropriate ---- open operations with the file handle made visible by the functions ---- above procedure Start_Retrieve (Connection : Connect_Id; Local_Filename : String; Remote_Filename : String; Append : Boolean := False); ---- Request that the remote server send a copy of the file specified ---- by remote_filename be sent across the data connect and placed ---- in the local file. The local file is opened be the FTP transfer ---- worker using the local_filename supplied by the user. ---- Append specifies that the data transfered is to be appended to ---- the contents of the local file. procedure Start_Directory_List (Connection : Connect_Id; Remote_Pathname : String; Verbose : Boolean := False); ---- Request that the remote server send directory/file information ---- for the directory/file specified by remote_pathname. ---- The list is placed in the local file which the user has ---- opened via the dio_file_of. ---- The parameter verbose if true specifies is list of files and ---- file information is to be sent. If verbose is false only a ---- list of filename matching the remote_pathname is sent. procedure Start_Directory_List (Connection : Connect_Id; Local_Filename : String; Remote_Pathname : String; Verbose : Boolean := False); ---- Request that the remote server send directory/file information ---- for the directory/file specified by remote_pathname. ---- The list is placed in the local_filename. ---- The parameter verbose if true specifies is list of files and ---- file information is to be sent. If verbose is false only a ---- list of filename matching the remote_pathname is sent. procedure Send_Data_Port (Connection : Connect_Id; Host : Transport_Defs.Host_Id; Socket : Transport_Defs.Socket_Id); ---- Send information to the FTP server telling it what port ---- it should be sending the data it transfers to. function Data_Host_Id (Connection : Connect_Id) return Transport_Defs.Host_Id; function Data_Socket_Id (Connection : Connect_Id) return Transport_Defs.Socket_Id; ---- Returns the host and socket id for that data connect being used ---- on the current connection. These should be used to get ---- the information to be sent in the SEND_DATA_PORT command procedure Send_Help_Request (Connection : Connect_Id; Help_On : String := ""); ---- Request the remote ftp server to return help information cross the ---- command link. The response is read as usual with the read_response ---- procedure. procedure Send_Status_Request (Connection : Connect_Id; Status_On : String := ""); ---- Request the remote ftp server to return status information for ---- the specified argument. For the null argument the server should ---- send back general status. A none null argument the server will ---- try to send back file/directory information for the specified ---- argument. procedure Send_Verbatim (Connection : Connect_Id; Command : String); ---- Send the arguement COMMAND across the command connect unchanged. ---- This comand must be a simple command which has no side affects, ---- such as causing the server to try to transfer a file. procedure Send_Site_Command (Connection : Connect_Id; Argument : String); ---- Some servers have site specific options. Allow user ---- to send site command. The local server will register positive ---- or negative completion but as in the SEND_VERBATIM command ---- no local processing from the response occurs. (ie. local parameters ---- remain unchanged. procedure Send_Pasv (Connection : Connect_Id); ---- Request remote to go into pasv mode on its data connect ---- Remote will return identity of this port and this information ---- the local server will attempt to read this information and ---- it is queried using functions PASV_DATA_HOST and PASV_DATA_SOCKET ---- Since the response varies betweenimplementations the ---- local server may not be able to interpret the response. ---- It may be necessary for the user to visually inspect the ---- response. function Pasv_Data_Host (Connection : Connect_Id) return Transport_Defs.Host_Id; function Pasv_Data_Socket (Connection : Connect_Id) return Transport_Defs.Socket_Id; --- host and socket information for last SEND_PASV request --- if the response could not be parsed TRANSPORT_DEFS.NULL_HOST_ID, --- and TRANSPORT_DEFS.NULL_SOCKET_ID will be returned. function Is_Open (Connection : Connect_Id) return Boolean; function Is_Connected (Connection : Connect_Id) return Boolean; function Is_Logged_In (Connection : Connect_Id) return Boolean; function Current_Type (Connection : Connect_Id) return Ftp_Defs.Type_Code; function Current_Mode (Connection : Connect_Id) return Ftp_Defs.Mode_Code; function Current_Structure (Connection : Connect_Id) return Ftp_Defs.Structure_Code; function Command_Is_Active (Connection : Connect_Id) return Boolean; function Most_Recent_Command (Connection : Connect_Id) return Ftp_Defs.Ftp_Commands; function Most_Recent_Command_Status (Connection : Connect_Id) return Ftp_Defs.Status_Code; function Most_Recent_Response_Code (Connection : Connect_Id) return Natural; function Transfer_Is_Active (Connection : Connect_Id) return Boolean; function Most_Recent_Transfer_Status (Connection : Connect_Id) return Ftp_Defs.Transfer_Status; function Last_Transfer_Length (Connection : Connect_Id) return Natural; function Last_Transfer_Time (Connection : Connect_Id) return Duration; function Remote_Host_Id (Connection : Connect_Id) return Transport_Defs.Host_Id; Null_Connect_Id : constant Connect_Id; end File_Transfer;