public unsafe override Span <byte> AsSpan(int index, int length) { if (IsDisposed) { BuffersExperimentalThrowHelper.ThrowObjectDisposedException(nameof(OwnedNativeBuffer)); } return(new Span <byte>(_pointer.ToPointer(), _length).Slice(index, length)); }
public override void Retain() { if (IsDisposed) { BuffersExperimentalThrowHelper.ThrowObjectDisposedException(nameof(ReferenceCountedBuffer <T>)); } Interlocked.Increment(ref _referenceCount); }
public override Span <T> AsSpan(int index, int length) { if (IsDisposed) { BuffersExperimentalThrowHelper.ThrowObjectDisposedException(nameof(OwnedPinnedBuffer <T>)); } return(new Span <T>(_array, index, length)); }
public override Span <T> GetSpan() { if (IsDisposed) { BuffersExperimentalThrowHelper.ThrowObjectDisposedException(nameof(OwnedPinnedBuffer <T>)); } return(new Span <T>(_array)); }
public override Span <byte> GetSpan() { if (IsDisposed) { BuffersExperimentalThrowHelper.ThrowObjectDisposedException(nameof(NativeMemoryPool.Memory)); } return(new Span <byte>(_pointer.ToPointer(), _length)); }
protected override unsafe bool TryGetPointerAt(int index, out void *pointer) { if (IsDisposed) { BuffersExperimentalThrowHelper.ThrowObjectDisposedException(nameof(BufferManager)); } pointer = Add(_pointer.ToPointer(), index); return(true); }
protected override bool TryGetArray(out ArraySegment <T> arraySegment) { if (IsDisposed) { BuffersExperimentalThrowHelper.ThrowObjectDisposedException(nameof(OwnedPinnedBuffer <T>)); } arraySegment = new ArraySegment <T>(_array); return(true); }
protected override unsafe bool TryGetPointerInternal(out void *pointer) { if (IsDisposed) { BuffersExperimentalThrowHelper.ThrowObjectDisposedException(nameof(OwnedNativeBuffer)); } pointer = _pointer.ToPointer(); return(true); }
public override void Release() { if (!IsRetained) { BuffersExperimentalThrowHelper.ThrowInvalidOperationException(); } if (Interlocked.Decrement(ref _referenceCount) <= 0) { OnNoReferences(); } }
public override bool Release() { int newRefCount = Interlocked.Decrement(ref _referenceCount); if (newRefCount < 0) { BuffersExperimentalThrowHelper.ThrowInvalidOperationException(); } if (newRefCount == 0) { OnNoReferences(); return(false); } return(true); }