public override void Unsubscribe(ChannelNetworkMgrBase mgr, IChannelNetworkComponentEX emitter) { if (emitter.PreSubscribe(mgr, Emitters) || Emitters == 0) { return; } else if (emitter.GetOperationalState) { Count--; } Emitters--; if (Emitters == 0) { Activate = false; } emitter.PostUnsubscribe(mgr, Emitters); }
public override void Subscribe(ChannelNetworkMgrBase mgr, IChannelNetworkComponentEX emitter) { if (emitter.PreSubscribe(mgr, Emitters)) { return; } if (Emitters == 0) { Activate = emitter.GetOperationalState; if (Activate) { Count++; } mgr.SignalEmit(emitter.GetChannel, Activate); } else if (Count == 0 && emitter.GetOperationalState) { Count++; mgr.SignalEmit(emitter.GetChannel, true); } Emitters++; emitter.PostSubscribe(mgr, Emitters); }
public virtual void Unsubscribe(ChannelNetworkMgrBase mgr, IChannelNetworkComponentEX emitter) { }