public void TestSweepNonZeros() { IoBuffer buf = ByteBufferAllocator.Instance.Allocate(4); Int32 i; unchecked { i = (Int32)0xdeadbeef; } buf.PutInt32(i); buf.Clear(); Assert.AreEqual(i, buf.GetInt32()); Assert.AreEqual(4, buf.Position); Assert.AreEqual(4, buf.Limit); buf.Sweep((byte)0x45); Assert.AreEqual(0, buf.Position); Assert.AreEqual(4, buf.Limit); Assert.AreEqual(0x45454545, buf.GetInt32()); }
public void TestSweepWithZeros() { IoBuffer buf = allocator.Allocate(4); Int32 i; unchecked { i = (Int32)0xdeadbeef; } buf.PutInt32(i); buf.Clear(); Assert.AreEqual(i, buf.GetInt32()); Assert.AreEqual(4, buf.Position); Assert.AreEqual(4, buf.Limit); buf.Sweep(); Assert.AreEqual(0, buf.Position); Assert.AreEqual(4, buf.Limit); Assert.AreEqual(0x0, buf.GetInt32()); }
public void TestGetString() { IoBuffer buf = ByteBufferAllocator.Instance.Allocate(16); Encoding encoding = Encoding.UTF8; buf.Clear(); buf.PutString("hello", encoding); buf.Put((Byte)0); buf.Flip(); Assert.AreEqual("hello", buf.GetString(encoding)); buf.Clear(); buf.PutString("hello", encoding); buf.Flip(); Assert.AreEqual("hello", buf.GetString(encoding)); encoding = Encoding.GetEncoding("ISO-8859-1"); buf.Clear(); buf.Put((Byte)'A'); buf.Put((Byte)'B'); buf.Put((Byte)'C'); buf.Put((Byte)0); buf.Position = 0; Assert.AreEqual("ABC", buf.GetString(encoding)); Assert.AreEqual(4, buf.Position); buf.Position = 0; buf.Limit = 1; Assert.AreEqual("A", buf.GetString(encoding)); Assert.AreEqual(1, buf.Position); buf.Clear(); Assert.AreEqual("ABC", buf.GetString(10, encoding)); Assert.AreEqual(10, buf.Position); buf.Clear(); Assert.AreEqual("A", buf.GetString(1, encoding)); Assert.AreEqual(1, buf.Position); // Test a trailing garbage buf.Clear(); buf.Put((Byte)'A'); buf.Put((Byte)'B'); buf.Put((Byte)0); buf.Put((Byte)'C'); buf.Position = 0; Assert.AreEqual("AB", buf.GetString(4, encoding)); Assert.AreEqual(4, buf.Position); buf.Clear(); buf.FillAndReset(buf.Limit); encoding = Encoding.GetEncoding("UTF-16BE"); buf.Put((Byte)0); buf.Put((Byte)'A'); buf.Put((Byte)0); buf.Put((Byte)'B'); buf.Put((Byte)0); buf.Put((Byte)'C'); buf.Put((Byte)0); buf.Put((Byte)0); buf.Position = 0; Assert.AreEqual("ABC", buf.GetString(encoding)); Assert.AreEqual(8, buf.Position); buf.Position = 0; buf.Limit = 2; Assert.AreEqual("A", buf.GetString(encoding)); Assert.AreEqual(2, buf.Position); buf.Position = 0; buf.Limit = 3; Assert.AreEqual("A", buf.GetString(encoding)); Assert.AreEqual(2, buf.Position); buf.Clear(); Assert.AreEqual("ABC", buf.GetString(10, encoding)); Assert.AreEqual(10, buf.Position); buf.Clear(); Assert.AreEqual("A", buf.GetString(2, encoding)); Assert.AreEqual(2, buf.Position); buf.Clear(); try { buf.GetString(1, encoding); Assert.Fail(); } catch (Exception) { // Expected an Exception, signifies test success Assert.IsTrue(true); } // Test getting strings from an empty buffer. buf.Clear(); buf.Limit = 0; Assert.AreEqual("", buf.GetString(encoding)); Assert.AreEqual("", buf.GetString(2, encoding)); // Test getting strings from non-empty buffer which is filled with 0x00 buf.Clear(); buf.PutInt32(0); buf.Clear(); buf.Limit = 4; Assert.AreEqual("", buf.GetString(encoding)); Assert.AreEqual(2, buf.Position); Assert.AreEqual(4, buf.Limit); buf.Position = 0; Assert.AreEqual("", buf.GetString(2, encoding)); Assert.AreEqual(2, buf.Position); Assert.AreEqual(4, buf.Limit); }
/// <inheritdoc/> public override IoBuffer PutInt32(Int32 value) { _buf.PutInt32(value); return(this); }
public static void WriteLocator(IoBuffer buffer, Locator obj) { buffer.PutInt32((int)obj.Kind); buffer.PutInt32(obj.Port); buffer.Put(obj.SocketAddressBytes); }
public static void WritePrimitive(IoBuffer buffer, int value) { buffer.PutInt32(value); }