示例#1
0
 protected internal virtual Cons AddConnection(GoListener listener)
 {
     lock (this)
     {
         if (listener == null)
         {
             throw new LSysException("null listener");
         }
         return(AddCons(new Cons(this, listener)));
     }
 }
示例#2
0
 protected internal static Cons RemoveAll(Cons head, GoListener listener)
 {
     if (head == null)
     {
         return(null);
     }
     if (head.Listener() == listener)
     {
         return(RemoveAll(head.next, listener));
     }
     head.next = RemoveAll(head.next, listener);
     return(head);
 }
示例#3
0
 protected internal virtual void RemoveConnection(GoListener listener)
 {
     lock (this)
     {
         if (IsDispatching())
         {
             _pendingRuns = Append(_pendingRuns, new RemoveConnectionImpl(this, listener));
         }
         else
         {
             _listeners = Cons.RemoveAll(_listeners, listener);
             ConnectionRemoved();
         }
     }
 }
示例#4
0
 public RemoveConnectionImpl(Bypass outerInstance, GoListener listener)
 {
     this.outerInstance = outerInstance;
     this.listener      = listener;
 }
示例#5
0
 public abstract void Notify(GoListener listener, T a1, T a2, T a3);
示例#6
0
 protected internal Cons(Bypass owner, GoListener listener)
 {
     _owner = owner;
     _ref   = new StrongRef(listener);
 }
示例#7
0
 public override void Defang(GoListener def)
 {
     _lner = def;
 }
示例#8
0
 public StrongRef(GoListener lner)
 {
     _lner = lner;
 }
示例#9
0
 public abstract void Defang(GoListener def);
示例#10
0
 public override void Notify(GoListener port, T e, T a, T b)
 {
     ((ActViewListener <T>)port).OnEmit(e);
 }
示例#11
0
 public override void Notify(GoListener lner, T value, T oldValue, T ignored)
 {
     ((VarViewListener <T>)lner).OnChange(value, oldValue);
 }