コード例 #1
0
 public override void Retain()
 {
     if (IsDisposed)
     {
         PipelinesThrowHelper.ThrowObjectDisposedException(nameof(MemoryPoolBlock));
     }
     Interlocked.Increment(ref _referenceCount);
 }
コード例 #2
0
ファイル: UnownedBuffer.cs プロジェクト: botaberg/corefxlab
 protected override bool TryGetArray(out ArraySegment <byte> buffer)
 {
     if (IsDisposed)
     {
         PipelinesThrowHelper.ThrowObjectDisposedException(nameof(UnownedBuffer));
     }
     buffer = _buffer;
     return(true);
 }
コード例 #3
0
ファイル: MemoryPoolBlock.cs プロジェクト: botaberg/corefxlab
 protected override bool TryGetArray(out ArraySegment <byte> buffer)
 {
     if (IsDisposed)
     {
         PipelinesThrowHelper.ThrowObjectDisposedException(nameof(MemoryPoolBlock));
     }
     buffer = new ArraySegment <byte>(Slab.Array, _offset, _length);
     return(true);
 }
コード例 #4
0
ファイル: MemoryPoolBlock.cs プロジェクト: nietras/corefxlab
 protected override unsafe bool TryGetPointerInternal(out void *pointer)
 {
     if (IsDisposed)
     {
         PipelinesThrowHelper.ThrowObjectDisposedException(nameof(MemoryPoolBlock));
     }
     pointer = (Slab.NativePointer + _offset).ToPointer();
     return(true);
 }
コード例 #5
0
ファイル: UnownedBuffer.cs プロジェクト: botaberg/corefxlab
 public override Span <byte> AsSpan(int index, int length)
 {
     if (IsDisposed)
     {
         PipelinesThrowHelper.ThrowObjectDisposedException(nameof(UnownedBuffer));
     }
     if (length > _buffer.Count - index)
     {
         throw new ArgumentOutOfRangeException();
     }
     return(new Span <byte>(_buffer.Array, _buffer.Offset + index, length));
 }
コード例 #6
0
ファイル: MemoryPoolBlock.cs プロジェクト: botaberg/corefxlab
 public override Span <byte> AsSpan(int index, int length)
 {
     if (IsDisposed)
     {
         PipelinesThrowHelper.ThrowObjectDisposedException(nameof(MemoryPoolBlock));
     }
     if (length > _length - index)
     {
         throw new ArgumentOutOfRangeException();
     }
     return(new Span <byte>(Slab.Array, _offset + index, length));
 }
コード例 #7
0
 public override BufferHandle Pin()
 {
     if (IsDisposed)
     {
         PipelinesThrowHelper.ThrowObjectDisposedException(nameof(MemoryPoolBlock));
     }
     Retain();
     unsafe
     {
         return(new BufferHandle(this, (Slab.NativePointer + _offset).ToPointer()));
     }
 }
コード例 #8
0
ファイル: MemoryPoolBlock.cs プロジェクト: botaberg/corefxlab
 public override BufferHandle Pin(int index = 0)
 {
     if (IsDisposed)
     {
         PipelinesThrowHelper.ThrowObjectDisposedException(nameof(MemoryPoolBlock));
     }
     if (index > _length)
     {
         PipelinesThrowHelper.ThrowArgumentOutOfRangeException(_length, index);
     }
     Retain();
     unsafe
     {
         return(new BufferHandle(this, (Slab.NativePointer + _offset + index).ToPointer()));
     }
 }