Package org.jcsp.lang

Class InlineAlternative


  • public class InlineAlternative
    extends Guard
    This class is experimental (i.e. not properly documented yet). It is intended to allow Alternatives to be nested.
    Author:
    Quickstone Technologies Limited
    • Field Detail

      • MODE_ARBITRARY

        public static final int MODE_ARBITRARY
        Flags to control behaviour of this ALT if used as a guard.
        See Also:
        Constant Field Values
      • MODE_FAIR

        public static final int MODE_FAIR
        Flags to control behaviour of this ALT if used as a guard.
        See Also:
        Constant Field Values
      • MODE_PRI

        public static final int MODE_PRI
        Flags to control behaviour of this ALT if used as a guard.
        See Also:
        Constant Field Values
    • Constructor Detail

      • InlineAlternative

        public InlineAlternative​(Guard[] guards)
        Creates a new one
      • InlineAlternative

        public InlineAlternative​(Guard[] guards,
                                 int mode)
        Creates a new one
    • Method Detail

      • getSelected

        public int getSelected()
        Returns the index of the guard obtained by a call to select() or if this guard became ready within its parent ALT.
      • setPreconditions

        public void setPreconditions​(boolean[] precons)
        Establishes a precondition array that will be used by default in calls to select(). This is useful when the ALT is used as a guard within another ALT.
      • setPreconditionByIndex

        public void setPreconditionByIndex​(int index,
                                           boolean on)
        Alters the precondition on a guard.
      • getSelectedGuard

        public Guard getSelectedGuard()
        Returns the actual guard object corresponding to the selected guard. For example it can return the channel or the ALT object.
      • getGuardByIndex

        public Guard getGuardByIndex​(int index)
        Returns the guard object at a given index. For example to obtain a channel or ALT object.
      • select

        public int select()
        Creates an Alternative (if needed) and delegates the call to it.
      • priSelect

        public int priSelect()
        Creates an Alternative (if needed) and delegates the call to it.
      • fairSelect

        public int fairSelect()
        Creates an Alternative (if needed) and delegates the call to it.