MultiHandler<M, A> constructor

MultiHandler<M, A>({
  1. int minAnswers = 2,
  2. int? handlersPerMessage,
  3. A combineAnswers(
    1. List<A>
    )?,
})

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)');
  }
}