-- XConnection.mesa -- Created By Jeff Weinstein on 2-May-87 15:52:09 DIRECTORY Environment, TcpStream; XConnection: DEFINITIONS = BEGIN -- Constants -- MaxClients:CARDINAL = 32; -- Types -- State:TYPE = { open, unused, closing }; Client:TYPE = [0..MaxClients); -- Signals and Errors -- ConnectionInUse:ERROR; ConnectionNotOpen:ERROR; ConnectionNotClosing:ERROR; QueueEmpty:ERROR; -- Procedures -- CreateConnection: PROCEDURE [client:Client, connection:TcpStream.Handle]; DestroyConnection: PROCEDURE [client:Client]; ClosingConnection: PROCEDURE [client:Client]; EnQueueRequest: PROCEDURE [client:Client, request:LONG POINTER TO UNSPECIFIED, size:LONG CARDINAL]; DeQueueRequest: PROCEDURE [client:Client] RETURNS [request:LONG POINTER TO UNSPECIFIED, size:LONG CARDINAL]; PendingRequests: PROCEDURE RETURNS [numRequests:CARDINAL, clients:ARRAY[0..MaxClients) OF BOOLEAN]; PendingConnections: PROCEDURE RETURNS[anyPending:BOOLEAN]; EnQueueConnection: PROCEDURE [connection:TcpStream.Handle]; DeQueueConnection: PROCEDURE RETURNS [connection:TcpStream.Handle]; SendToClient: PROCEDURE [client:Client, data:Environment.Block]; WaitForEventOrClient:PROCEDURE; END...