INTERFACEAConnFD ; IMPORT Rd, Wr, Thread; TYPE T = TRep;
T
is a bi-directional communications channel (for example
a TCP channel). Given an T
, a client can initialize a
paired reader and writer whose source and target are the channel.
ultimately, the type above will be a subtype of File.T
EXCEPTION TimedOut; TYPE TRep = MUTEX OBJECT METHODS get(VAR arr: ARRAY OF CHAR; waitFor: LONGREAL := -1.0D0) : CARDINAL RAISES {Rd.Failure, Thread.Alerted, TimedOut}; put(READONLY arr: ARRAY OF CHAR) RAISES {Wr.Failure, Thread.Alerted}; shutdownIn() RAISES {Rd.Failure}; shutdownOut() RAISES {Wr.Failure}; close(); END; (* Get method: If "timeout" is negative, "get" will block forever. Otherwise, it will block for a maximum of of "waitFor" seconds. *) END ConnFD.