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; }
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; }
/// <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))); }