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); }
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); }