Пример #1
0
        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);
        }
Пример #2
0
        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++);
        }