org.jcsp.lang
Class AltingChannelOutput<T>

java.lang.Object
  extended by org.jcsp.lang.Guard
      extended by org.jcsp.lang.AltingChannelOutput<T>
All Implemented Interfaces:
ChannelOutput<T>, Poisonable

public abstract class AltingChannelOutput<T>
extends Guard
implements ChannelOutput<T>

This extends Guard and ChannelOutput to enable a process to choose between many integer output (and other) events.

A writing-end, obtained only from a symmetric channel by invoking its out() method, will implement this interface.

Description

AltingChannelOutput extends Guard and ChannelOutput to enable a process to choose between many integer output (and other) events. The methods inherited from Guard are of no concern to users of this package.

Example

 import org.jcsp.lang.*;
 
 public class AltingOutputExample implements CSProcess {
 
   private final AltingChannelOutput out0, out1;
   
   public AltingOutputExample (final AltingChannelOutput out0,
                               final AltingChannelOutput out1) {
     this.out0 = out0;
     this.out1 = out1;
   }
 
   public void run () {
 
     final Guard[] altChans = {out0, out1};
     final Alternative alt = new Alternative (altChans);
 
     while (true) {
       switch (alt.select ()) {
         case 0:
           out0.write (new Integer (0));
           System.out.println ("out0 written");
         break;
         case 1:
           out1.write (new Integer (1));
           System.out.println ("out1 written");
         break;
       }
     }
 
   }
 
 }
 

Author:
P.H. Welch
See Also:
Guard, Alternative, One2OneChannelSymmetric, AltingChannelOutputInt

Constructor Summary
AltingChannelOutput()
           
 
Method Summary
abstract  boolean pending()
          Returns whether the receiver is committed to read from this channel.
 
Methods inherited from class org.jcsp.lang.Guard
schedule
 
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.ChannelOutput
write
 
Methods inherited from interface org.jcsp.lang.Poisonable
poison
 

Constructor Detail

AltingChannelOutput

public AltingChannelOutput()
Method Detail

pending

public abstract boolean pending()
Returns whether the receiver is committed to read from this channel.

Note: if this returns true, you must commit to write down this channel.

Returns:
state of the channel.


Copyright © 1996-2012. All Rights Reserved.