Описание задачи, C#

Имеется канал. в который публикуются непрерывный поток данных. Есть набор потребителей этих данных.

Необходимо реализовать метод, который будет получать данные из канала и публиковать их всем потребителям.

Технические детали

  1. Чтение данных из канала осуществляется с помощью метода IConsumer.ReadData.

  2. Публикация данных осуществляется с помощью метода IPublisher.SendData. Данные для отправки совпадают с данными, полученными из канала.

  3. Список клиентов, которые должны получить сообщение указан в самом сообщении (поле Recipients).

  4. Отправка может завершиться с один из следующих статусов:

  • SendResult.Accepted - принято потребителем, операция отправки данных адресату считается завершённой

  • SendResult.Rejected - отклонено, операцию отправки следует повторить после задержки IHandler.Timeout

  1. Метод PerformOperation должен обладать высокой пропускной способностью: события внутри ReadData могут накапливаться.