public void Stop()
 {
     EnsureStarted();
     _headEventReader = null;
     _started = false;
 }
 public void Start(Guid eventReaderId, EventReader eventReader)
 {
     if (_started)
         throw new InvalidOperationException("Already started");
     _eventReaderId = eventReaderId;
     _headEventReader = eventReader;
     //Guid.Empty means head distribution point
     _headEventReader.Resume();
     _started = true;
 }