Class CloseCallbackMessageStream<M extends Message>
- Type Parameters:
M- The type of Message handled by this MessageStream.
- All Implemented Interfaces:
MessageStream<M>
closeHandler once the stream is closed. A stream is
considered closed when a consumer explicitly calls close() or when the stream is completed.
Note that when close is called on the delegate, or when the client does not attempt to consume this stream, the close handler may never be invoked, even though the stream is completed.
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.axonframework.messaging.core.MessageStream
MessageStream.Empty<M extends Message>, MessageStream.Entry<M extends Message>, MessageStream.Single<M extends Message> -
Constructor Summary
ConstructorsConstructorDescriptionCloseCallbackMessageStream(MessageStream<M> delegate, Runnable closeHandler) Creates an instance of the CloseCallbackMessageStream, calling the givencloseHandleronce this stream is closed, or the givendelegatecompletes. -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()Closes this stream, freeing any possible resources occupied by the underlying stream.booleanIndicates whether anentryis available for immediate reading.next()Returns an Optional carrying the nextentryfrom the stream, if such entry was available.peek()Returns an Optional carrying the nextentryfrom the stream (without moving the stream pointer), if such entry was available.voidsetCallback(Runnable callback) Registers the callback to invoke whenentriesare available for reading or when the stream completes (either normally or with an error).Methods inherited from class org.axonframework.messaging.core.DelegatingMessageStream
delegate, error, isCompletedMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.axonframework.messaging.core.MessageStream
cast, concatWith, filter, first, ignoreEntries, map, mapMessage, onClose, onComplete, onErrorContinue, onNext, reduce
-
Constructor Details
-
CloseCallbackMessageStream
public CloseCallbackMessageStream(@Nonnull MessageStream<M> delegate, @Nonnull Runnable closeHandler) Creates an instance of the CloseCallbackMessageStream, calling the givencloseHandleronce this stream is closed, or the givendelegatecompletes.- Parameters:
delegate- The MessageStream to wrap with the close handler invocation logiccloseHandler- The handler to invoke when the stream is closed or completed
-
-
Method Details
-
next
Description copied from interface:MessageStreamReturns an Optional carrying the nextentryfrom the stream, if such entry was available. If no entry was available for reading, this method returns an empty Optional.This method will never block for elements becoming available.
- Returns:
- An optional carrying the next
entry, if available.
-
peek
Description copied from interface:MessageStreamReturns an Optional carrying the nextentryfrom the stream (without moving the stream pointer), if such entry was available. If no entry was available for reading, this method returns an empty Optional.This method will never block for elements becoming available.
- Returns:
- An optional carrying the next
entry, if available.
-
setCallback
Description copied from interface:MessageStreamRegisters the callback to invoke whenentriesare available for reading or when the stream completes (either normally or with an error). An invocation of the callback does not in any way guarantee that entries are indeed available, or that the stream has indeed been completed. Implementations may choose to suppress repeated invocations of the callback if no entries have been read in the meantime.Any previously registered callback is replaced with the given
callback.The callback is called on an arbitrary thread, and it should keep work performed on this thread to a minimum as this may interfere with other callbacks handled by the same thread. Any exception thrown by the callback will result in the stream completing with this exception as the error.
- Specified by:
setCallbackin interfaceMessageStream<M extends Message>- Overrides:
setCallbackin classDelegatingMessageStream<M extends Message,M extends Message> - Parameters:
callback- The callback to invoke whenentriesare available for reading, or the stream completes.
-
close
public void close()Description copied from interface:MessageStreamCloses this stream, freeing any possible resources occupied by the underlying stream. After invocation, someentriesmay still be available for reading.Implementations must always release resources when a stream is completed, either with an error or normally. Therefore, it is only required to
close()a stream if the consumer decides to not read until the end.- Specified by:
closein interfaceMessageStream<M extends Message>- Overrides:
closein classDelegatingMessageStream<M extends Message,M extends Message>
-
hasNextAvailable
public boolean hasNextAvailable()Description copied from interface:MessageStreamIndicates whether anentryis available for immediate reading. When entries are reported available, there is no guarantee thatMessageStream.next()will indeed return an entry. However, besides any concurrent activity on this stream, it is guaranteed that no entries are available for reading when this method returnsfalse.- Specified by:
hasNextAvailablein interfaceMessageStream<M extends Message>- Overrides:
hasNextAvailablein classDelegatingMessageStream<M extends Message,M extends Message> - Returns:
truewhen there areentriesavailable for reading,falseotherwise.
-