예제 #1
0
        private void EnsureCapacity(int size)
        {
            BufferSegment segment = BufferManager.GetSegment(size);

            this._segment.CopyTo(segment, this._length);
            this.m_Position = this.m_Position - this._segment.Offset + segment.Offset;
            this._segment.DecrementUsage();
            this._segment = segment;
        }
예제 #2
0
        private void EnsureCapacity(int size)
        {
            // return the old segment and get a new, bigger one
            var newSegment = BufferManager.GetSegment(size);

            _segment.CopyTo(newSegment, _length);
            m_Position = m_Position - _segment.Offset + newSegment.Offset;

            _segment.DecrementUsage();
            _segment = newSegment;
        }
예제 #3
0
 /// <summary>
 /// Returns a SegmentStream that is at least of the given size.
 /// </summary>
 /// <param name="payloadSize"></param>
 /// <returns></returns>
 /// <exception cref="T:System.ArgumentOutOfRangeException">In case that the payload exceeds the SegmentSize of the largest buffer available.</exception>
 public static SegmentStream GetSegmentStream(int payloadSize)
 {
     return(new SegmentStream(BufferManager.GetSegment(payloadSize)));
 }