|
CSP for Java (JCSP) 1.1-rc4 |
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface ChannelDataStoreInt
This is the interface for integer channel plug-ins that define their buffering characteristics.
This enables that logic to be varied by creating channels specifying
a particular implementation of this interface. This reduces the number of
classes that would otherwise need to be defined. The default channel
constructor (with no parameters) uses the ZeroBuffer implementation,
which gives the standard CSP semantics -- no buffering and full synchronisation
between reading and writing processes.
See the static construction methods of Channel
(Channel.one2oneInt(org.jcsp.util.ints.ChannelDataStoreInt)
etc.).
Note: instances of ChannelDataStoreInt implementations are used by the various channel classes within org.jcsp.lang in a thread-safe way. They are not intended for any other purpose. Developers of new ChannelDataStoreInt implementations, therefore, do not need to worry about thread safety (e.g. by making its methods synchronized). Also, developers can assume that the documented pre-conditions for invoking the get and put methods will be met.
ZeroBufferInt
,
BufferInt
,
OverWriteOldestBufferInt
,
OverWritingBufferInt
,
OverFlowingBufferInt
,
InfiniteBufferInt
,
ChannelInt
Field Summary | |
---|---|
static int |
EMPTY
Indicates that the ChannelDataStoreInt is empty -- it can accept only a put. |
static int |
FULL
Indicates that the ChannelDataStoreInt is full -- it can accept only a get. |
static int |
NONEMPTYFULL
Indicates that the ChannelDataStoreInt is neither empty nor full -- it can accept either a put or a get call. |
Method Summary | |
---|---|
Object |
clone()
Returns a new (and EMPTY) ChannelDataStoreInt with the same creation parameters as this one. |
void |
endGet()
Ends an extended read on the buffer. |
int |
get()
Returns an int from the ChannelDataStoreInt. |
int |
getState()
Returns the current state of the ChannelDataStoreInt. |
void |
put(int value)
Puts a new int into the ChannelDataStoreInt. |
void |
removeAll()
|
int |
startGet()
Begins an extended read on the buffer, returning the data for the extended read Pre-condition: getState must not currently return EMPTY. |
Field Detail |
---|
static final int EMPTY
static final int NONEMPTYFULL
static final int FULL
Method Detail |
---|
int getState()
void put(int value)
Pre-condition: getState must not currently return FULL.
value
- the int to put into the ChannelDataStoreIntint get()
Pre-condition: getState must not currently return EMPTY.
int startGet()
endGet()
method.
A FIFO buffer would implement this method as returning the value from the front of the buffer
and the next call would remove the value. An overflowing buffer would do the same.
However, for an overwriting buffer it is more complex. Refer to the documentation for
OverWritingBuffer.startGet()
and OverWriteOldestBuffer.startGet()
for details
endGet()
void endGet()
put(int)
will be called,
but not get()
.
startGet()
Object clone()
Note: Only the size and structure of the ChannelDataStoreInt should be cloned, not any stored data.
void removeAll()
|
CSP for Java (JCSP) 1.1-rc4 |
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |