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.

Author:
P.D. Austin
See Also:
  • 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