Ejemplo n.º 1
0
            public override void HandleUnsubscriptionMessage(UnsubscribeMessage message)
            {
                this.PublishMessage(new ActorUnsubscribedMessage(message.Unsubscriber, false));
                _unsubscribeMessages++;

                base.HandleUnsubscriptionMessage(message);
            }
        /// <summary>
        /// Handles an <see cref="UnsubscribeMessage"/>.
        /// </summary>
        /// <param name="self">The <see cref="IPublishMessageActor"/></param>
        /// <param name="message">The <see cref="UnsubscribeMessage"/></param>
        /// <returns>True if <see cref="IActorRef"/> is removed from subscribers.</returns>
        internal static bool HandleUnsubscription(this IPublishMessageActor self, UnsubscribeMessage message)
        {
            self.HandleUnsubscriptionMessage(message);

            if (message.UnsubscribeAllTypes)
            {
                return(RemoveFromSubscribers(self, message.Unsubscriber));
            }

            var result = self.Subscribers.Remove(
                self.Subscribers.FirstOrDefault(
                    x => Equals(x.Item1, message.Unsubscriber) && x.Item2 == message.MessageType));

            if (result && self.AutoWatchSubscriber)
            {
                self.ActorContext.Unwatch(message.Unsubscriber);
            }

            return(result);
        }
 /// <summary>
 ///     Handles unsubscribtions.
 /// </summary>
 /// <param name="message">The message.</param>
 public virtual void HandleUnsubscriptionMessage(UnsubscribeMessage message)
 {
 }
 /// <summary>
 ///     Handles unsubscribtions.
 /// </summary>
 /// <param name="message">The message.</param>
 public virtual void HandleUnsubscriptionMessage(UnsubscribeMessage message)
 {
 }
Ejemplo n.º 5
0
 /// <summary>
 ///     Handles unsubscribtions.
 /// </summary>
 /// <param name="message">The message.</param>
 public virtual void Handle(UnsubscribeMessage message)
 {
     this.HandleUnsubscription(message);
 }