private void SpillBufferSegment(BufferSegment segment, int padStart) { ArraySegment <byte> arraySegment = segment.ToArraySegment(); int padEnd = this.pageSize - (padStart + arraySegment.Count); this.SpillBuffer(padStart, arraySegment.Array, arraySegment.Offset, arraySegment.Count, padEnd); }
public int SendBufferSegment(MessageHeader hdr, BufferSegment segment) { ArraySegment <byte> byteArraySegment = segment.ToArraySegment(); if (byteArraySegment.Offset == 0) { this.stream.Write(byteArraySegment.Array, 0, this.pageSize); } else { this.stream.Write(byteArraySegment.Array, byteArraySegment.Offset, byteArraySegment.Count); // Now pad the write to the full page size. this.stream.Seek(this.pageSize - byteArraySegment.Count, SeekOrigin.Current); } return(this.nextPageIndex++); }