Package org.jcsp.lang

Class 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:
    Guard, Alternative
    • Constructor Detail

      • AltingChannelInputInt

        public AltingChannelInputInt()
    • Method Detail

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