All Packages  Class Hierarchy  This Package  Previous  Next  Index

Class jcsp.util.InfiniteBuffer

java.lang.Object
   |
   +----jcsp.lang.ChannelDataStore
           |
           +----jcsp.util.InfiniteBuffer

public class InfiniteBuffer
extends ChannelDataStore

Description

The InfiniteBuffer class is an implementation of ChannelDataStore which allows more than one Object to be sent across the Channel at any one time. The InfiniteBuffer will store the Objects and allow them to be read in the same order as they were written. An initial size for the buffer can be specified upon creation, if the buffer becomes full it will be expanded to accept more data.

The getState method will return EMPTY if the Channel does not contain any Objects and NONEMPTYFULL otherwise.

Author:
P.D.Austin

Constructor Index

 o InfiniteBuffer()
Construct a new InfiniteBuffer with the default size.
 o InfiniteBuffer(int)
Construct a new InfiniteBuffer with the specified size.

Method Index

 o clone()
Returns a new Object with the same creation parameters as this Object.
 o get()
Returns the first Object from the InfiniteBuffer and removes the Object from the InfiniteBuffer.
 o getState()
Returns the current state of the InfiniteBuffer, should be called to ensure the Pre-conditions of the other methods are not broken.
 o put(Object)
Puts a new Object into the InfiniteBuffer.

Constructors

 o InfiniteBuffer
 public InfiniteBuffer()
Construct a new InfiniteBuffer with the default size.

 o InfiniteBuffer
 public InfiniteBuffer(int initialSize)
Construct a new InfiniteBuffer with the specified size.

Parameters:
size - The number of Objects the InfiniteBuffer can store

Methods

 o get
 protected Object get()
Returns the first Object from the InfiniteBuffer and removes the Object from the InfiniteBuffer.

NOTE: getState should be called before this method to check that the state is not EMPTY. If the state is EMPTY the InfiniteBuffer will be left in an undefined state.

Pre-condition: The state must not be EMPTY

Returns:
The next available Object from the InfiniteBuffer
Overrides:
get in class ChannelDataStore
 o put
 protected void put(Object value)
Puts a new Object into the InfiniteBuffer.

Parameters:
value - The object to put in the InfiniteBuffer
Overrides:
put in class ChannelDataStore
 o getState
 protected int getState()
Returns the current state of the InfiniteBuffer, should be called to ensure the Pre-conditions of the other methods are not broken.

Returns:
The current state of the InfiniteBuffer (EMPTY, NONEMPTYFULL or FULL)
Overrides:
getState in class ChannelDataStore
 o clone
 protected Object clone()
Returns a new Object with the same creation parameters as this Object. This method should be overridden by subclasses to return a new Object that is the same type as this Object. The new instance should be created by constructing a new instance with the same parameters as the original. NOTE: Only the sizes of the data should be cloned not the stored data.

Returns:
The cloned instance of this Object.
Overrides:
clone in class ChannelDataStore

All Packages  Class Hierarchy  This Package  Previous  Next  Index