// ReSharper restore StaticFieldInGenericType public MessagePublisher(ISequencedDirectory directory, IMessageSerializer serializer, IScheduler scheduler) { _directory = directory; _serializer = serializer; _scheduler = scheduler; Init(); }
public MessageSource(ISequencedDirectory directory, IEnumerable <IMessageDeserializer <TMessage> > deserializers, IScheduler scheduler) { _scheduler = scheduler; _deserializers = deserializers.ToDictionary(d => d.GetTypeName()); if (!_deserializers.Any()) { throw new Exception("You need to supply at least one deserializer"); } _fileSystemWatcher = new ObservableFileSystemWatcher(directory.DirectoryPath); _buffer = new ContiguousBuffer(scheduler, directory); _subscription = _fileSystemWatcher.Created .ObserveOn(_scheduler) .Select(SequencedFile.Create) .Subscribe(_buffer.Add); }
public ContiguousBuffer(IScheduler scheduler, ISequencedDirectory directory) { _scheduler = scheduler; _lastId = directory.ReadCurrentSequenceId(); _files.Subscribe(file => _lastId = file.SequenceId); }