Package org.jcsp.util.ints
Class ZeroBufferInt
- java.lang.Object
-
- org.jcsp.util.ints.ZeroBufferInt
-
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Cloneable
,ChannelDataStoreInt
public class ZeroBufferInt extends java.lang.Object implements ChannelDataStoreInt, java.io.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 ofChannel
(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.
-
-
Field Summary
Fields Modifier and Type Field Description private int
state
The current stateprivate int
value
The int-
Fields inherited from interface org.jcsp.util.ints.ChannelDataStoreInt
EMPTY, FULL, NONEMPTYFULL
-
-
Constructor Summary
Constructors Constructor Description ZeroBufferInt()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.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.
-
-
-
Method Detail
-
get
public int get()
Returns the int from the ZeroBufferInt.Pre-condition: getState must not currently return EMPTY.
- Specified by:
get
in interfaceChannelDataStoreInt
- 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 interfaceChannelDataStoreInt
- 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 interfaceChannelDataStoreInt
- 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 interfaceChannelDataStoreInt
- Parameters:
value
- the int to put into the ZeroBufferInt
-
getState
public int getState()
Returns the current state of the ZeroBufferInt.- Specified by:
getState
in interfaceChannelDataStoreInt
- Returns:
- the current state of the ZeroBufferInt (EMPTY or FULL)
-
clone
public java.lang.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 interfaceChannelDataStoreInt
- Overrides:
clone
in classjava.lang.Object
- Returns:
- the cloned instance of this ZeroBufferInt.
-
removeAll
public void removeAll()
- Specified by:
removeAll
in interfaceChannelDataStoreInt
-
-