Interface QuicStream
- All Superinterfaces:
ReadStream<Buffer>, StreamBase, StreamChannel, WriteStream<Buffer>
-
Method Summary
Modifier and TypeMethodDescriptionabort(int error) Instruct the remote peer that this part of the stream is no longer interested in received data and wants it to cease transmission, aSTOP_SENDINGframe is sent to the remote peer.closeHandler(Handler<Void> handler) Set a handler called when the stream is closed.drainHandler(Handler<Void> handler) Set a drain handler on the stream.endHandler(Handler<Void> endHandler) Set an end handler.exceptionHandler(Handler<Throwable> handler) Set an exception handling, catching stream exceptions.fetch(long amount) Fetch the specifiedamountof elements.Set the handler signaled with the data events the remote peer has sent.longid()booleanbooleanpause()Pause theReadStream, it sets the buffer infetchmode and clears the actual demand.reset(int error) Abruptly terminate the sending part of the stream with the specified application protocolerrorcode argument, aRESETframe is sent to the remote peer.resetHandler(Handler<Long> handler) Set a handler called upon stream reset: when a stream receives a reset frame from its peer, this handler is called.resume()Resume reading, and sets the buffer inflowingmode.setWriteQueueMaxSize(int maxSize) Set the maximum size of the write queue tomaxSize.shutdownHandler(Handler<Duration> handler) Set a handler called when the stream is shutdown or closedMethods inherited from interface ReadStream
blockingStream, collect, pipe, pipeToMethods inherited from interface StreamChannel
close, end, sendFile, sendFile, sendFile, write, writeMethods inherited from interface WriteStream
end, write, writeQueueFull
-
Method Details
-
id
long id() -
isBidirectional
boolean isBidirectional()- Returns:
- whether the stream is unidirectional or bidirectional
-
isLocalCreated
boolean isLocalCreated()- Returns:
- whether the stream was created by this connection
-
connection
QuicConnection connection()- Returns:
- the Quic connection this streams belongs to
-
resetHandler
Set a handler called upon stream reset: when a stream receives a reset frame from its peer, this handler is called.
When no such handler is set, the stream exception handler is called and then the stream is automatically closed. Setting this handler changes this behavior: the handler processes the reset event and the handler has the full responsibility of managing the stream. That means the sending part of this stream is left untouched and the application can continue sending data.
- Parameters:
handler- the handler- Returns:
- this instance of a stream
-
reset
Abruptly terminate the sending part of the stream with the specified application protocolerrorcode argument, aRESETframe is sent to the remote peer.- Parameters:
error- the application protocol error code- Returns:
- a future completed when the reset frame has been sent
-
abort
Instruct the remote peer that this part of the stream is no longer interested in received data and wants it to cease transmission, aSTOP_SENDINGframe is sent to the remote peer.- Parameters:
error- the error code- Returns:
- a future completed when the
STOP_SENDINGframe has been sent
-
closeHandler
Set a handler called when the stream is closed.- Specified by:
closeHandlerin interfaceStreamChannel- Parameters:
handler- the handler signaled with the stream close- Returns:
- this instance of a stream
-
shutdownHandler
Set a handler called when the stream is shutdown or closed- Specified by:
shutdownHandlerin interfaceStreamChannel- Parameters:
handler- the handler signaled with the stream shutdown- Returns:
- this instance of a stream
-
exceptionHandler
Set an exception handling, catching stream exceptions.- Specified by:
exceptionHandlerin interfaceReadStream<Buffer>- Specified by:
exceptionHandlerin interfaceStreamBase- Specified by:
exceptionHandlerin interfaceStreamChannel- Specified by:
exceptionHandlerin interfaceWriteStream<Buffer>- Parameters:
handler- the exception handler- Returns:
- this instance of a stream
-
handler
Set the handler signaled with the data events the remote peer has sent.- Specified by:
handlerin interfaceReadStream<Buffer>- Specified by:
handlerin interfaceStreamChannel- Parameters:
handler- the data event handler- Returns:
- this instance of a stream
-
pause
QuicStream pause()Description copied from interface:ReadStreamPause theReadStream, it sets the buffer infetchmode and clears the actual demand.While it's paused, no data will be sent to the data
handler.- Specified by:
pausein interfaceReadStream<Buffer>- Specified by:
pausein interfaceStreamChannel- Returns:
- a reference to this, so the API can be used fluently
-
resume
QuicStream resume()Description copied from interface:ReadStreamResume reading, and sets the buffer inflowingmode. If theReadStreamhas been paused, reading will recommence on it.- Specified by:
resumein interfaceReadStream<Buffer>- Specified by:
resumein interfaceStreamChannel- Returns:
- a reference to this, so the API can be used fluently
-
fetch
Description copied from interface:ReadStreamFetch the specifiedamountof elements. If theReadStreamhas been paused, reading will recommence with the specifiedamountof items, otherwise the specifiedamountwill be added to the current stream demand.- Specified by:
fetchin interfaceReadStream<Buffer>- Specified by:
fetchin interfaceStreamChannel- Returns:
- a reference to this, so the API can be used fluently
-
endHandler
Description copied from interface:StreamChannelSet an end handler. Once the stream has ended, and there is no more data to be read, this handler will be called.This handler might be called after the close handler when the channel is paused and there are still buffers to deliver.
- Specified by:
endHandlerin interfaceReadStream<Buffer>- Specified by:
endHandlerin interfaceStreamChannel- Returns:
- a reference to this, so the API can be used fluently
-
setWriteQueueMaxSize
Description copied from interface:WriteStreamSet the maximum size of the write queue tomaxSize. You will still be able to write to the stream even if there is more thanmaxSizeitems in the write queue. This is used as an indicator by classes such asPipeto provide flow control. The value is defined by the implementation of the stream, e.g in bytes for aNetSocket, etc...- Specified by:
setWriteQueueMaxSizein interfaceStreamChannel- Specified by:
setWriteQueueMaxSizein interfaceWriteStream<Buffer>- Parameters:
maxSize- the max size of the write stream- Returns:
- a reference to this, so the API can be used fluently
-
drainHandler
Description copied from interface:WriteStreamSet a drain handler on the stream. If the write queue is full, then the handler will be called when the write queue is ready to accept buffers again. SeePipefor an example of this being used.The stream implementation defines when the drain handler, for example it could be when the queue size has been reduced to
maxSize / 2.- Specified by:
drainHandlerin interfaceStreamChannel- Specified by:
drainHandlerin interfaceWriteStream<Buffer>- Parameters:
handler- the handler- Returns:
- a reference to this, so the API can be used fluently
-