protected override void Accumulate(Tuple <INode, TData> data)
        {
            BatchByTopic <TData> batch;

            if (!_currentBatches.TryGetValue(data.Item1, out batch))
            {
                batch = BatchByTopic <TData> .New();

                _currentBatches[data.Item1] = batch;
            }
            batch.Add(_topicFromData(data.Item2), data.Item2);
        }
 protected override void OnNewBatch(int count)
 {
     NewBatch(_currentBatch);
     _currentBatch = BatchByTopic <TData> .New();
 }
 public AccumulatorByTopic(Func <TData, string> topicFromData, int maxCount, TimeSpan timeWindow) : base(maxCount, timeWindow)
 {
     _topicFromData = topicFromData;
     _currentBatch  = BatchByTopic <TData> .New();
 }