public void Send(AddPeerSubscription message) { if (_ids.ContainsKey(message.SubscriptionId)) { return; } _ids.Add(message.SubscriptionId, message); if (_ids.Count > 1) { return; } _subscriptionId = NewId.NextGuid(); _endpointUri = message.EndpointUri; var add = new SubscriptionAddedMessage { SubscriptionId = _subscriptionId, EndpointUri = _endpointUri, MessageName = _messageName, CorrelationId = _correlationId, }; _log.DebugFormat("PeerSubscriptionAdded: {0}, {1} {2}", _messageName, _endpointUri, _subscriptionId); _observer.OnSubscriptionAdded(add); }
public void OnSubscribeTo(SubscribeTo added) { lock (_ids) { bool wasAdded = _ids.Add(added.SubscriptionId); if (!wasAdded || _ids.Count != 1) { return; } } _subscriptionId = NewId.NextGuid(); _endpointUri = added.EndpointUri; var add = new SubscriptionAddedMessage { SubscriptionId = _subscriptionId, EndpointUri = _endpointUri, MessageName = _messageName, CorrelationId = _correlationId, }; _log.DebugFormat("SubscribeTo: {0}, {1}", _messageName, _subscriptionId); _observer.OnSubscriptionAdded(add); }