MultiHandler<M, A> constructor
Creates a MultiHandler with:
- minAnswers - number of successful answers that should be awaited for.
- handlersPerMessage - number of Messengers that should receive each message (defaults to all).
combineAnswers
- how to combine the received answers to provide a single answer.
The value of minAnswers must be less than or equal to that of handlersPerMessage.
The default combineAnswers
function returns the first answer if all
answers are equal, and throws an Exception if received answers differ.
Implementation
MultiHandler(
{this.minAnswers = 2,
this.handlersPerMessage,
A Function(List<A>)? combineAnswers})
: combineAnswers = combineAnswers ?? _firstAnswerIfAllEqual {
final handlers = handlersPerMessage;
if (handlers != null && minAnswers > handlers) {
throw ArgumentError(
'minAnswers > handlersPerMessage ($minAnswers > $handlers)');
}
}