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.