public void OnSubscriptionAdded(ISubscriptionAdded message)
        {
            if (_ignoredMessageTypes.Contains(message.MessageName))
            {
                return;
            }

            WithTarget(x =>
            {
                if (_log.IsDebugEnabled)
                {
                    _log.DebugFormat("Send AddPeerSubscription: {0}, {1}", _peerId, message.MessageName);
                }

                x.Send(new AddPeerSubscriptionMessage
                {
                    PeerId         = _peerId,
                    MessageNumber  = ++_messageNumber,
                    EndpointUri    = message.EndpointUri,
                    MessageName    = message.MessageName,
                    SubscriptionId = message.SubscriptionId,
                    CorrelationId  = message.CorrelationId,
                });
            });
        }
        /// <summary>
        /// Called when a subscription was added.
        /// </summary>
        /// <param name="message"></param>
        public void OnSubscriptionAdded(ISubscriptionAdded message)
        {
            long messageNumber = Interlocked.Increment(ref _lastMessageNumber);

            var subscription = new SubscriptionInformation(_peerId, messageNumber, message.MessageName, message.CorrelationId, message.EndpointUri)
            {
                SubscriptionId = message.SubscriptionId
            };

            var add = new AddSubscription(subscription);

            if (_log.IsDebugEnabled)
            {
                _log.DebugFormat("AddSubscription: {0}, {1}", subscription.MessageName, subscription.SubscriptionId);
            }

            _endpoint.Send(add, SetSendContext);
        }
Exemple #3
0
        public void OnSubscriptionAdded(ISubscriptionAdded message)
        {
            Guard.AgainstNull(_inputAddress, "InputAddress", "The input address was not set");

            Type messageType = Type.GetType(message.MessageName);

            if (messageType == null)
            {
                _log.InfoFormat("Unknown message type '{0}', unable to add subscription", message.MessageName);
                return;
            }

            MessageName messageName = _messageNameFormatter.GetMessageName(messageType);

            _inboundTransport.BindSubscriberExchange(RabbitEndpointAddress.Parse(message.EndpointUri),
                                                     messageName.ToString(), IsTemporaryMessageType(messageType));

            _bindings[message.SubscriptionId] = messageName;
        }
Exemple #4
0
        /// <summary>
        /// Adds a remote subscription to the route path or a local data or control bus
        /// </summary>
        /// <param name="message"></param>
        public void OnSubscriptionAdded(ISubscriptionAdded message)
        {
            // determine whether the message should be send over the control bus
            bool isControlMessage = message.EndpointUri.IsControlAddress();

            // connect the message to the correct cache
            if (!isControlMessage)
            {
                _connectionCache[message.SubscriptionId] = _dataBusSubscriptionCache.Connect(message.MessageName,
                                                                                             message.EndpointUri, message.CorrelationId);
            }
            else
            {
                _connectionCache[message.SubscriptionId] = _controlBusSubscriptionCache.Connect(message.MessageName,
                                                                                                message.EndpointUri, message.CorrelationId);
            }

            _log.Debug(() => string.Format("Added: {0} => {1}, {2}", message.MessageName, message.EndpointUri,
                                           message.SubscriptionId));
        }
Exemple #5
0
        public void OnSubscriptionAdded(ISubscriptionAdded message)
        {
            long messageNumber = Interlocked.Increment(ref _lastMessageNumber);

            var add = new AddPeerSubscriptionMessage
            {
                PeerId         = _peerId,
                MessageNumber  = messageNumber,
                SubscriptionId = message.SubscriptionId,
                EndpointUri    = message.EndpointUri,
                MessageName    = message.MessageName,
                CorrelationId  = message.CorrelationId,
            };

            if (_log.IsDebugEnabled)
            {
                _log.DebugFormat("AddSubscription: {0}, {1}", add.MessageName, add.SubscriptionId);
            }

            _endpoint.Send(add, SetSendContext);
        }
 /// <summary>
 /// Called when a subscription was added.
 /// </summary>
 /// <param name="message"></param>
 public void OnSubscriptionAdded(ISubscriptionAdded message)
 {
     _producer.OnSubscriptionAdded(message);
 }
 public void OnSubscriptionAdded(ISubscriptionAdded message)
 {
     lock (_observers)
         _observers.Each(x => x.OnSubscriptionAdded(message));
 }