Beispiel #1
0
 public override void Unsubscribe(ChannelNetworkMgrBase mgr, IChannelNetworkComponentEX emitter)
 {
     if (emitter.PreUnsubscribe(mgr, Count) || Count == 0)
     {
         return;
     }
     if (emitter.GetOperationalState)
     {
         Count--;
     }
     if (Count == 0)
     {
         mgr.SignalEmit(emitter.GetChannel, false);
     }
     emitter.PostUnsubscribe(mgr, Count);
 }
Beispiel #2
0
 public override void Subscribe(ChannelNetworkMgrBase mgr, IChannelNetworkComponentEX emitter)
 {
     if (emitter.PreSubscribe(mgr, Count))
     {
         return;
     }
     if (Count == 0)
     {
         mgr.SignalEmit(emitter.GetChannel, emitter.GetOperationalState);
     }
     else if (emitter.GetOperationalState)
     {
         Count++;
     }
     emitter.PostSubscribe(mgr, Count);
 }