Interface Emitter<T>
- Type Parameters:
T- type of payload
public interface Emitter<T>
Interface used to feed a channel from an imperative piece of code.
Instances are injected using:
@Inject
@Channel("my-channel")
Emitter<String> emitter;
You can use an injected emitter to send either payloads or Messages.
The name of the channel (given in the Channel annotation) indicates which channel is fed. It must
match the name used in a method using @Incoming or an
outgoing channel configured in the application configuration.
The OnOverflow annotation can be used to configure what to do if messages are sent using the
`Emitter` when a downstream subscriber hasn't requested more messages.
-
Method Summary
-
Method Details
-
send
Sends a payload to the channel.A
Messageobject will be created to hold the payload and the returnedCompletionStagewill be completed once thisMessageis acknowledged. If theMessageis never acknowledged, then theCompletionStagewill never be completed.- Parameters:
msg- the thing to send, must not benull- Returns:
- the
CompletionStage, which will be completed when the message for this payload is acknowledged. If the emitted message is nacked, the produced completion stage is completed exceptionally. - Throws:
IllegalStateException- if the channel has been cancelled or terminated or if an overflow strategy ofTHROW_EXCEPTIONorBUFFERis configured and the emitter overflows.
-
send
Sends a message to the channel.- Type Parameters:
M- the Message type- Parameters:
msg- the Message to send, must not benull- Throws:
IllegalStateException- if the channel has been cancelled or terminated or if an overflow strategy ofTHROW_EXCEPTIONorBUFFERis configured and the emitter overflows.
-
complete
void complete()Sends the completion event to the channel indicating that no other events will be sent afterward. -
error
Sends a failure event to the channel. No more events will be sent afterward.- Parameters:
e- the exception, must not benull
-
isCancelled
boolean isCancelled()- Returns:
trueif the emitter has been terminated or the subscription cancelled.
-
hasRequests
boolean hasRequests()- Returns:
trueif one or more subscribers request messages from the corresponding channel where the emitter connects to, returnfalseotherwise.
-