DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400

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

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦642e2444e⟧ Ada Source

    Length: 4096 (0x1000)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, seg_00b2ec

Derivation

└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦cfc2e13cd⟧ »Space Info Vol 2« 
        └─⟦this⟧ 

E3 Source Code



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;

E3 Meta Data

    nblk1=3
    nid=0
    hdr6=6
        [0x00] rec0=1d rec1=00 rec2=01 rec3=060
        [0x01] rec0=16 rec1=00 rec2=02 rec3=03a
        [0x02] rec0=11 rec1=00 rec2=03 rec3=000
    tail 0x21708296081fa639fc39a 0x489e0066482863c01