package channel
This package defines channels that can participate in the CSO alternation constructs.
I have separated syntax and semantics as far as was practical, given my reluctance to get embroiled with the Scala macro system (it was unstable when the CSO work started)
An io.threadcso.alternation.Run embodies the state of execution of an alternation.
The guarded event notation: (guard && port) =...=> { .... } is parsed to a
Guarded...Port =...=> ... then
to an appropriate class of event. The former is achieved by defining the implicit class io.threadcso.Guarded in
the top-level CSO API. This provides the appropriate extension to
Boolean.
@author Bernard Sufrin, Oxford $Revision: 240 $ $Date: 2017-10-13 18:12:11 +0100 (Fri, 13 Oct 2017) $
- Alphabetic
- By Inheritance
- channel
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
-
trait
AltCapableChannel
[T] extends Chan[T]
Mixin for channels that are capable of participating in alternations.
Mixin for channels that are capable of participating in alternations. Deals with registration/unregistration of a channel with a running alternation, and with detailed logging (when not elided) of port-state changes. Typical examples of its use can be found in the definitions of channel constructors such as io.threadcso.alternation.channel.OneOne and io.threadcso.alternation.channel.N2NBuf.
-
trait
Chan
[T] extends channel.Chan[T] with InPort[T] with OutPort[T]
A
Chan
embodies anInPort
and anOutPort
.A
Chan
embodies anInPort
and anOutPort
. Ifchan: Chan
then the alternation notationschan ... =?=> ...
,chan ... =??=> ...
andchan ... =!=>...
are available for direct use in an alt. -
class
GuardedChan
[T] extends AnyRef
Guarded channel syntax
-
class
GuardedInPort
[+T] extends AnyRef
Guarded input port syntax
-
class
GuardedOutPort
[T] extends AnyRef
Guarded output port syntax
-
trait
InPort
[+T] extends channel.InPort[T]
Alt-capable input port
-
class
N2N
[T] extends channel.N2N[T] with SharedAltCapableChannel[T]
A version of its namesake from io.threadcso.channel with the capacity to participate in
alt
andserve
commandsA version of its namesake from io.threadcso.channel with the capacity to participate in
alt
andserve
commands- See also
-
class
N2NBuf
[T] extends channel.N2NBuf[T] with SharedAltCapableChannel[T]
A version of its namesake from io.threadcso.channel with the capacity to participate in
alt
andserve
commandsA version of its namesake from io.threadcso.channel with the capacity to participate in
alt
andserve
commands- See also
-
class
OneOne
[T] extends channel.OneOne[T] with AltCapableChannel[T]
A version of its namesake from io.threadcso.channel with the capacity to participate in
alt
andserve
commandsA version of its namesake from io.threadcso.channel with the capacity to participate in
alt
andserve
commands- See also
-
class
OneOneBuf
[T] extends channel.N2NBuf[T] with AltCapableChannel[T]
A version of its namesake from io.threadcso.channel with the capacity to participate in
alt
andserve
commandsA version of its namesake from io.threadcso.channel with the capacity to participate in
alt
andserve
commands- See also
-
trait
OutPort
[-T] extends channel.OutPort[T]
Alt-capable output port
- trait SharedAltCapableChannel [T] extends AltCapableChannel[T] with SharedOutPort[T] with SharedInPort[T]
Value Members
-
object
N2N
extends NameGenerator
Static generator for N2N
Static generator for N2N
-
object
N2NBuf
extends NameGenerator
Static generator for N2NBuf
Static generator for N2NBuf
-
object
OneOne
extends NameGenerator
Static generator for OneOne
Static generator for OneOne
-
object
OneOneBuf
extends NameGenerator
Static generator for OneOneBuf
Static generator for OneOneBuf