Пример #1
0
        public BatchChannel(SocketOptions options, IChannel channel, BatchLetterBuilder batchBuilder)
        {
            _channel      = channel;
            _options      = options.Batch;
            _batchBuilder = batchBuilder;

            _channel.ChannelConnected     += abstractChannel => ChannelConnected(this);
            _channel.ChannelDisconnected  += ChannelOnDisconnected;
            _channel.ChannelQueueEmpty    += abstractChannel => {
                /* NOOP */
            };
            _channel.ChannelInitialized   += ChannelOnInitialized;
            _channel.ChannelConnecting    += abstractChannel => ChannelConnecting(this);
            _channel.ChannelDisconnecting += (abstractChannel, reason) => ChannelDisconnecting(this, reason);

            _channel.Received     += ChannelOnReceived;
            _channel.Sent         += ChannelOnSent;
            _channel.FailedToSend += ChannelOnFailedToSend;

            _slidingTimeoutTimer = new Timer(_options.Extend.TotalMilliseconds)
            {
                AutoReset = false
            };
            _slidingTimeoutTimer.Elapsed += SlidingTimeoutTimerOnElapsed;
        }
Пример #2
0
        public BatchChannel(SocketOptions options, IChannel channel, BatchLetterBuilder batchBuilder)
        {
            _channel      = channel;
            _options      = options.Batch;
            _batchBuilder = batchBuilder;

            _channel.ChannelConnected     += abstractChannel => ChannelConnected?.Invoke(this);
            _channel.ChannelDisconnected  += ChannelOnDisconnected;
            _channel.ChannelQueueEmpty    += abstractChannel => {
                /* NOOP */
            };
            _channel.ChannelInitialized   += ChannelOnInitialized;
            _channel.ChannelConnecting    += abstractChannel => ChannelConnecting?.Invoke(this);
            _channel.ChannelDisconnecting += (abstractChannel, reason) => ChannelDisconnecting?.Invoke(this, reason);

            _channel.Received     += ChannelOnReceived;
            _channel.Sent         += ChannelOnSent;
            _channel.FailedToSend += ChannelOnFailedToSend;

            _slidingTimeoutTimer = new Timer(SlidingTimeoutTimerOnElapsed, null, -1, -1);
        }
Пример #3
0
        public BatchChannel(SocketOptions options, IChannel channel, BatchLetterBuilder batchBuilder)
        {
            _channel = channel;
            _options = options.Batch;
            _batchBuilder = batchBuilder;

            _channel.ChannelConnected += abstractChannel => ChannelConnected(this);
            _channel.ChannelDisconnected += ChannelOnDisconnected;
            _channel.ChannelQueueEmpty += abstractChannel => {
                                              /* NOOP */
                                          };
            _channel.ChannelInitialized += ChannelOnInitialized;
            _channel.ChannelConnecting += abstractChannel => ChannelConnecting(this);
            _channel.ChannelDisconnecting += (abstractChannel, reason) => ChannelDisconnecting(this, reason);

            _channel.Received += ChannelOnReceived;
            _channel.Sent += ChannelOnSent;
            _channel.FailedToSend += ChannelOnFailedToSend;

            _slidingTimeoutTimer = new Timer(_options.Extend.TotalMilliseconds) {AutoReset = false};
            _slidingTimeoutTimer.Elapsed += SlidingTimeoutTimerOnElapsed;
        }