public void SendZeroCopy() { var buffer = new ZeroCopyBuffer(); FillMemory(buffer); _client.SendZeroCopy(buffer); ReceiveAndVerify(); }
public void Allocate() { var buffer = new ZeroCopyBuffer(); buffer.Allocate(5); buffer.Capacity.Should().Be(5); buffer.Length.Should().Be(5); }
public void Constructor() { var buffer = new ZeroCopyBuffer(); buffer.Ptr.Should().Be(IntPtr.Zero); buffer.Capacity.Should().Be(0); buffer.Length.Should().Be(0); }
public void TrySendZeroCopy() { var buffer = new ZeroCopyBuffer(); FillMemory(buffer); var result = _behavior.TrySendZeroCopy(buffer); result.Should().BeTrue(); ReceiveAndVerify(); }
public void Dispose() { var buffer = new ZeroCopyBuffer(); buffer.Allocate(5); buffer.Ptr.Should().NotBe(IntPtr.Zero); buffer.Dispose(); buffer.Ptr.Should().Be(IntPtr.Zero); buffer.Capacity.Should().Be(0); buffer.Length.Should().Be(0); }
public bool TryReceiveZeroCopy(out ZeroCopyBuffer buffer) { var errorCode = NativeMethods.nng_recv(_nngSocket, out var ptr, out var sizePtr, NativeMethods.NngFlags.Allocate | NativeMethods.NngFlags.Async); if (errorCode == NngErrorCode.TryAgain) { buffer = null; return(false); } errorCode.ThrowIfError(); buffer = new ZeroCopyBuffer(ptr, (int)sizePtr); return(true); }
public void Allocate_Again_When_Extra_Memory_Is_Needed() { var buffer = new ZeroCopyBuffer(); buffer.Allocate(3); buffer.Capacity.Should().Be(3); buffer.Length.Should().Be(3); var ptr1 = buffer.Ptr; buffer.Allocate(5); buffer.Capacity.Should().Be(5); buffer.Length.Should().Be(5); var ptr2 = buffer.Ptr; ptr2.Should().NotBe(ptr1); }