Class ZeroBufferInt

java.lang.Object
org.jcsp.util.ints.ZeroBufferInt
All Implemented Interfaces:
Serializable, Cloneable, ChannelDataStoreInt

public class ZeroBufferInt extends Object implements ChannelDataStoreInt, Serializable
This is used to create a zero-buffered integer channel that never loses data.

Description

ZeroBufferInt is an implementation of ChannelDataStoreInt that yields the standard CSP semantics for a channel -- that is zero buffered with direct synchronisation between reader and writer. Unless specified otherwise, this is the default behaviour for channels. See the static construction methods of Channel (Channel.one2oneInt(org.jcsp.util.ints.ChannelDataStoreInt) etc.).

The getState method will return FULL if there is an output waiting on the channel and EMPTY if there is not.

See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private int
    The current state
    private int
    The int

    Fields inherited from interface org.jcsp.util.ints.ChannelDataStoreInt

    EMPTY, FULL, NONEMPTYFULL
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    Returns a new (and EMPTY) ZeroBufferInt with the same creation parameters as this one.
    void
    Ends the extended rendezvous by clearing the buffer.
    int
    get()
    Returns the int from the ZeroBufferInt.
    int
    Returns the current state of the ZeroBufferInt.
    void
    put(int value)
    Puts a new int into the ZeroBufferInt.
    void
     
    int
    Begins an extended rendezvous - simply returns the next integer in the buffer.

    Methods inherited from class java.lang.Object

    equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • state

      private int state
      The current state
    • value

      private int value
      The int
  • Constructor Details

    • ZeroBufferInt

      public ZeroBufferInt()
  • Method Details

    • get

      public int get()
      Returns the int from the ZeroBufferInt.

      Pre-condition: getState must not currently return EMPTY.

      Specified by:
      get in interface ChannelDataStoreInt
      Returns:
      the int from the ZeroBufferInt
    • startGet

      public int startGet()
      Begins an extended rendezvous - simply returns the next integer in the buffer. This function does not remove the integer. Pre-condition: getState must not currently return EMPTY.
      Specified by:
      startGet in interface ChannelDataStoreInt
      Returns:
      The integer in the buffer.
      See Also:
    • endGet

      public void endGet()
      Ends the extended rendezvous by clearing the buffer.
      Specified by:
      endGet in interface ChannelDataStoreInt
      See Also:
    • put

      public void put(int value)
      Puts a new int into the ZeroBufferInt.

      Pre-condition: getState must not currently return FULL.

      Specified by:
      put in interface ChannelDataStoreInt
      Parameters:
      value - the int to put into the ZeroBufferInt
    • getState

      public int getState()
      Returns the current state of the ZeroBufferInt.
      Specified by:
      getState in interface ChannelDataStoreInt
      Returns:
      the current state of the ZeroBufferInt (EMPTY or FULL)
    • clone

      public Object clone()
      Returns a new (and EMPTY) ZeroBufferInt with the same creation parameters as this one.

      Note: Only the size and structure of the ZeroBufferInt is cloned, not any stored data.

      Specified by:
      clone in interface ChannelDataStoreInt
      Overrides:
      clone in class Object
      Returns:
      the cloned instance of this ZeroBufferInt.
    • removeAll

      public void removeAll()
      Specified by:
      removeAll in interface ChannelDataStoreInt