Beispiel #1
0
 public BufSlice(BufBlock block, int offset, int total)
 {
     this.block  = block;
     this.Offset = offset;
     this.Total  = total;
     Reset();
 }
Beispiel #2
0
        public IBufSlice Alloc(int size)
        {
            for (int i = 0; i < this.blocks.Count; ++i)
            {
                BufSlice bytes = this.blocks[i].Capture(size);
                if (bytes != null)
                {
                    return(bytes);
                }
            }

            var block = new BufBlock(this, Math.Max(GetProperSize(size), MIN_BUFFER_SIZE));

            this.blocks.Add(block);

            return(block.Capture(size));
        }