CSP for Java
(JCSP) 1.0-rc4

jcsp.util.ints
Interface ChannelDataStoreInt

All Superinterfaces:
Cloneable
All Known Implementing Classes:
OverFlowingBufferInt, OverWritingBufferInt, ZeroBufferInt, InfiniteBufferInt, BufferInt, OverWriteOldestBufferInt

public interface ChannelDataStoreInt
extends Cloneable

This is the interface for integer channel plug-ins that define their buffering characteristics.

Description

ChannelDataStoreInt defines the interface to the logic used by the integer channels defined in the jcsp.lang package to manage the data being communicated.

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 create methods of One2OneChannelInt etc.

Note: instances of ChannelDataStoreInt implementations are used by the various channel classes within 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.

Author:
P.D.Austin
See Also:
ZeroBufferInt, BufferInt, OverWriteOldestBufferInt, OverWritingBufferInt, OverFlowingBufferInt, InfiniteBufferInt, One2OneChannelInt, Any2OneChannelInt, One2AnyChannelInt, Any2AnyChannelInt

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.
 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.
 

Field Detail

EMPTY

public static final int EMPTY
Indicates that the ChannelDataStoreInt is empty -- it can accept only a put.

NONEMPTYFULL

public static final int NONEMPTYFULL
Indicates that the ChannelDataStoreInt is neither empty nor full -- it can accept either a put or a get call.

FULL

public static final int FULL
Indicates that the ChannelDataStoreInt is full -- it can accept only a get.
Method Detail

getState

public int getState()
Returns the current state of the ChannelDataStoreInt.
Returns:
the current state of the ChannelDataStoreInt (EMPTY, NONEMPTYFULL or FULL)

put

public void put(int value)
Puts a new int into the ChannelDataStoreInt.

Pre-condition: getState must not currently return FULL.

Parameters:
value - the int to put into the ChannelDataStoreInt

get

public int get()
Returns an int from the ChannelDataStoreInt.

Pre-condition: getState must not currently return EMPTY.

Returns:
an int from the ChannelDataStoreInt

clone

public Object clone()
Returns a new (and EMPTY) ChannelDataStoreInt with the same creation parameters as this one.

Note: Only the size and structure of the ChannelDataStoreInt should be cloned, not any stored data.

Overrides:
clone in class Object
Returns:
the cloned instance of this ChannelDataStoreInt.

CSP for Java
(JCSP) 1.0-rc4

Submit a bug or feature to jcsp-team@ukc.ac.uk
Version 1.0-rc4 of the JCSP API Specification (Copyright 1997-2000 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.