예제 #1
0
 private void ErrorHandler(Kafka.IProducer<TKey, TValue> producer, Error error)
 {
     if (producer.Equals(_producer))
     {
         _events.OnNext(new Event.Errored(error));
     }
 }
예제 #2
0
 private void StatisticsHandler(Kafka.IProducer<TKey, TValue> producer, string statistics)
 {
     if (producer.Equals(_producer))
     {
         _events.OnNext(new Event.StatisticsReceived(statistics));
     }
 }
예제 #3
0
 private void LogHandler(Kafka.IProducer<TKey, TValue> producer, LogMessage message)
 {
     if (producer.Equals(_producer))
     {
         _events.OnNext(new Event.Log(message));
     }
 }
예제 #4
0
 public Adapter(ProducerConfig config, Func<ProducerBuilder<TKey, TValue>, ProducerBuilder<TKey, TValue>> modifier = null)
 {
     _producer = (modifier ?? NullModifier).Invoke(new ProducerBuilder<TKey, TValue>(config))
         .SetErrorHandler(ErrorHandler)
         .SetLogHandler(LogHandler)
         .SetStatisticsHandler(StatisticsHandler)
         .Build();
     _events = new Subject<IEvent>();
 }