DEFINITION MODULE wrapsock ; (* Description: provides a set of wrappers to some client side tcp socket primatives. *) FROM SYSTEM IMPORT ADDRESS ; FROM ChanConsts IMPORT OpenResults ; TYPE clientInfo = ADDRESS ; (* clientOpen - returns an ISO Modula-2 OpenResult. It attempts to connect to: hostname:portNo. If successful then the data structure, c, will have its fields initialized. *) PROCEDURE clientOpen (c: clientInfo; hostname: ADDRESS; length: CARDINAL; portNo: CARDINAL) : OpenResults ; (* clientOpenIP - returns an ISO Modula-2 OpenResult. It attempts to connect to: ipaddress:portNo. If successful then the data structure, c, will have its fields initialized. *) PROCEDURE clientOpenIP (c: clientInfo; ip: CARDINAL; portNo: CARDINAL) : OpenResults ; (* getClientPortNo - returns the portNo from structure, c. *) PROCEDURE getClientPortNo (c: clientInfo) : CARDINAL ; (* getClientHostname - fills in the hostname of the server the to which the client is connecting. *) PROCEDURE getClientHostname (c: clientInfo; hostname: ADDRESS; high: CARDINAL) ; (* getClientSocketFd - returns the sockFd from structure, c. *) PROCEDURE getClientSocketFd (c: clientInfo) : INTEGER ; (* getClientIP - returns the sockFd from structure, s. *) PROCEDURE getClientIP (c: clientInfo) : CARDINAL ; (* getPushBackChar - returns TRUE if a pushed back character is available. *) PROCEDURE getPushBackChar (c: clientInfo; VAR ch: CHAR) : BOOLEAN ; (* setPushBackChar - returns TRUE if it is able to push back a character. *) PROCEDURE setPushBackChar (c: clientInfo; ch: CHAR) : BOOLEAN ; (* getSizeOfClientInfo - returns the sizeof (opaque data type). *) PROCEDURE getSizeOfClientInfo () : CARDINAL ; END wrapsock.