/// <summary>
 /// Initializes an instance of the <see cref="MessageToServiceMapper"/> class.
 /// </summary>
 /// <param name="messageTypeCache">The message type cache.</param>
 /// <param name="logger">The logger.</param>
 public MessageToServiceMapper(IClientMessageTypeCache messageTypeCache, ILogger <MessageToServiceMapper> logger)
 {
     _logger = logger;
     _logger.LogInformation("Mapping messages to services...");
     foreach (Type type in messageTypeCache.GetMessageTypes())
     {
         string typename = type.FullName ?? "";
         Match  match    = _regex.Match(typename);
         if (match.Success)
         {
             ServiceTypeCache.AddOrUpdate(
                 match.Groups[0].Value,
                 value => new List <Type>()
             {
                 type
             },
                 (value, list) =>
             {
                 list.Add(type);
                 return(list);
             });
         }
     }
     _cancellationTokenSource = new CancellationTokenSource();
     _logger.LogInformation("Finished Mapping messages to services!");
 }
Exemple #2
0
 /// <summary>
 /// Initializes an instance of the <see cref="ClientMessageProcessor"/> class.
 /// </summary>
 /// <param name="messageToServiceMapper">The message to service mapper.</param>
 /// <param name="messageSerializer">The message serializer.</param>
 /// <param name="messageQueueConfigurationOptions">The message queue configuration options.</param>
 /// <param name="serviceMessageProcessor">The service message processor.</param>
 /// <param name="messageTypeCache">The message type cache.</param>
 /// <param name="clientMessageProcessorLogger">The client message processor logger.</param>
 /// <param name="sslWSNetworkConnectorLogger">The ssl websocket network connector logger.</param>
 /// <param name="wsHandshakeLogger">The websocket handshake logger.</param>
 public ClientMessageProcessor(
     IMessageToServiceMapper messageToServiceMapper,
     IMessageSerializer messageSerializer,
     IOptions <MessageQueueConfiguration> messageQueueConfigurationOptions,
     IServiceMessageProcessor serviceMessageProcessor,
     IClientMessageTypeCache messageTypeCache,
     ILogger <ClientMessageProcessor> clientMessageProcessorLogger,
     ILogger <SslWSNetworkConnector> sslWSNetworkConnectorLogger,
     ILogger <NeuralmWSHandshakeHandler> wsHandshakeLogger)
 {
     _messageToServiceMapper       = messageToServiceMapper;
     _messageSerializer            = messageSerializer;
     _messageQueueConfiguration    = messageQueueConfigurationOptions.Value;
     _serviceMessageProcessor      = serviceMessageProcessor;
     _messageTypeCache             = messageTypeCache;
     _clientMessageProcessorLogger = clientMessageProcessorLogger;
     _sslWSNetworkConnectorLogger  = sslWSNetworkConnectorLogger;
     _wsHandshakeLogger            = wsHandshakeLogger;
     _tcpListener = new TcpListener(IPAddress.Any, _messageQueueConfiguration.Port);
 }