Microsoft.Azure.Amqp.BufferListStream.ReadBytes C# (CSharp) Method

ReadBytes() public method

public ReadBytes ( int count ) : ArraySegment
count int
return ArraySegment
        public ArraySegment<byte> ReadBytes(int count)
        {
            this.ThrowIfDisposed();
            if (this.readArray == this.bufferList.Count)
            {
                return default(ArraySegment<byte>);
            }

            ArraySegment<byte> segment = this.bufferList[this.readArray];
            if (segment.Count - this.readOffset >= count)
            {
                int segmentCount = segment.Count;
                segment = new ArraySegment<byte>(segment.Array, segment.Offset + this.readOffset, count);
                this.Advance(count, segmentCount);
                return segment;
            }
            else
            {
                count = Math.Min(count, (int)(this.length - this.position));
                byte[] buffer = new byte[count];
                this.Read(buffer, 0, count);
                segment = new ArraySegment<byte>(buffer);
            }

            return segment;
        }