Esempio n. 1
0
        public void Initialize(IServiceConnectionContainerFactory connectionFactory)
        {
            if (connectionFactory == null)
            {
                throw new ArgumentNullException(nameof(connectionFactory));
            }

            if (_hubConnections != null)
            {
                // TODO: log something to indicate the connection is already initialized.
                return;
            }

            lock (_lock)
            {
                if (_hubConnections != null)
                {
                    return;
                }

                var connections = new Dictionary <string, IServiceConnectionContainer>();

                _appConnection = connectionFactory.Create(_appName);

                foreach (var hub in _hubs)
                {
                    var connection = connectionFactory.Create(hub);
                    connections.Add(hub, connection);
                }

                _hubConnections = connections;
            }
        }
Esempio n. 2
0
 public ServiceHubDispatcher(IReadOnlyList <string> hubNames,
                             IServiceConnectionManager serviceConnectionManager,
                             IServiceConnectionContainerFactory serviceConnectionContainerFactory,
                             IOptions <ServiceOptions> options,
                             ILoggerFactory loggerFactory)
 {
     _hubNames                          = hubNames;
     _name                              = $"{nameof(ServiceHubDispatcher)}[{string.Join(",", hubNames)}]";
     _loggerFactory                     = loggerFactory;
     _serviceConnectionManager          = serviceConnectionManager ?? throw new ArgumentNullException(nameof(serviceConnectionManager));
     _serviceConnectionContainerFactory = serviceConnectionContainerFactory;
     _options                           = options?.Value;
     _logger                            = _loggerFactory.CreateLogger <ServiceHubDispatcher>();
 }