Class AltingChannelOutputInt

java.lang.Object
org.jcsp.lang.Guard
org.jcsp.lang.AltingChannelOutputInt
All Implemented Interfaces:
ChannelOutputInt, Poisonable
Direct Known Subclasses:
AltingChannelOutputIntSymmetricImpl

public abstract class AltingChannelOutputInt extends Guard implements ChannelOutputInt
This extends Guard and ChannelOutputInt 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

AltingChannelOutputInt extends Guard and ChannelOutputInt 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 AltingOutputIntExample implements CSProcess {

  private final AltingChannelOutputInt out0, out1;
  
  public AltingOutputIntExample (final AltingChannelOutputInt out0,
                                 final AltingChannelOutputInt 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 (0);
          System.out.println ("out0 written");
        break;
        case 1:
          out1.write (1);
          System.out.println ("out1 written");
        break;
      }
    }

  }

}
See Also:
  • Constructor Details

    • AltingChannelOutputInt

      public AltingChannelOutputInt()
  • Method Details

    • 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.