Package org.jcsp.lang

Class AltingChannelOutputSymmetricImpl<T>

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

class AltingChannelOutputSymmetricImpl<T> extends AltingChannelOutput<T> implements MultiwaySynchronisation
  • Field Details

  • Constructor Details

  • Method Details

    • enable

      boolean enable(Alternative alt)
      Description copied from class: Guard
      Returns true if the event is ready. Otherwise, this enables the guard for selection and returns false.

      Note: this method should only be called by the Alternative class

      Specified by:
      enable in class Guard
      Parameters:
      alt - the Alternative class that is controlling the selection
      Returns:
      true if and only if the event is ready
    • disable

      boolean disable()
      Description copied from class: Guard
      Disables the guard for selection. Returns true if the event was ready.

      Note: this method should only be called by the Alternative class

      Specified by:
      disable in class Guard
      Returns:
      true if and only if the event was ready
    • write

      public void write(T o)
      Description copied from interface: ChannelOutput
      Write an Object to the channel.
      Specified by:
      write in interface ChannelOutput<T>
      Parameters:
      o - the object to write to the channel
    • pending

      public boolean pending()
      Description copied from class: AltingChannelOutput
      Returns whether the receiver is committed to read from this channel.

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

      Specified by:
      pending in class AltingChannelOutput<T>
      Returns:
      state of the channel.
    • poison

      public void poison(int strength)
      Description copied from interface: Poisonable
      This injects poison into the channel. If the channel was not explicitly constructed to be poisonable or if the strength of poison is not greater than the channel immunity level, the poison will have no effect.
      Specified by:
      poison in interface Poisonable
      Parameters:
      strength - the strength of the poison (must be >= 0).