|
|
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: 10862 (0x2a6e)
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 Byte_Defs;
with Machine;
with Transport_Defs;
package Transport is
pragma Subsystem (Network, Private_Part => Closed);
pragma Module_Name (4, 2509);
type Connection_Id is private;
-- Identifies the local resources associated with a connection.
Null_Connection_Id : constant Connection_Id;
function Local_Host (Network : Transport_Defs.Network_Name)
return Transport_Defs.Host_Id;
-- The ID which identifies your machine in the given NETWORK.
-- All defined network_names can be scanned:
type Network_Name_Iterator is limited private;
procedure Init (Iter : in out Network_Name_Iterator);
procedure Next (Iter : in out Network_Name_Iterator);
function Done (Iter : Network_Name_Iterator) return Boolean;
function Value (Iter : Network_Name_Iterator)
return Transport_Defs.Network_Name;
-- All open connection_id's can be scanned:
type Connection_Id_Iterator is limited private;
procedure Init (Iter : in out Connection_Id_Iterator);
procedure Next (Iter : in out Connection_Id_Iterator);
function Done (Iter : Connection_Id_Iterator) return Boolean;
function Value (Iter : Connection_Id_Iterator) return Connection_Id;
procedure Open (Connection : out Transport.Connection_Id;
Status : out Transport_Defs.Status_Code;
Network : Transport_Defs.Network_Name;
Local_Socket : Transport_Defs.Socket_Id :=
Transport_Defs.Null_Socket_Id);
-- Allocate the local resources required to establish a
-- connection. Any subsequent connection which may be
-- established will be via the given NETWORK, using the given
-- LOCAL_SOCKET. If LOCAL_SOCKET = NULL_SOCKET_ID, the
-- transport service will invent a socket_id which is not
-- currently in use, and assign it to this connection.
procedure Close (Connection : Transport.Connection_Id);
-- Deallocate local resources.
-- If the connection is connected, disconnect it.
-- If the connection is not open, do nothing.
procedure Connect (Connection : Transport.Connection_Id;
Status : out Transport_Defs.Status_Code;
Remote_Host : Transport_Defs.Host_Id;
Remote_Socket : Transport_Defs.Socket_Id;
Max_Wait : Duration := Duration'Last);
-- Initiate a connection to the specified remote host and socket.
-- The CONNECTION must be open.
procedure Connect (Connection : Transport.Connection_Id;
Status : out Transport_Defs.Status_Code;
Max_Wait : Duration := Duration'Last);
-- Wait for a connection initiated by some other task.
-- The CONNECTION must be open.
procedure Disconnect (Connection : Transport.Connection_Id);
-- Break a connection.
-- If the CONNECTION is not connected, do nothing.
function Is_Open (Connection : Transport.Connection_Id) return Boolean;
function Is_Connected (Connection : Transport.Connection_Id) return Boolean;
-- function is_connecting_passive
-- (connection : transport.connection_id)
-- return Boolean;
-- function is_connecting_active
-- (connection : transport.connection_id)
-- return Boolean;
function Network (Connection : Transport.Connection_Id)
return Transport_Defs.Network_Name;
function Local_Host (Connection : Transport.Connection_Id)
return Transport_Defs.Host_Id;
function Local_Socket (Connection : Transport.Connection_Id)
return Transport_Defs.Socket_Id;
function Remote_Host (Connection : Transport.Connection_Id)
return Transport_Defs.Host_Id;
function Remote_Socket (Connection : Transport.Connection_Id)
return Transport_Defs.Socket_Id;
procedure Transmit (Connection : Transport.Connection_Id;
Status : out Transport_Defs.Status_Code;
Data : Byte_Defs.Byte_String;
Count : out Natural;
Max_Wait : Duration := Duration'Last;
More : Boolean := False);
-- Transmit some data. The CONNECTION must be connected.
-- STATUS is returned OK, unless the connection is broken.
-- DATA is the data to be transmitted. COUNT is returned the
-- number of bytes actually transmitted. This may differ
-- from DATA'LENGTH if the connection breaks, or if the
-- operation times out.
-- MAX_WAIT is the maximum amount of time to spend trying to
-- transmit the data. The operation completes when all the
-- DATA bytes have been transmitted, or when MAX_WAIT
-- expires, whichever comes first.
-- MORE indicates that the service may hold the data in its
-- local buffers, to be combined with more data which the
-- client is about to transmit. This is a performance hint
-- only: the service is free to ignore it and transmit all
-- data as soon as it gets it.
-- This operation may simply store data in a local buffer,
-- and actually transmit it at some future opportunity. If
-- buffering is involved, the service assumes responsibility
-- for transmitting the buffered data.
procedure Receive (Connection : Transport.Connection_Id;
Status : out Transport_Defs.Status_Code;
Data : out Byte_Defs.Byte_String;
Count : out Natural;
Max_Wait : Duration := Duration'Last);
-- Receive some data. The CONNECTION must be connected.
-- STATUS is returned OK, unless the connection is broken.
-- DATA is the buffer into which to store received data.
-- COUNT is returned the number of bytes actually stored.
-- This may be less than DATA'LENGTH.
-- MAX_WAIT is the maximum amount of time to spend waiting
-- to receive some data. The operation completes when one
-- or more DATA bytes have been received, or when MAX_WAIT
-- expires, whichever comes first.
-- This procedure does not wait to fill up the DATA buffer.
-- As soon as ANY data are received, it returns them.
function Hash (Connection : Transport.Connection_Id) return Natural;
-- Calculate a value suitable for hashing.
-- Each connection is owned by some job.
-- By default, a connection is owned by the job which opens it.
-- Whenever a job terminates, all connections owned by it are
-- automatically closed.
procedure Set_Owner (Connection : Transport.Connection_Id;
Owner : Machine.Job_Id);
-- Set the owner of the connection. This procedure allows
-- a connection to be given away to some other job.
function Get_Owner (Connection : Transport.Connection_Id)
return Machine.Job_Id;
-- Return the owner of the connection.
procedure Close_All (Owner : Machine.Job_Id);
-- Close all connections owned by the given Owner.
-- This happens automatically when the Owner terminates.
function Is_Connecting_Passive
(Connection : Transport.Connection_Id) return Boolean;
function Is_Connecting_Active
(Connection : Transport.Connection_Id) return Boolean;
pragma Consume_Offset (4);
-- The following 3 operations were invented to support AX25.
-- Set_ and Get_Options allow the user to select values of
-- various protocol parameters (for example, packet size,
-- window size, timeouts). Get_Statistics allows the user
-- to monitor the operation of the protocol.
-- For AX25, the Context string is the 'image (ASCII decimal)
-- of the port number of a port used for AX25 communication.
function Set_Options (Network : Transport_Defs.Network_Name;
Context : String := "";
Options : String := "") -- new option values
return String;
-- The Options string is a sequence of option name/value
-- pairs, using the option parser syntax "<name>=<value>,...".
-- The return value is "" if the operation succeeded.
-- A non-null value is an error message, which may contain
-- ASCII.LF's to indicate line breaks.
function Get_Options (Network : Transport_Defs.Network_Name;
Context : String := "")
return String; -- all option values
-- The return value is a list of all current options
-- and their current values, in the same syntax as
-- Set_Options.Options. A null value indicates that
-- the Network/Context pair is not defined or has no
-- options.
function Get_Statistics
(Network : Transport_Defs.Network_Name; Context : String := "")
return String;
-- The return value is a list of all current statistics and
-- their values, in a syntax similar to Set_Options.Options.
-- A null value indicates that the Network/Context pair is
-- not defined or has no statistics.
package Route is
-- A table of 4-tuples, used for Transport level routing.
-- See package Transport_Route for background information.
procedure Define (Network : Transport_Defs.Network_Name;
Destination : Transport_Defs.Host_Id;
Subnet_Mask : Transport_Defs.Host_Id;
Route : Transport_Defs.Host_Id;
Status : out Transport_Defs.Status_Code);
procedure Undefine (Network : Transport_Defs.Network_Name;
Destination : Transport_Defs.Host_Id;
Subnet_Mask : Transport_Defs.Host_Id;
Route : Transport_Defs.Host_Id;
Status : out Transport_Defs.Status_Code);
type Iterator is private;
procedure Init (Iter : out Iterator);
procedure Next (Iter : in out Iterator);
function Done (Iter : Iterator) return Boolean;
function Network (Iter : Iterator) return Transport_Defs.Network_Name;
function Destination (Iter : Iterator) return Transport_Defs.Host_Id;
function Subnet_Mask (Iter : Iterator) return Transport_Defs.Host_Id;
function Route (Iter : Iterator) return Transport_Defs.Host_Id;
end Route;
end Transport;