private class HttpOutput.InputStreamWritingCB extends IteratingNestedCallback
HttpChannel
.
A non direct buffer of size HttpOutput.getBufferSize()
is used.
This callback is passed to the HttpChannel.write(ByteBuffer, boolean, Callback)
to
be notified as each buffer is written and only once all the input is consumed will the
wrapped Callback.succeeded()
method be called.IteratingCallback.Action
Callback.Completable, Callback.Nested
Invocable.InvocationType
Modifier and Type | Field and Description |
---|---|
private java.nio.ByteBuffer |
_buffer |
private boolean |
_eof |
private java.io.InputStream |
_in |
__nonBlocking
Constructor and Description |
---|
InputStreamWritingCB(java.io.InputStream in,
Callback callback) |
Modifier and Type | Method and Description |
---|---|
void |
onCompleteFailure(java.lang.Throwable x)
Invoked when the overall task has completed with a failure.
|
protected IteratingCallback.Action |
process()
Method called by
IteratingCallback.iterate() to process the sub task. |
getInvocationType, onCompleteSuccess, toString
close, failed, isClosed, isFailed, isSucceeded, iterate, reset, succeeded
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getInvocationType, invokeNonBlocking, isNonBlockingInvocation
private final java.io.InputStream _in
private final java.nio.ByteBuffer _buffer
private boolean _eof
public InputStreamWritingCB(java.io.InputStream in, Callback callback)
protected IteratingCallback.Action process() throws java.lang.Exception
IteratingCallback
IteratingCallback.iterate()
to process the sub task.
Implementations must start the asynchronous execution of the sub task (if any) and return an appropriate action:
IteratingCallback.Action.IDLE
when no sub tasks are available for execution
but the overall job is not completed yetIteratingCallback.Action.SCHEDULED
when the sub task asynchronous execution
has been startedIteratingCallback.Action.SUCCEEDED
when the overall job is completedprocess
in class IteratingCallback
java.lang.Exception
public void onCompleteFailure(java.lang.Throwable x)
IteratingCallback
onCompleteFailure
in class IteratingNestedCallback
x
- the throwable to indicate cause of failureIteratingCallback.onCompleteSuccess()