gm2-libs-iso/wrapsock (The GNU Modula-2 Compiler)

#### 4.4.79 gm2-libs-iso/wrapsock ¶

    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.