Package org.jcsp.util.ints
Class ZeroBufferInt
java.lang.Object
org.jcsp.util.ints.ZeroBufferInt
- All Implemented Interfaces:
Serializable
,Cloneable
,ChannelDataStoreInt
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.
- See Also:
-
Field Summary
FieldsFields inherited from interface org.jcsp.util.ints.ChannelDataStoreInt
EMPTY, FULL, NONEMPTYFULL
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionclone()
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
int
startGet()
Begins an extended rendezvous - simply returns the next integer in the buffer.
-
Field Details
-
state
private int stateThe current state -
value
private int valueThe 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 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:
-
endGet
public void endGet()Ends the extended rendezvous by clearing the buffer.- Specified by:
endGet
in interfaceChannelDataStoreInt
- 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 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
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 classObject
- Returns:
- the cloned instance of this ZeroBufferInt.
-
removeAll
public void removeAll()- Specified by:
removeAll
in interfaceChannelDataStoreInt
-