Akka.Interfaced.SlimSocket.Server.HeadTailWriteStream.EnsureCapacity C# (CSharp) Метод

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

private EnsureCapacity ( int size ) : void
size int
Результат void
        private void EnsureCapacity(int size)
        {
            if (size <= _size)
                return;

            int requiredTailSize = size - _head.Count;
            int orgTailSize = _tail != null ? _tail.Value.Count : 0;
            int newTailSize = requiredTailSize;
            if (newTailSize < 0x100)
                newTailSize = 0x100;
            if (newTailSize < orgTailSize * 2)
                newTailSize = orgTailSize * 2;

            if (_tail != null)
            {
                var newTail = new ArraySegment<byte>(new byte[newTailSize]);
                Array.Copy(_tail.Value.Array, _tail.Value.Offset, newTail.Array, newTail.Offset, orgTailSize);
                _tail = newTail;
            }
            else
            {
                _tail = new ArraySegment<byte>(new byte[newTailSize]);
            }

            _size = _head.Count + newTailSize;
        }