This structure provides a bidirectional connection between two OPAL processes.
List of Import References :
See BOOL
See Com
See DENOTATION
See Nat
See Option
See Seq
See Void
SIGNATURE ProcessConnect[inData,outData]
$Date: 2010-09-30 18:24:17 +0200 (Do, 30. Sep 2010) $ ($Revision: 616 $)
SORT inData outData
IMPORT Com[channel] ONLY com
Com[void] ONLY com
Com[bool] ONLY com
Com[inData] ONLY com ans:SORT
Com[option[inData]]
ONLY com
Void ONLY void
Option[inData] ONLY option
channel representing a connection between two processes:
SORT channel
open establishes the connection. The SymbolicKey is the
name of a nonexistent file in the filesystem (usually a named pipe).
Successful opening is not a guarantee for an existing partner process.
close closes a channel, and removes resource references. Only when
both partner processes have closed a channel, the associated resources
will be actually freed.
TYPE role == client server FUN open : denotation ** role -> com[channel] FUN close : channel -> com[void]
incoming? checks if there is an unread data item from partner.
read waits for an incoming data item whereas read? returns
immediately either with the read data item or with nil.
'read? =^= IF incoming? THEN read ELSE nil FI'
write writes some data into channel.
FUN incoming? : channel -> com[bool] FUN read : channel -> com[inData] FUN read? : channel -> com[option[inData]] FUN write : channel ** outData -> com[void]
next node: ProcessMonitor,
prev node: Subsystem Opal Channel,
up to node: Subsystem Opal Channel