public RxSpyStreamWriter(Stream stream) { _stream = stream; _serializerStrategy = new RxSpyJsonSerializerStrategy(); _cancellationTokenSource = new CancellationTokenSource(); Task.Factory.StartNew(() => RunQueue(_cancellationTokenSource.Token), TaskCreationOptions.LongRunning); }
IObservable <IEvent> ReadEvents(Stream stream) { var strategy = new RxSpyJsonSerializerStrategy(); return(Observable.Create <IEvent>(async(observer, ct) => { using (var sr = new StreamReader(stream)) { string line; while (((line = await sr.ReadLineAsync()) != null)) { ct.ThrowIfCancellationRequested(); observer.OnNext(SimpleJson.DeserializeObject <IEvent>(line, strategy)); } observer.OnCompleted(); } })); }