private class HttpOutput.InputStreamWritingCB extends HttpOutput.NestedChannelWriteCB
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.Completing, Callback.InvocableCallback, Callback.Nested
Invocable.InvocationType
Modifier and Type | Field and Description |
---|---|
private java.nio.ByteBuffer |
_buffer |
private boolean |
_closed |
private boolean |
_eof |
private java.io.InputStream |
_in |
_callback
_last
__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. |
onCompleteSuccess
getInvocationType
close, failed, isClosed, isFailed, isSucceeded, iterate, reset, succeeded, toString
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
combine, from, from, from, from, from, from
combine, getInvocationType, invokeNonBlocking, isNonBlockingInvocation
private final java.io.InputStream _in
private final java.nio.ByteBuffer _buffer
private boolean _eof
private boolean _closed
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 HttpOutput.NestedChannelWriteCB
x
- the throwable to indicate cause of failureIteratingCallback.onCompleteSuccess()