public ClientMessageCenter( IOptions <GatewayOptions> gatewayOptions, IOptions <ClientMessagingOptions> clientMessagingOptions, IPAddress localAddress, int gen, GrainId clientId, IGatewayListProvider gatewayListProvider, SerializationManager serializationManager, IRuntimeClient runtimeClient, MessageFactory messageFactory, IClusterConnectionStatusListener connectionStatusListener, ExecutorService executorService, ILoggerFactory loggerFactory, IOptions <NetworkingOptions> networkingOptions, IOptions <StatisticsOptions> statisticsOptions) { this.loggerFactory = loggerFactory; this.openConnectionTimeout = networkingOptions.Value.OpenConnectionTimeout; this.SerializationManager = serializationManager; this.executorService = executorService; lockable = new object(); MyAddress = SiloAddress.New(new IPEndPoint(localAddress, 0), gen); ClientId = clientId; this.RuntimeClient = runtimeClient; this.messageFactory = messageFactory; this.connectionStatusListener = connectionStatusListener; Running = false; GatewayManager = new GatewayManager(gatewayOptions.Value, gatewayListProvider, loggerFactory); PendingInboundMessages = new BlockingCollection <Message>(); gatewayConnections = new Dictionary <Uri, GatewayConnection>(); numMessages = 0; grainBuckets = new WeakReference[clientMessagingOptions.Value.ClientSenderBuckets]; logger = loggerFactory.CreateLogger <ClientMessageCenter>(); if (logger.IsEnabled(LogLevel.Debug)) { logger.Debug("Proxy grain client constructed"); } IntValueStatistic.FindOrCreate( StatisticNames.CLIENT_CONNECTED_GATEWAY_COUNT, () => { lock (gatewayConnections) { return(gatewayConnections.Values.Count(conn => conn.IsLive)); } }); statisticsLevel = statisticsOptions.Value.CollectionLevel; if (statisticsLevel.CollectQueueStats()) { queueTracking = new QueueTrackingStatistic("ClientReceiver", statisticsOptions); } }
public ClientMessageCenter( IOptions <ClientMessagingOptions> clientMessagingOptions, IPAddress localAddress, int gen, GrainId clientId, SerializationManager serializationManager, IRuntimeClient runtimeClient, MessageFactory messageFactory, IClusterConnectionStatusListener connectionStatusListener, ILoggerFactory loggerFactory, IOptions <StatisticsOptions> statisticsOptions, ConnectionManager connectionManager, GatewayManager gatewayManager) { this.messageHandlers = new Action <Message> [Enum.GetValues(typeof(Message.Categories)).Length]; this.connectionManager = connectionManager; this.SerializationManager = serializationManager; MyAddress = SiloAddress.New(new IPEndPoint(localAddress, 0), gen); ClientId = clientId; this.RuntimeClient = runtimeClient; this.messageFactory = messageFactory; this.connectionStatusListener = connectionStatusListener; Running = false; this.gatewayManager = gatewayManager; PendingInboundMessages = Channel.CreateUnbounded <Message>(new UnboundedChannelOptions { SingleReader = true, SingleWriter = false, AllowSynchronousContinuations = false }); numMessages = 0; this.grainBuckets = new WeakReference <Connection> [clientMessagingOptions.Value.ClientSenderBuckets]; logger = loggerFactory.CreateLogger <ClientMessageCenter>(); if (logger.IsEnabled(LogLevel.Debug)) { logger.Debug("Proxy grain client constructed"); } IntValueStatistic.FindOrCreate( StatisticNames.CLIENT_CONNECTED_GATEWAY_COUNT, () => { return(connectionManager.ConnectionCount); }); statisticsLevel = statisticsOptions.Value.CollectionLevel; if (statisticsLevel.CollectQueueStats()) { queueTracking = new QueueTrackingStatistic("ClientReceiver", statisticsOptions); } }
public ProxiedMessageCenter( ClientConfiguration config, IPAddress localAddress, int gen, GrainId clientId, IGatewayListProvider gatewayListProvider, SerializationManager serializationManager, IRuntimeClient runtimeClient, MessageFactory messageFactory, IClusterConnectionStatusListener connectionStatusListener, ILoggerFactory loggerFactory, IOptions <ClientMessagingOptions> messagingOptions) { this.loggerFactory = loggerFactory; this.openConnectionTimeout = messagingOptions.Value.OpenConnectionTimeout; this.SerializationManager = serializationManager; lockable = new object(); MyAddress = SiloAddress.New(new IPEndPoint(localAddress, 0), gen); ClientId = clientId; this.RuntimeClient = runtimeClient; this.messageFactory = messageFactory; this.connectionStatusListener = connectionStatusListener; Running = false; GatewayManager = new GatewayManager(config, gatewayListProvider, loggerFactory); PendingInboundMessages = new BlockingCollection <Message>(); gatewayConnections = new Dictionary <Uri, GatewayConnection>(); numMessages = 0; grainBuckets = new WeakReference[config.ClientSenderBuckets]; logger = new LoggerWrapper <ProxiedMessageCenter>(loggerFactory); if (logger.IsVerbose) { logger.Verbose("Proxy grain client constructed"); } IntValueStatistic.FindOrCreate( StatisticNames.CLIENT_CONNECTED_GATEWAY_COUNT, () => { lock (gatewayConnections) { return(gatewayConnections.Values.Count(conn => conn.IsLive)); } }); if (StatisticsCollector.CollectQueueStats) { queueTracking = new QueueTrackingStatistic("ClientReceiver"); } }
public ClientMessageCenter( IOptions <ClientMessagingOptions> clientMessagingOptions, IPAddress localAddress, int gen, ClientGrainId clientId, SerializationManager serializationManager, IRuntimeClient runtimeClient, MessageFactory messageFactory, IClusterConnectionStatusListener connectionStatusListener, ILoggerFactory loggerFactory, IOptions <StatisticsOptions> statisticsOptions, ConnectionManager connectionManager, GatewayManager gatewayManager) { this.connectionManager = connectionManager; this.SerializationManager = serializationManager; MyAddress = SiloAddress.New(new IPEndPoint(localAddress, 0), gen); ClientId = clientId; this.RuntimeClient = runtimeClient; this.messageFactory = messageFactory; this.connectionStatusListener = connectionStatusListener; Running = false; this.gatewayManager = gatewayManager; numMessages = 0; this.grainBuckets = new WeakReference <Connection> [clientMessagingOptions.Value.ClientSenderBuckets]; logger = loggerFactory.CreateLogger <ClientMessageCenter>(); if (logger.IsEnabled(LogLevel.Debug)) { logger.Debug("Proxy grain client constructed"); } IntValueStatistic.FindOrCreate( StatisticNames.CLIENT_CONNECTED_GATEWAY_COUNT, () => { return(connectionManager.ConnectionCount); }); statisticsLevel = statisticsOptions.Value.CollectionLevel; if (statisticsLevel.CollectQueueStats()) { queueTracking = new QueueTrackingStatistic("ClientReceiver", statisticsOptions); } }