Esempio n. 1
0
        public RxSpyStreamWriter(Stream stream)
        {
            _stream                  = stream;
            _serializerStrategy      = new RxSpyJsonSerializerStrategy();
            _cancellationTokenSource = new CancellationTokenSource();

            Task.Factory.StartNew(() => RunQueue(_cancellationTokenSource.Token), TaskCreationOptions.LongRunning);
        }
Esempio n. 2
0
        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();
                }
            }));
        }