DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400 Tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Rational R1000/400 Tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download
Index: ┃ T V

⟦21e5d76b4⟧ TextFile

    Length: 2272 (0x8e0)
    Types: TextFile
    Names: »V«

Derivation

└─⟦5f3412b64⟧ Bits:30000745 8mm tape, Rational 1000, ENVIRONMENT 12_6_5 TOOLS 
    └─ ⟦91c658230⟧ »DATA« 
        └─⟦458657fb6⟧ 
            └─⟦a5bbbb819⟧ 
                └─⟦this⟧ 
└─⟦d10a02448⟧ Bits:30000409 8mm tape, Rational 1000, ENVIRONMENT, D_12_7_3
    └─ ⟦fc9b38f02⟧ »DATA« 
        └─⟦9b46a407a⟧ 
            └─⟦eec0a994f⟧ 
                └─⟦this⟧ 

TextFile

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

    pragma Subsystem (Network, Private_Part => Closed);
    pragma Module_Name (4, 2520);

    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;
end Transport_Server;