public FollowingGetProperty(IObservable <T> predecessor, T defaultValue) { if (predecessor == null) { throw new ArgumentNullException("predecessor"); } predecessor.Subscribe(Observer2.Create <T>(SetValue)); _value = defaultValue; }
public void Register_Observer2() { // Arrange var subject = new Subject(); var observer2 = new Observer2(); // Act var unsubscriber2 = observer2.Register(subject); // Assert Assert.AreEqual(1, subject.Observers.Count); }
static void Main(string[] args) { Source s = new Source(); Observer1 o1 = new Observer1(); Observer2 o2 = new Observer2(); MyDelegate d1 = new MyDelegate(o1.Do); s.Run += d1; s.Run += o2.Do; s.Start(); Console.ReadLine(); }
public static IDisposable Subscribe <TSource, TProperty>(this IObservable <TSource> source, IObservableGetProperty <TProperty> property) { if (source == null) { throw new ArgumentNullException("source"); } if (property == null) { throw new ArgumentNullException("property"); } return(source.Subscribe(Observer2.Create <TSource>(o => property.OnNext()))); }
/// <summary> /// Notifies the specified actions when the specified <paramref name="element"/> queries or executes the <paramref name="command"/>. /// </summary> /// <param name="command">The <see cref="ICommand"/> from which notifications are received.</param> /// <param name="element">The <see cref="UIElement"/> that queries or executes the specified <paramref name="command"/>.</param> /// <param name="onExecuted">The action that is executed when the <paramref name="command"/> is executed.</param> /// <param name="onCanExecute">The action that is executed when the <paramref name="element"/> queries whether the <paramref name="command"/> can be executed.</param> /// <returns>The observer's interface that enables cancelation of the subscription so that it stops receiving notifications.</returns> public static IDisposable Subscribe( this ICommand command, UIElement element, Action <EventPattern <ExecutedRoutedEventArgs> > onExecuted, Action <EventPattern <CanExecuteRoutedEventArgs> > onCanExecute) { Contract.Requires(command != null); Contract.Requires(element != null); Contract.Requires(onExecuted != null); Contract.Requires(onCanExecute != null); Contract.Ensures(Contract.Result <IDisposable>() != null); return(command.AsObservable(element).Subscribe(Observer2.CreateEither(onCanExecute, onExecuted))); }
public void RecognizeAsync() { // UI スレッドでなければ動作しない? var recognizer = new InkTextRecognizer { Culture = InkTextRecognizer.Culture_ja_JP, }; recognizer.BestResultArrived.Subscribe(Observer2.Create <string>(Console.WriteLine)); recognizer.AddStroke(new[] { new Point(100, 100), new Point(100, 200) }); recognizer.RecognizeAsync(); Thread.Sleep(1000); }
void Start() { Subject subject = new Subject(); Observer1 observer1 = new Observer1(); Observer2 observer2 = new Observer2(); subject.RegisterObserver(observer1); subject.SetData("Hello World!"); subject.RegisterObserver(observer2); subject.SetData("Re:Hello World!"); subject.RemoveObserver(observer1); subject.SetData("Re:Re:Hello World!"); }
public void Dispose_Any_Observer() { // Arrange var subject = new Subject(); var observer1 = new Observer1(); var observer2 = new Observer2(); var observer3 = new Observer3(); var unsubscriber1 = observer1.Register(subject); var unsubscriber2 = observer2.Register(subject); var unsubscriber3 = observer3.Register(subject); // Act unsubscriber2.Dispose(); // Assert Assert.AreEqual(2, subject.Observers.Count); }
public void PublishData(string data) { //Add all the observer below //1st observer IObserver iObserver = new Observer1(); this.OnReceive += iObserver.ReceiveData; //2nd observer IObserver iObserver2 = new Observer2(); this.OnReceive += iObserver2.ReceiveData; //publish data var handler = OnReceive; if (handler != null) { handler(data); } }
static void Main(string[] args) { Console.WriteLine("***Observer Pattern Demo***\n"); //We have 3 observers-2 of them are ObserverType1, 1 of them is of ObserverType2 IObserver myObserver1 = new Observer1("Roy"); IObserver myObserver2 = new Observer1("Kevin"); IObserver myObserver3 = new Observer2("Bose"); var subject = new Subject(); //Registering the observers-Roy,Kevin,Bose Chapter 14 Observer pattern subject.Register(myObserver1); subject.Register(myObserver2); subject.Register(myObserver3); Console.WriteLine(" Setting Flag = 5 "); subject.Flag = 5; //Unregistering an observer(Roy)) subject.UnRegister(myObserver1); //No notification this time Roy. Since it is unregistered. Console.WriteLine("\n Setting Flag = 50 "); subject.Flag = 50; }
public Test() { var subject = new Subject(); var observ1 = new Observer1(); subject.Add(observ1); var observ2 = new Observer2(); subject.Add(observ2); subject.SomeBusinessLogic(); subject.SomeBusinessLogic(); subject.Delete(observ2); subject.SomeBusinessLogic(); var observ3 = new Observer3(); subject.Add(observ3); subject.SomeBusinessLogic(); }
private void attacherListeners() { pub = new Publisher(); Observer1 obs1 = new Observer1(); Observer2 obs2 = new Observer2(); }