Esempio n. 1
0
        public FollowingGetProperty(IObservable <T> predecessor, T defaultValue)
        {
            if (predecessor == null)
            {
                throw new ArgumentNullException("predecessor");
            }

            predecessor.Subscribe(Observer2.Create <T>(SetValue));
            _value = defaultValue;
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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())));
        }
Esempio n. 5
0
        /// <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);
        }
Esempio n. 7
0
    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!");
    }
Esempio n. 8
0
        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);
        }
    }
Esempio n. 10
0
        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;
        }
Esempio n. 11
0
        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();
        }
Esempio n. 12
0
 private void attacherListeners()
 {
     pub = new Publisher();
     Observer1 obs1 = new Observer1();
     Observer2 obs2 = new Observer2();
 }