예제 #1
0
        public void TestCopyingToOutputStream()
        {
            IByteBuffer buf1 = Unpooled.DirectBuffer(10);
            IByteBuffer buf2 = Unpooled.Buffer(10);
            IByteBuffer buf3 = Unpooled.DirectBuffer(10);

            buf1.WriteBytes(Encoding.ASCII.GetBytes("a"));
            buf2.WriteBytes(Encoding.ASCII.GetBytes("b"));
            buf3.WriteBytes(Encoding.ASCII.GetBytes("c"));
            IByteBuffer composite   = Unpooled.WrappedUnmodifiableBuffer(buf1, buf2, buf3);
            IByteBuffer copy        = Unpooled.DirectBuffer(3);
            IByteBuffer copy2       = Unpooled.Buffer(3);
            var         copyStream  = new ByteBufferStream(copy);
            var         copy2Stream = new ByteBufferStream(copy2);

            try
            {
                composite.GetBytes(0, copyStream, 3);
                composite.GetBytes(0, copy2Stream, 3);
                Assert.Equal(0, ByteBufferUtil.Compare(copy, composite));
                Assert.Equal(0, ByteBufferUtil.Compare(copy2, composite));
                Assert.Equal(0, ByteBufferUtil.Compare(copy, copy2));
            }
            finally
            {
                copy.Release();
                copy2.Release();
                copyStream.Close();
                copy2Stream.Close();
                composite.Release();
            }
        }
예제 #2
0
        public void TestExtractNioBuffers()
        {
            IByteBuffer buf1 = Unpooled.DirectBuffer(10);
            IByteBuffer buf2 = Unpooled.Buffer(10);
            IByteBuffer buf3 = Unpooled.DirectBuffer(10);

            buf1.WriteBytes(Encoding.ASCII.GetBytes("a"));
            buf2.WriteBytes(Encoding.ASCII.GetBytes("b"));
            buf3.WriteBytes(Encoding.ASCII.GetBytes("c"));
            IByteBuffer composite   = Unpooled.WrappedUnmodifiableBuffer(buf1, buf2, buf3);
            var         byteBuffers = composite.GetIoBuffers(0, 3);

            Assert.Equal(3, byteBuffers.Length);
            Assert.Single(byteBuffers[0]);
            Assert.Single(byteBuffers[1]);
            Assert.Single(byteBuffers[2]);
            composite.Release();
        }
예제 #3
0
        public void TestCopyingToOtherBuffer()
        {
            IByteBuffer buf1 = Unpooled.DirectBuffer(10);
            IByteBuffer buf2 = Unpooled.Buffer(10);
            IByteBuffer buf3 = Unpooled.DirectBuffer(10);

            buf1.WriteBytes(Encoding.ASCII.GetBytes("a"));
            buf2.WriteBytes(Encoding.ASCII.GetBytes("b"));
            buf3.WriteBytes(Encoding.ASCII.GetBytes("c"));
            IByteBuffer composite = Unpooled.WrappedUnmodifiableBuffer(buf1, buf2, buf3);
            IByteBuffer copy      = Unpooled.DirectBuffer(3);
            IByteBuffer copy2     = Unpooled.Buffer(3);

            copy.SetBytes(0, composite, 0, 3);
            copy2.SetBytes(0, composite, 0, 3);
            copy.SetWriterIndex(3);
            copy2.SetWriterIndex(3);
            Assert.Equal(0, ByteBufferUtil.Compare(copy, composite));
            Assert.Equal(0, ByteBufferUtil.Compare(copy2, composite));
            Assert.Equal(0, ByteBufferUtil.Compare(copy, copy2));
            copy.Release();
            copy2.Release();
            composite.Release();
        }