protected override void Dispose(bool explicitDispose) { if (explicitDispose) { _innerPublisher?.Dispose(); } _innerPublisher = null; // base.Dispose(explicitDispose); }
public LocalSubscription(ILocalPublisher publisher, ILocalSubscriber subscriber, LocalSubscriptionStates initialState) { publisher.EnsureNotNull(nameof(publisher)); subscriber.EnsureNotNull(nameof(subscriber)); P_EnsureInitialStateValid(initialState); // _state = (int)initialState; unchecked { _hashCode = (publisher.GetHashCode() * 17) ^ (subscriber.GetHashCode() * 23); } _publisher = publisher; _publisherInfoText = publisher.ToString(); _publisherAsIPublicationFilterListener = publisher as ILocalPublicationFilterListener; _subscriber = subscriber; _subscriberInfoText = subscriber.ToString(); _subscriberAsIPublicationFilterListener = subscriber as ILocalPublicationFilterListener; _activateControl = new RunControl <LocalSubscription>(options: RunControlOptions.SingleStart, component: this, attemptState: null, beforeStart: null, start: P_DoActivationAsync, stop: P_DoDeactivationAsync); // publisher.BeforeDispose += P_EH_PublisherOrSubscriber_BeforeDispose; subscriber.BeforeDispose += P_EH_PublisherOrSubscriber_BeforeDispose; }
public LocalSubscription(ILocalPublisher publisher, ILocalSubscriber subscriber) : this(publisher : publisher, subscriber : subscriber, initialState : LocalSubscriptionStates.None) { }