コード例 #1
0
        protected void RemoveObserver(IInterfacedObserver observer)
        {
            var o = (InterfacedObserver)observer;

            if (o.ObserverId != 0)
            {
                var removed = EnsureObserverMap().RemoveContext(o.ObserverId);
                if (removed == false)
                {
                    Context.System.EventStream.Publish(new Event.Warning(
                                                           Self.Path.ToString(), GetType(),
                                                           $"RemoveObserver failed in removing the context of observer({o.ObserverId})"));
                }
            }
        }
コード例 #2
0
 public bool Detach(IInterfacedObserver observer)
 {
     return _observers.Remove(observer);
 }
コード例 #3
0
 public void Attach(IInterfacedObserver observer)
 {
     _observers.Add(observer);
 }
コード例 #4
0
 public ObserverEventDispatcher(IInterfacedObserver observer, bool startPending = false, bool keepOrder = false)
 {
     Attach(observer);
     Pending = startPending;
     KeepingOrder = keepOrder;
 }
コード例 #5
0
 public bool Detach(IInterfacedObserver observer)
 {
     return(_observers.Remove(observer));
 }
コード例 #6
0
 public void Attach(IInterfacedObserver observer)
 {
     _observers.Add(observer);
 }
コード例 #7
0
 public ObserverEventDispatcher(IInterfacedObserver observer, bool startPending = false, bool keepOrder = false)
 {
     Attach(observer);
     Pending      = startPending;
     KeepingOrder = keepOrder;
 }
コード例 #8
0
        public static ObserverEventDispatcher GetEventDispatcher(this IInterfacedObserver observer)
        {
            var o = observer as InterfacedObserver;

            return(o?.Channel as ObserverEventDispatcher);
        }
コード例 #9
0
 public ObjectNotificationChannel(IInterfacedObserver observer)
 {
     Observer = observer;
 }