public ScaleoutStreamManager(Func <int, IList <Message>, Task> send, Action <int, ulong, ScaleoutMessage> receive, int streamCount, TraceSource trace, IPerformanceCounterManager performanceCounters, ScaleoutConfiguration configuration, int maxScaleoutMappings) { if (configuration.QueueBehavior != QueuingBehavior.Disabled && configuration.MaxQueueLength == 0) { throw new InvalidOperationException(Resources.Error_ScaleoutQueuingConfig); } _streams = new ScaleoutStream[streamCount]; _send = send; _receive = receive; var receiveMapping = new ScaleoutMappingStore[streamCount]; performanceCounters.ScaleoutStreamCountTotal.RawValue = streamCount; performanceCounters.ScaleoutStreamCountBuffering.RawValue = streamCount; performanceCounters.ScaleoutStreamCountOpen.RawValue = 0; for (int i = 0; i < streamCount; i++) { _streams[i] = new ScaleoutStream(trace, "Stream(" + i + ")", configuration.QueueBehavior, configuration.MaxQueueLength, performanceCounters); receiveMapping[i] = new ScaleoutMappingStore(maxScaleoutMappings); } Streams = new ReadOnlyCollection <ScaleoutMappingStore>(receiveMapping); }
public ScaleoutStreamManager(Func <int, IList <Message>, Task> send, Action <int, ulong, ScaleoutMessage> receive, int streamCount, TraceSource trace, IPerformanceCounterManager performanceCounters, ScaleoutConfiguration configuration) : this(send, receive, streamCount, trace, performanceCounters, configuration, DefaultConfigurationManager.DefaultMaxScaleoutMappingsPerStream) { }
protected ScaleoutMessageBus(IDependencyResolver resolver, ScaleoutConfiguration configuration) : base(resolver) { if (configuration == null) { throw new ArgumentNullException("configuration"); } _traceManager = resolver.Resolve <ITraceManager>(); _trace = _traceManager["SignalR." + typeof(ScaleoutMessageBus).Name]; _perfCounters = resolver.Resolve <IPerformanceCounterManager>(); var maxScaloutMappings = resolver.Resolve <IConfigurationManager>().MaxScaleoutMappingsPerStream; _streamManager = new Lazy <ScaleoutStreamManager>( () => new ScaleoutStreamManager(Send, OnReceivedCore, StreamCount, _trace, _perfCounters, configuration, maxScaloutMappings)); }