static void Main(string[] args) { RxSpySession.Launch(); var dummy = new [] { "Foo", "Bar", "Baz" }; while (true) { var obs1 = Observable.Timer(TimeSpan.Zero, TimeSpan.FromSeconds(1)); var obs2 = obs1.Select(x => dummy[x % dummy.Length]); var obs3 = obs1.Select(x => "---"); var obs4 = obs2.Where(x => x.StartsWith("B")); var obsErr = Observable.Throw <string>(new InvalidOperationException()).Catch(Observable.Return("")); var toJoin = new List <IObservable <string> > { obs3, obs4, obsErr }; var obs5 = Observable.CombineLatest(toJoin); var obs6 = obs5.Select(x => string.Join(", ", x)); //using (obs.Subscribe()) using (obs6.Subscribe(Console.WriteLine)) { Console.ReadLine(); Console.WriteLine("Disposing of all observables"); } Console.WriteLine("Press enter to begin again"); Console.ReadLine(); } }
internal QueryLanguageProxy(RxSpySession session, object realQueryLanguage) : base(typeof(ContextBoundObject)) { _queryLanguage = realQueryLanguage; _queryLanguageType = realQueryLanguage.GetType(); _queryLanguageInterface = _queryLanguageType.GetInterface("IQueryLanguage"); _session = session; }
public OperatorObservable(RxSpySession session, IObservable <T> inner, OperatorInfo operatorInfo) { if (inner == null) { throw new ArgumentNullException("source"); } _inner = inner; _session = session; _operatorInfo = operatorInfo; _session.OnCreated(Event.OperatorCreated(operatorInfo)); }
public OperatorConnection(RxSpySession session, IObservable <T> parent, OperatorInfo childInfo) { _session = session; _parent = parent; var oobs = parent as IOperatorObservable; if (oobs != null) { _parentInfo = oobs.OperatorInfo; } _childInfo = childInfo; }
static void Main(string[] args) { // This app is meant as a tool for benchmarking performance when developing features. // Run it a few times before starting work on a new feature and then continually as you // make changes to monitor your progress. var sw = Stopwatch.StartNew(); Run(); var warmupRun = sw.Elapsed; Console.WriteLine("Warm up round without RxSpy took {0:N4}", warmupRun.TotalSeconds); sw.Restart(); Run(); var pureRun = sw.Elapsed; Console.WriteLine("Stress test without RxSpy took {0:N4}", pureRun.TotalSeconds); // Launching with the streamwriter will benchmark serialization performance but not // create a huge file on disk. var fakeStream = new StressTestStream(); var eventHandler = new StressTestEventHandler(new RxSpyStreamWriter(fakeStream)); sw.Restart(); using (RxSpySession.Launch(eventHandler)) { Run(); } var spyRun = sw.Elapsed; Log("Stress test run took {0:N4}, captured {1:N0} events, {2:N0} observables", spyRun.TotalSeconds, eventHandler.EventCount, eventHandler.ObservableCount); Log("Produced {0:N0} bytes of event output", fakeStream.Length); Log("RxSpy was {0:N2}x slower", spyRun.TotalSeconds / pureRun.TotalSeconds); if (!Debugger.IsAttached) { Console.ReadLine(); } }
public ConnectableOperatorConnection(RxSpySession session, IConnectableObservable <T> parent, OperatorInfo childInfo) : base(session, parent, childInfo) { _connectableObservable = parent; }
public ConnectableOperatorObservable(RxSpySession session, IConnectableObservable <T> parent, OperatorInfo operatorInfo) : base(session, parent, operatorInfo) { _connectableObservable = parent; }