AK.F1.Timing.Server.Proxy.ProxySession.SendNextBuffer C# (CSharp) Метод

SendNextBuffer() приватный Метод

private SendNextBuffer ( ) : void
Результат void
        private void SendNextBuffer()
        {
            Debug.Assert(_partiallySentBuffer == null);

            int count = 0;
            ByteBufferSnapshot buffer;
            while(count < _outputBuffer.Length && _bufferQueue.TryDequeue(out buffer))
            {
                int available = _outputBuffer.Length - count;
                if(available >= buffer.Count)
                {
                    buffer.CopyTo(0, _outputBuffer, count, buffer.Count);
                    count += buffer.Count;
                }
                else
                {
                    buffer.CopyTo(0, _outputBuffer, count, available);
                    count += available;
                    _partiallySentBuffer = buffer;
                    _partiallySentBufferOffset = available;
                }
            }
            if(count > 0)
            {
                SendOutputBuffer(count);
            }
            else if(_completedEvent.IsSet)
            {
                Disconnect();
            }
            else
            {
                _idleEvent.Set();
            }
        }