private ITopicClientWrapper InstantiateTopic(TopicConfiguration config, IVeStatsDClient statsDClient, string topicId)
        {
            _creator.SetTopic(config.ConnectionString, config.TopicName, config.Update);
            var messagingFactory = GetMessagingFactory(config.ConnectionString, config.BatchFlushInterval);
            var client           = messagingFactory.CreateTopicClient(config.TopicName);
            var topic            = new TopicClientWrapper(client, statsDClient);

            _topics.Add(topicId, topic);
            return(topic);
        }
 public ITopicClientWrapper CreateTopicClient(TopicConfiguration config, IVeStatsDClient statsDClient)
 {
     lock (_lock)
     {
         string topicId = GetHash(config.ConnectionString, config.TopicName);
         if (_topics.ContainsKey(topicId))
         {
             return(_topics[topicId]);
         }
         return(InstantiateTopic(config, statsDClient, topicId));
     }
 }
 public ITopicClientWrapper CreateTopicClient(TopicConfiguration config)
 {
     return(CreateTopicClient(config, null));
 }