Package org.jcsp.lang

Class AltingChannelInputInt

java.lang.Object
org.jcsp.lang.Guard
org.jcsp.lang.AltingChannelInputInt
All Implemented Interfaces:
ChannelInputInt, Poisonable
Direct Known Subclasses:
AltingChannelInputIntImpl, AltingChannelInputIntSymmetricImpl

public abstract class AltingChannelInputInt extends Guard implements ChannelInputInt
This extends Guard and ChannelInputInt to enable a process to choose between many integer 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

AltingChannelInputInt extends Guard and ChannelInputInt to enable a process to choose between many integer 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 AltingIntExample implements CSProcess {
 
   private final AltingChannelInputInt in0, in1;
   
   public AltingIntExample (final AltingChannelInputInt in0,
                            final AltingChannelInputInt 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;
       }
     }
 
   }
 
 }
 
See Also:
  • Constructor Details

    • AltingChannelInputInt

      public AltingChannelInputInt()
  • Method Details

    • pending

      public abstract boolean pending()
      Returns whether there is data pending on this channel.

      Note: if there is, it won't go away until you read it. But if there isn't, there may be some by the time you check the result of this method.

      Returns:
      state of the channel.