uk.org.ogsadai.activity.sql
Class NonBufferingPipe
java.lang.Object
|
+--uk.org.ogsadai.activity.sql.NonBufferingPipe
- All Implemented Interfaces:
- BlockReader, BlockWriter, Pipe
- public class NonBufferingPipe
- extends java.lang.Object
- implements Pipe
This is a simple unsynchronized Pipe with no internal
buffer. It contains an Activity
and when the consumer
reads data from the pipe, this activity is processed incrementally
to generate the data that will be returned. In other words, reading
data from the pipe effectively drives the processing of the
activity.
- Author:
- The OGSA-DAI Project Team
Field Summary |
private static java.lang.String |
COPYRIGHT_NOTICE
Copyright statement. |
private Activity |
mActivity
Activity that outputs data into this pipe when processed. |
private java.lang.Object |
mBuffer
Stores the blocks of data put into the pipe by the activity. |
private boolean |
mClosed
Indicates whether or not the pipe has been closed. |
Constructor Summary |
NonBufferingPipe(Activity activity)
Constructs a CallThroughPipe that will pull data
from the specified source Activity . |
Method Summary |
void |
close()
Closes the block writer to indicate that there are no more
blocks are to be written. |
boolean |
hasNext()
Indicates whether or not there are any more blocks of data to be read
from the block reader. |
boolean |
isOpen()
Indicates whether or not the block writer is open for writing via the
put method. |
java.lang.Object |
next()
Gets the next block of data contained in the block reader. |
private void |
process()
Processes the handler until its activity has generated some
output. |
void |
put(java.lang.Object block)
Writes the specified block of output data. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
COPYRIGHT_NOTICE
private static final java.lang.String COPYRIGHT_NOTICE
- Copyright statement.
- See Also:
- Constant Field Values
mActivity
private final Activity mActivity
- Activity that outputs data into this pipe when processed.
mBuffer
private java.lang.Object mBuffer
- Stores the blocks of data put into the pipe by the activity.
mClosed
private boolean mClosed
- Indicates whether or not the pipe has been closed.
NonBufferingPipe
public NonBufferingPipe(Activity activity)
- Constructs a
CallThroughPipe
that will pull data
from the specified source Activity
. When another
activity attempts to read data from the pipe, the source
activity is processed enough to generate the data.
- Parameters:
activity
- Source Activity
hasNext
public boolean hasNext()
- Description copied from interface:
BlockReader
- Indicates whether or not there are any more blocks of data to be read
from the block reader.
- Specified by:
hasNext
in interface BlockReader
- Returns:
- true if there are more blocks to be read or false otherwise
next
public java.lang.Object next()
- Description copied from interface:
BlockReader
- Gets the next block of data contained in the block reader.
- Specified by:
next
in interface BlockReader
- Returns:
- an
Object
put
public void put(java.lang.Object block)
- Description copied from interface:
BlockWriter
- Writes the specified block of output data.
- Specified by:
put
in interface BlockWriter
- Parameters:
block
- the Object
block to write
process
private void process()
- Processes the handler until its activity has generated some
output. Note that this may be more than one block. If the
activity finishes and there is no more data, then the internal
mHasNext
flag is set to false
.
close
public void close()
- Description copied from interface:
BlockWriter
- Closes the block writer to indicate that there are no more
blocks are to be written. After close has been called, the
put
method should no longer be used.
- Specified by:
close
in interface BlockWriter
isOpen
public boolean isOpen()
- Description copied from interface:
BlockWriter
- Indicates whether or not the block writer is open for writing via the
put
method. After the close
method has been
invoked this method should return false
.
- Specified by:
isOpen
in interface BlockWriter
- Returns:
- A boolean value indicating whether this block writer is open for
writing