Exemplo n.º 1
0
        public void TestMessagePutHeader()
        {
            Message message = new Message();

            message.PutLong(long.MinValue);

            Assert.AreEqual(8, message.ReadableBytes);
            Assert.AreEqual(message.ReaderIndex + 8, message.WriterIndex);

            var oldReaderIndex = message.ReaderIndex;
            var oldWriterIndex = message.WriterIndex;

            message.PutHeader((ushort)message.ReadableBytes);

            Assert.AreEqual(10, message.ReadableBytes);
            Assert.AreEqual(oldWriterIndex, message.WriterIndex);
            Assert.AreEqual(oldReaderIndex - 2, message.ReaderIndex);

            oldReaderIndex = message.ReaderIndex;
            oldWriterIndex = message.WriterIndex;

            message.PutHeader((uint)message.ReadableBytes);

            Assert.AreEqual(14, message.ReadableBytes);
            Assert.AreEqual(oldWriterIndex, message.WriterIndex);
            Assert.AreEqual(oldReaderIndex - 4, message.ReaderIndex);
        }
Exemplo n.º 2
0
        public virtual void OnSendMessage(Message message)
        {
            message.PutHeader((ushort)message.ReadableBytes);

            if (_hasXteaEncryption && _xteaKey != null)
                Xtea.Encrypt(message, _xteaKey);
            if (_hasChecksum)
                message.PutHeader(Adler.Generate(message));

            if (_hasXteaEncryption || _hasChecksum)
                message.PutHeader((ushort)message.ReadableBytes);
        }