CSP for Java
(JCSP) 1.1-rc4

org.jcsp.util.ints
Class ZeroBufferInt

java.lang.Object
  extended by 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:
BufferInt, OverWriteOldestBufferInt, OverWritingBufferInt, OverFlowingBufferInt, InfiniteBufferInt, ChannelInt, Serialized Form

Field Summary
 
Fields inherited from interface org.jcsp.util.ints.ChannelDataStoreInt
EMPTY, FULL, NONEMPTYFULL
 
Constructor Summary
ZeroBufferInt()
           
 
Method Summary
 Object clone()
          Returns a new (and EMPTY) ZeroBufferInt with the same creation parameters as this one.
 void endGet()
          Ends the extended rendezvous by clearing the buffer.
 int get()
          Returns the int from the ZeroBufferInt.
 int getState()
          Returns the current state of the ZeroBufferInt.
 void put(int value)
          Puts a new int into the ZeroBufferInt.
 void removeAll()
           
 int startGet()
          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
 

Constructor Detail

ZeroBufferInt

public ZeroBufferInt()
Method Detail

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:
ChannelDataStoreInt.endGet()

endGet

public void endGet()
Ends the extended rendezvous by clearing the buffer.

Specified by:
endGet in interface ChannelDataStoreInt
See Also:
ChannelDataStoreInt.startGet()

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

CSP for Java
(JCSP) 1.1-rc4

Submit a bug or feature to jcsp-team@kent.ac.uk
Version 1.1-rc4 of the JCSP API Specification (Copyright 1997-2008 P.D.Austin and P.H.Welch - All Rights Reserved)
Java is a trademark or registered trademark of Sun Microsystems, Inc. in the US and other countries.