Package org.jcsp.lang
Class AltingChannelInput
- java.lang.Object
-
- org.jcsp.lang.Guard
-
- org.jcsp.lang.AltingChannelInput
-
- All Implemented Interfaces:
ChannelInput
,Poisonable
- Direct Known Subclasses:
AltingChannelInputWrapper
public abstract class AltingChannelInput extends Guard implements ChannelInput
This extendsGuard
andChannelInput
to enable a process to choose between many object input (and other) events.A reading-end, obtained from a one-one or any-one channel by invoking its in() method, will extend this abstract class.
Description
AltingChannelInput extendsGuard
andChannelInput
to enable a process to choose between many object input (and other) events. The methods inherited from Guard are of no concern to users of this package.Example
import org.jcsp.lang.*; public class AltingExample implements CSProcess { private final AltingChannelInput in0, in1; public AltingExample (final AltingChannelInput in0, final AltingChannelInput in1) { this.in0 = in0; this.in1 = in1; } public void run () { final Guard[] altChans = {in0, in1}; final Alternative alt = new Alternative (altChans); while (true) { switch (alt.select ()) { case 0: System.out.println ("in0 read " + in0.read ()); break; case 1: System.out.println ("in1 read " + in1.read ()); break; } } } }
- Author:
- P.D. Austin and P.H. Welch
- See Also:
Guard
,Alternative
-
-
Constructor Summary
Constructors Constructor Description AltingChannelInput()
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description abstract boolean
pending()
Returns whether there is data pending on this channel.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.jcsp.lang.ChannelInput
endRead, read, startRead
-
Methods inherited from interface org.jcsp.lang.Poisonable
poison
-
-