|
|
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: 2522 (0x9da)
Types: TextFile
Names: »V«
└─⟦149519bd4⟧ Bits:30000546 8mm tape, Rational 1000, !projects 93-07-13
└─⟦124ff5788⟧ »DATA«
└─⟦this⟧
└─⟦f64eaa120⟧ Bits:30000752 8mm tape, Rational 1000, !projects 93 02 16
└─⟦6f12a12be⟧ »DATA«
└─⟦this⟧
WITH Transport;
WITH Transport_Defs;
GENERIC
WITH PROCEDURE Serve (Connection : Transport.Connection_Id) IS <>;
-- Service an incoming connection. The connection is already
-- open and connected when passed, and will be closed on return.
PACKAGE Transport_Server IS
TYPE Pool_Id IS PRIVATE;
FUNCTION Create (Network : Transport_Defs.Network_Name;
Local_Socket : Transport_Defs.Socket_Id;
Max_Servers : Natural := Natural'Last) RETURN Pool_Id;
-- Create a pool of server tasks, which may expand to have
-- as many as MAX_SERVERS tasks in it. Tasks are created
-- in response to incoming connections on the given NETWORK
-- and LOCAL_SOCKET.
PROCEDURE Set_Max_Servers (Pool : Pool_Id; Max_Servers : Natural);
-- Set the maximum number of server tasks which may be
-- created for the pool. If more tasks currently exist,
-- they will continue to exist until they are done serving
-- their connections, but no new tasks will be created.
FUNCTION Network (Pool : Pool_Id) RETURN Transport_Defs.Network_Name;
FUNCTION Local_Socket (Pool : Pool_Id) RETURN Transport_Defs.Socket_Id;
FUNCTION Max_Servers (Pool : Pool_Id) RETURN Natural;
FUNCTION Servers (Pool : Pool_Id) RETURN Natural;
PROCEDURE Finalize (Abort_Servers : Boolean := False);
-- Terminate the tasks which depend on this instantiation,
-- and close the transport.connections which they have open.
-- By default, existing server tasks will continue to run
-- until their clients (somewhere else in the network) close
-- their connections. If ABORT_SERVERS => TRUE, then the
-- servers will be aborted immediately.
-- Procedure finalize must be called before leaving a scope
-- in which this package is instantiated (because of the Ada
-- rules for task termination: see LRM section 9.4).
-- In the cross-compiled version of this package (i.e. the
-- one that uses shared elaboration), Finalize does nothing.
PRIVATE
TYPE Pool_Type (Network_Length, Local_Socket_Length : Natural);
TYPE Pool_Id IS ACCESS Pool_Type;
TYPE Pool_Type (Network_Length, Local_Socket_Length : Natural) IS
RECORD
Servers : Natural := 0;
Max_Servers : Natural;
Network : Transport_Defs.Network_Name (1 .. Network_Length);
Local_Socket : Transport_Defs.Socket_Id (1 .. Local_Socket_Length);
Next : Pool_Id;
END RECORD;
END Transport_Server;