public int WriteFrame(short streamId, MemoryStream stream, Serializer serializer)
 {
     var wb = new FrameWriter(stream, serializer);
     wb.WriteFrameHeader(0x00, streamId, OpCode);
     wb.WriteBytes(_token);
     return wb.Close();
 }
Esempio n. 2
0
        public int WriteFrame(short streamId, MemoryStream stream, ISerializer serializer)
        {
            var wb = new FrameWriter(stream, serializer);

            wb.WriteFrameHeader((byte)_headerFlags, streamId, OpCode);
            var protocolVersion = serializer.ProtocolVersion;

            if (_payload != null)
            {
                wb.WriteBytesMap(_payload);
            }

            wb.WriteLongString(Query);

            if (protocolVersion.SupportsKeyspaceInRequest())
            {
                wb.WriteInt32((int)_prepareFlags);
                if (Keyspace != null)
                {
                    wb.WriteString(Keyspace);
                }
            }

            return(wb.Close());
        }
        public void WriteMessage(QueueDelete message, IBufferWriter <byte> output)
        {
            ValueWriter writer = new ValueWriter(output);

            writer.WriteOctet(RabbitMQConstants.FrameMethod);
            writer.WriteShortInt(_channelId);
            var reserved   = writer.Reserve(4);
            var checkpoint = writer.Written;

            FrameWriter.WriteMethodFrame(50, 40, ref writer);
            writer.WriteShortInt(0); //reserved-1
            writer.WriteShortStr(message.Name);
            writer.WriteBit(message.IfUnused);
            writer.WriteBit(message.IfEmpty);
            writer.WriteBit(message.NoWait);
            writer.BitFlush();
            var payloadSize = writer.Written - checkpoint;

            writer.WriteOctet(RabbitMQConstants.FrameEnd);

            Span <byte> span = stackalloc byte[4];

            BinaryPrimitives.WriteInt32BigEndian(span, payloadSize);
            reserved.Write(span);

            writer.Commit();
        }
        // Test a wide row consisting of a ByteBuffer
        private static void TestByteRows(ISession session, string tableName)
        {
            session.Execute(String.Format("CREATE TABLE {0} (k INT, i {1}, PRIMARY KEY(k,i))", tableName, "BLOB"));

            // Build small ByteBuffer sample
            var bw = new FrameWriter(new MemoryStream(), new Serializer(ProtocolVersion.V1));

            for (int i = 0; i < 56; i++)
            {
                bw.WriteByte(0);
            }
            bw.WriteUInt16(0xCAFE);
            var bb = new byte[58];

            Array.Copy(bw.GetBuffer(), bb, 58);

            // Write data
            for (int i = 0; i < 1024; ++i)
            {
                session.Execute(string.Format("INSERT INTO {0}(k,i) values({1},0x{2})", tableName, Key, CqlQueryTools.ToHex(bb)),
                                ConsistencyLevel.Quorum);
            }

            // Read data
            var rs = session.Execute("SELECT i FROM " + tableName + " WHERE k = " + Key, ConsistencyLevel.Quorum);

            // Verify data
            foreach (var row in rs)
            {
                Assert.AreEqual((byte[])row["i"], bb);
            }
        }
Esempio n. 5
0
        public void WriteMessage(QueueBind message, IBufferWriter <byte> output)
        {
            ValueWriter writer = new ValueWriter(output);

            writer.WriteOctet(1);
            writer.WriteShortInt(_channelId);
            var reserved   = writer.Reserve(4);
            var checkpoint = writer.Written;

            FrameWriter.WriteMethodFrame(50, 20, ref writer);
            writer.WriteShortInt(0); //reserved-1
            writer.WriteShortStr(message.QueueName);
            writer.WriteShortStr(message.ExchangeName);
            writer.WriteShortStr(message.RoutingKey);
            writer.WriteBit(message.NoWait);
            writer.WriteTable(message.Arguments);
            var payloadSize = writer.Written - checkpoint;

            writer.WriteOctet(RabbitMQConstants.FrameEnd);

            Span <byte> span = stackalloc byte[4];

            BinaryPrimitives.WriteInt32BigEndian(span, payloadSize);
            reserved.Write(span);

            writer.Commit();
        }
        public void WriteMessage(ExchangeDeclare message, IBufferWriter <byte> output)
        {
            ValueWriter writer = new ValueWriter(output);

            writer.WriteOctet(1);
            writer.WriteShortInt(_channelId);
            var reserved   = writer.Reserve(4);
            var checkpoint = writer.Written;

            FrameWriter.WriteMethodFrame(40, 10, ref writer);
            writer.WriteShortInt(0); //reseved-1
            writer.WriteShortStr(message.Name);
            writer.WriteShortStr(message.Type);

            writer.WriteBit(message.Passive);
            writer.WriteBit(message.Durable);
            writer.WriteBit(message.AutoDelete);
            writer.WriteBit(message.Internal);
            writer.WriteBit(message.NoWait);
            writer.WriteTable(message.Arguments);
            var size = writer.Written - checkpoint;

            writer.WriteOctet(RabbitMQConstants.FrameEnd);

            Span <byte> sizeSpan = stackalloc byte[4];

            BinaryPrimitives.WriteInt32BigEndian(sizeSpan, size);
            reserved.Write(sizeSpan);

            writer.Commit();
        }
Esempio n. 7
0
 private byte[] serializeForDynamicType(params object[] vals)
 {
     var elt = new FrameWriter(new MemoryStream());
     foreach (object p in vals)
     {
         if (p is int)
         {
             elt.WriteUInt16(0x8000 | 'i');
             elt.WriteUInt16(4);
             elt.WriteInt32((int)p);
             elt.WriteByte(0);
         }
         else if (p is String)
         {
             elt.WriteUInt16(0x8000 | 's');
             elt.WriteString(p as string);
             elt.WriteByte(0);
         }
         else
         {
             throw new InvalidOperationException();
         }
     }
     var ret = new byte[elt.Length];
     Buffer.BlockCopy(elt.GetBuffer(), 0, ret, 0, (int)elt.Length);
     return ret;
 }
Esempio n. 8
0
        public void WriteMessage(QueueInfo message, IBufferWriter <byte> output)
        {
            ValueWriter writer = new ValueWriter(output);

            writer.WriteOctet(1);
            writer.WriteShortInt(ChannelId);
            var reseved    = writer.Reserve(4);
            var checkpoint = writer.Written;

            FrameWriter.WriteMethodFrame(50, 10, ref writer);
            writer.WriteShortInt(0); //reserved-1
            writer.WriteShortStr(message.Name);
            writer.WriteBit(message.Passive);
            writer.WriteBit(message.Durable);
            writer.WriteBit(message.Exclusive);
            writer.WriteBit(message.AutoDelete);
            writer.WriteBit(message.NoWait);
            writer.WriteTable(message.Arguments);
            var payloadSize = writer.Written - checkpoint;

            writer.WriteOctet(Constants.FrameEnd);

            Span <byte> span = stackalloc byte[4];

            BinaryPrimitives.WriteInt32BigEndian(span, payloadSize);
            reseved.Write(span);

            writer.Commit();
        }
        public int WriteFrame(short streamId, MemoryStream stream, Serializer serializer)
        {
            var wb = new FrameWriter(stream, serializer);

            wb.WriteFrameHeader(0x00, streamId, OpCode);
            return(wb.Close());
        }
 public int WriteFrame(short streamId, MemoryStream stream)
 {
     var wb = new FrameWriter(stream);
     wb.WriteFrameHeader((byte)ProtocolVersion, 0x00, streamId, OpCode);
     wb.WriteStringList(_eventTypes);
     return wb.Close();
 }
        private byte[] serializeForDynamicType(params object[] vals)
        {
            var elt = new FrameWriter(new MemoryStream(), new Serializer(ProtocolVersion.V1));

            foreach (object p in vals)
            {
                if (p is int)
                {
                    elt.WriteUInt16(0x8000 | 'i');
                    elt.WriteUInt16(4);
                    elt.WriteInt32((int)p);
                    elt.WriteByte(0);
                }
                else if (p is String)
                {
                    elt.WriteUInt16(0x8000 | 's');
                    elt.WriteString(p as string);
                    elt.WriteByte(0);
                }
                else
                {
                    throw new InvalidOperationException();
                }
            }
            var ret = new byte[elt.Length];

            Buffer.BlockCopy(elt.GetBuffer(), 0, ret, 0, (int)elt.Length);
            return(ret);
        }
Esempio n. 12
0
 internal void WriteMessage(ReadOnlyMemory <byte> message, ref ValueWriter writer)
 {
     FrameWriter.WriteFrameHeader(RabbitMQConstants.FrameBody, _channelId, message.Length, ref writer);
     writer.WriteBytes(message.Span);
     writer.WriteOctet(RabbitMQConstants.FrameEnd);
     writer.Commit();
 }
        public void BeBinaryWriter_Close_Sets_Frame_Body_Length()
        {
            const int  frameLength     = 10;
            const int  iterations      = 8;
            const byte protocolVersion = 2;
            var        bufferPool      = new RecyclableMemoryStreamManager();

            using (var stream = bufferPool.GetStream("test"))
            {
                for (var i = 0; i < iterations; i++)
                {
                    var writer = new FrameWriter(stream, new Serializer(protocolVersion));
                    writer.WriteFrameHeader(0, 127, 8);
                    writer.WriteInt16(Convert.ToInt16(0x0900 + i));
                    var length = writer.Close();
                    Assert.AreEqual(frameLength, length);
                }
                Assert.AreEqual(frameLength * iterations, stream.Length);
                for (byte i = 0; i < iterations; i++)
                {
                    var buffer = new byte[frameLength];
                    stream.Position = i * frameLength;
                    stream.Read(buffer, 0, frameLength);
                    CollectionAssert.AreEqual(new byte[] { 2, 0, 127, 8, 0, 0, 0, 2, 9, i }, buffer);
                }
            }
        }
Esempio n. 14
0
        public int WriteFrame(short streamId, MemoryStream stream)
        {
            var wb = new FrameWriter(stream);

            wb.WriteFrameHeader((byte)ProtocolVersion, 0x00, streamId, OpCode);
            return(wb.Close());
        }
 public int WriteFrame(short streamId, MemoryStream stream, Serializer serializer)
 {
     var wb = new FrameWriter(stream, serializer);
     wb.WriteFrameHeader(0x00, streamId, OpCode);
     wb.WriteStringList(_eventTypes);
     return wb.Close();
 }
 public int WriteFrame(short streamId, MemoryStream stream)
 {
     var wb = new FrameWriter(stream);
     wb.WriteFrameHeader((byte)ProtocolVersion, 0x00, streamId, OpCode);
     wb.WriteBytes(_token);
     return wb.Close();
 }
Esempio n. 17
0
        public int WriteFrame(short streamId, MemoryStream stream, ISerializer serializer)
        {
            var wb = new FrameWriter(stream, serializer);
            var protocolVersion = serializer.ProtocolVersion;

            if (Payload != null)
            {
                _headerFlags |= FrameHeader.HeaderFlag.CustomPayload;
            }
            wb.WriteFrameHeader((byte)_headerFlags, streamId, OpCode);
            if (Payload != null)
            {
                //A custom payload for this request
                wb.WriteBytesMap(Payload);
            }
            wb.WriteShortBytes(_id);

            if (protocolVersion.SupportsResultMetadataId())
            {
                wb.WriteShortBytes(_resultMetadataId);
            }

            _queryOptions.Write(wb, true);
            return(wb.Close());
        }
Esempio n. 18
0
            public int Write(FrameWriter writer)
            {
                var count = writer.WriteUInt16(Major);

                count += writer.WriteUInt16(Minor);

                return(count);
            }
 protected override void WriteBody(FrameWriter wb)
 {
     wb.WriteUInt16((ushort)_options.Count);
     foreach (var kv in _options)
     {
         wb.WriteString(kv.Key);
         wb.WriteString(kv.Value);
     }
 }
Esempio n. 20
0
        public void WriteMessage(byte[] message, IBufferWriter <byte> output)
        {
            ValueWriter writer = new ValueWriter(output);

            FrameWriter.WriteFrameHeader(Constants.FrameBody, _channelId, message.Length, ref writer);
            writer.WriteBytes(message);
            writer.WriteOctet(Constants.FrameEnd);
            writer.Commit();
        }
Esempio n. 21
0
        public void WriteMessage(NoPaylodMethodInfo message, IBufferWriter <byte> output)
        {
            var writer = new ValueWriter(output);

            FrameWriter.WriteFrameHeader(message.FrameType, message.Channel, 4, ref writer);
            FrameWriter.WriteMethodFrame(message.ClassId, message.MethodId, ref writer);
            writer.WriteOctet(RabbitMQConstants.FrameEnd);
            writer.Commit();
        }
Esempio n. 22
0
        public void WriteMessage(ushort message, IBufferWriter <byte> output)
        {
            ValueWriter writer = new ValueWriter(output);

            FrameWriter.WriteFrameHeader(1, message, 5, ref writer);
            FrameWriter.WriteMethodFrame(20, 10, ref writer);
            writer.WriteOctet(0);
            writer.WriteOctet(206);
            writer.Commit();
        }
Esempio n. 23
0
        public MessageBroker(IDuplexStream stream)
        {
            if (stream == null)
            {
                throw new ArgumentNullException(nameof(stream));
            }

            _reader = new FrameReader(stream);
            _writer = new FrameWriter(stream);
        }
Esempio n. 24
0
        public void WriteMessage(RejectInfo message, IBufferWriter <byte> output)
        {
            ValueWriter writer = new ValueWriter(output);

            FrameWriter.WriteFrameHeader(Constants.FrameMethod, _channel, 13, ref writer);
            FrameWriter.WriteMethodFrame(60, 90, ref writer);
            writer.WriteLongLong(message.DeliveryTag);
            writer.WriteBit(message.Requeue);
            writer.WriteOctet(Constants.FrameEnd);
        }
Esempio n. 25
0
        private void WriteFrame(Frame frame, Stream stream, ID3v2MajorVersion version, EncodingScheme encoding)
        {
            FrameWriter writer = frame.CreateWriter(version, encoding);

            if (writer == null)
            {
                throw new NoFrameWriterProvidedException(frame, version);
            }
            writer.WriteToStream(stream);
        }
Esempio n. 26
0
        public ZlibWriter(
            Stream outputStream,
            byte[] dictionary)
        {
            _frameWriter  = new FrameWriter(_pipe.Writer.AsStream());
            _outputStream = outputStream;
            _dictionary   = dictionary;

            _backgroundTask = RunZlibCompress();
        }
Esempio n. 27
0
 public void WriteToBatch(FrameWriter wb)
 {
     wb.WriteByte(1); //prepared query
     wb.WriteShortBytes(_id);
     wb.WriteUInt16((ushort)_queryOptions.Values.Length);
     foreach (var queryParameter in _queryOptions.Values)
     {
         wb.WriteAsBytes(queryParameter);
     }
 }
Esempio n. 28
0
        private void WriteFrameHeader(FrameWriter writer, short streamId)
        {
            var flags = _headerFlags;

            if (writer.Serializer.ProtocolVersion.IsBeta())
            {
                flags |= HeaderFlags.UseBeta;
            }

            writer.WriteFrameHeader((byte)flags, streamId, OpCode);
        }
Esempio n. 29
0
 public int WriteFrame(short streamId, MemoryStream stream, Serializer serializer)
 {
     var wb = new FrameWriter(stream, serializer);
     wb.WriteFrameHeader((byte)_headerFlags, streamId, OpCode);
     if (Payload != null)
     {
         wb.WriteBytesMap(Payload);
     }
     wb.WriteLongString(Query);
     return wb.Close();
 }
Esempio n. 30
0
 public void WriteToBatch(byte protocolVersion, FrameWriter wb)
 {
     wb.WriteByte(1); //prepared query
     wb.WriteShortBytes(_id);
     wb.WriteUInt16((ushort)_queryOptions.Values.Length);
     for (int i = 0; i < _metadata.Columns.Length; i++)
     {
         byte[] bytes = TypeCodec.Encode(protocolVersion, _queryOptions.Values[i]);
         wb.WriteBytes(bytes);
     }
 }
Esempio n. 31
0
        public void WriteMessage(RabbitMQMainInfo message, IBufferWriter <byte> output)
        {
            ValueWriter writer = new ValueWriter(output);

            FrameWriter.WriteFrameHeader(1, 0, 12, ref writer);
            FrameWriter.WriteMethodFrame(10, 31, ref writer);
            writer.WriteShortInt(message.ChannelMax);
            writer.WriteLong(message.FrameMax);
            writer.WriteShortInt(message.Heartbeat);
            writer.WriteOctet(206);
            writer.Commit();
        }
Esempio n. 32
0
 public int WriteFrame(short streamId, MemoryStream stream)
 {
     var wb = new FrameWriter(stream);
     wb.WriteFrameHeader((byte)ProtocolVersion, 0x00, streamId, OpCode);
     wb.WriteUInt16((ushort) _options.Count);
     foreach (var kv in _options)
     {
         wb.WriteString(kv.Key);
         wb.WriteString(kv.Value);
     }
     return wb.Close();
 }
        public void WriteMessage(AckInfo message, IBufferWriter <byte> output)
        {
            ValueWriter writer = new ValueWriter(output);

            FrameWriter.WriteFrameHeader(Constants.FrameMethod, _channelId, 13, ref writer);
            FrameWriter.WriteMethodFrame(60, 80, ref writer);
            writer.WriteLongLong(message.DeliveryTag);
            writer.WriteBit(message.Multiple);
            writer.BitFlush();
            writer.WriteOctet(Constants.FrameEnd);
            writer.Commit();
        }
        public int WriteFrame(short streamId, MemoryStream stream, Serializer serializer)
        {
            var wb = new FrameWriter(stream, serializer);

            wb.WriteFrameHeader((byte)_headerFlags, streamId, OpCode);
            if (Payload != null)
            {
                wb.WriteBytesMap(Payload);
            }
            wb.WriteLongString(Query);
            return(wb.Close());
        }
Esempio n. 35
0
        public int WriteFrame(short streamId, MemoryStream stream, Serializer serializer)
        {
            var wb = new FrameWriter(stream, serializer);

            wb.WriteFrameHeader(0x00, streamId, StartupRequest.OpCode);
            wb.WriteUInt16((ushort)_options.Count);
            foreach (var kv in _options)
            {
                wb.WriteString(kv.Key);
                wb.WriteString(kv.Value);
            }
            return(wb.Close());
        }
Esempio n. 36
0
        public void WriteMessage(QoSInfo message, IBufferWriter <byte> output)
        {
            ValueWriter writer = new ValueWriter(output);

            FrameWriter.WriteFrameHeader(1, _channel, 11, ref writer);
            FrameWriter.WriteMethodFrame(60, 10, ref writer);
            writer.WriteLong(message.PrefetchSize);
            writer.WriteShortInt(message.PrefetchCount);
            writer.WriteBool(message.Global);
            writer.WriteOctet(RabbitMQConstants.FrameEnd);

            writer.Commit();
        }
Esempio n. 37
0
        public void WriteMessage(ReadOnlyMemory <byte> message, IBufferWriter <byte> output)
        {
            if (message.IsEmpty)
            {
                return;
            }
            var writer = new ValueWriter(output);

            FrameWriter.WriteFrameHeader(RabbitMQConstants.FrameBody, _channelId, message.Length, ref writer);
            writer.WriteBytes(message.Span);
            writer.WriteOctet(RabbitMQConstants.FrameEnd);
            writer.Commit();
        }
Esempio n. 38
0
 public int WriteFrame(short streamId, MemoryStream stream, Serializer serializer)
 {
     var wb = new FrameWriter(stream, serializer);
     if (Payload != null)
     {
         _headerFlags |= FrameHeader.HeaderFlag.CustomPayload;
     }
     wb.WriteFrameHeader((byte)_headerFlags, streamId, OpCode);
     if (Payload != null)
     {
         //A custom payload for this request
         wb.WriteBytesMap(Payload);
     }
     wb.WriteShortBytes(_id);
     _queryOptions.Write(wb, true);
     return wb.Close();
 }
Esempio n. 39
0
        public int WriteFrame(short streamId, MemoryStream stream, Serializer serializer)
        {
            if (serializer.ProtocolVersion > 1)
            {
                throw new NotSupportedException("Credentials request is only supported in C* = 1.2.x");
            }

            var wb = new FrameWriter(stream, serializer);
            wb.WriteFrameHeader(0x00, streamId, OpCode);
            wb.WriteUInt16((ushort) _credentials.Count);
            foreach (var kv in _credentials)
            {
                wb.WriteString(kv.Key);
                wb.WriteString(kv.Value);
            }
            return wb.Close();
        }
Esempio n. 40
0
 public int WriteFrame(short streamId, MemoryStream stream, Serializer serializer)
 {
     //protocol v2: <type><n><query_1>...<query_n><consistency>
     //protocol v3: <type><n><query_1>...<query_n><consistency><flags>[<serial_consistency>][<timestamp>]
     var protocolVersion = serializer.ProtocolVersion;
     var wb = new FrameWriter(stream, serializer);
     if (Payload != null)
     {
         _headerFlags |= FrameHeader.HeaderFlag.CustomPayload;
     }
     wb.WriteFrameHeader((byte)_headerFlags, streamId, OpCode);
     if (Payload != null)
     {
         //A custom payload for this request
         wb.WriteBytesMap(Payload);
     }
     wb.WriteByte((byte) _type);
     wb.WriteInt16((short) _requests.Count);
     foreach (var br in _requests)
     {
         br.WriteToBatch(wb);
     }
     wb.WriteInt16((short) Consistency);
     if (protocolVersion >= 3)
     {
         wb.WriteByte((byte)_batchFlags);
     }
     if (_serialConsistency != null)
     {
         wb.WriteInt16((short)_serialConsistency.Value);
     }
     if (_timestamp != null)
     {
         //Expressed in microseconds
         wb.WriteLong(TypeSerializer.SinceUnixEpoch(_timestamp.Value).Ticks / 10);
     }
     return wb.Close();
 }
Esempio n. 41
0
        // Test a wide row consisting of a ByteBuffer
        private static void TestByteRows(ISession session, string tableName)
        {
            session.Execute(String.Format("CREATE TABLE {0} (k INT, i {1}, PRIMARY KEY(k,i))", tableName, "BLOB"));

            // Build small ByteBuffer sample
            var bw = new FrameWriter(new MemoryStream());
            for (int i = 0; i < 56; i++)
                bw.WriteByte(0);
            bw.WriteUInt16(0xCAFE);
            var bb = new byte[58];
            Array.Copy(bw.GetBuffer(), bb, 58);

            // Write data
            for (int i = 0; i < 1024; ++i)
                session.Execute(string.Format("INSERT INTO {0}(k,i) values({1},0x{2})", tableName, Key, CqlQueryTools.ToHex(bb)),
                                ConsistencyLevel.Quorum);

            // Read data
            var rs = session.Execute("SELECT i FROM " + tableName + " WHERE k = " + Key, ConsistencyLevel.Quorum);
            // Verify data            
            foreach (var row in rs)
                Assert.AreEqual((byte[])row["i"], bb);
        }
Esempio n. 42
0
 public void WriteToBatch(byte protocolVersion, FrameWriter wb)
 {
     wb.WriteByte(1); //prepared query
     wb.WriteShortBytes(_id);
     wb.WriteUInt16((ushort) _queryOptions.Values.Length);
     for (int i = 0; i < _metadata.Columns.Length; i++)
     {
         byte[] bytes = TypeCodec.Encode(protocolVersion, _queryOptions.Values[i]);
         wb.WriteBytes(bytes);
     }
 }
Esempio n. 43
0
 public void WriteToBatch(FrameWriter wb)
 {
     wb.WriteByte(1); //prepared query
     wb.WriteShortBytes(_id);
     wb.WriteUInt16((ushort)_queryOptions.Values.Length);
     foreach (var queryParameter in _queryOptions.Values)
     {
         wb.WriteAsBytes(queryParameter);
     }
 }
Esempio n. 44
0
 public void WriteToBatch(FrameWriter wb)
 {
     //not a prepared query
     wb.WriteByte(0);
     wb.WriteLongString(_cqlQuery);
     if (_queryOptions.Values == null || _queryOptions.Values.Length == 0)
     {
         //not values
         wb.WriteInt16(0);
     }
     else
     {
         wb.WriteUInt16((ushort) _queryOptions.Values.Length);
         foreach (var queryParameter in _queryOptions.Values)
         {
             wb.WriteAsBytes(queryParameter);
         }
     }
 }
Esempio n. 45
0
 public int WriteFrame(short streamId, MemoryStream stream)
 {
     var wb = new FrameWriter(stream);
     if (Payload != null)
     {
         _headerFlags |= FrameHeader.HeaderFlag.CustomPayload;
     }
     wb.WriteFrameHeader((byte)ProtocolVersion, (byte)_headerFlags, streamId, OpCode);
     if (Payload != null)
     {
         //A custom payload for this request
         wb.WriteBytesMap(Payload);
     }
     wb.WriteLongString(_cqlQuery);
     _queryOptions.Write(wb, (byte)ProtocolVersion, false);
     return wb.Close();
 }
Esempio n. 46
0
 public void WriteToBatch(byte protocolVersion, FrameWriter wb)
 {
     //not a prepared query
     wb.WriteByte(0);
     wb.WriteLongString(_cqlQuery);
     if (_queryOptions.Values == null || _queryOptions.Values.Length == 0)
     {
         //not values
         wb.WriteInt16(0);
     }
     else
     {
         wb.WriteUInt16((ushort) _queryOptions.Values.Length);
         for (var i = 0; i < _queryOptions.Values.Length; i++)
         {
             var bytes = TypeCodec.Encode(protocolVersion, _queryOptions.Values[i]);
             wb.WriteBytes(bytes);
         }
     }
 }
Esempio n. 47
0
 public FramingMessageProtocol()
 {
     this.frameCollector = new FrameCollector();
     this.frameWriter = new FrameWriter();
     this.frameReader = new FrameReader();
 }
Esempio n. 48
0
 public void BeBinaryWriter_Close_Sets_Frame_Body_Length()
 {
     const int frameLength = 10;
     const int iterations = 8;
     var bufferPool = new RecyclableMemoryStreamManager();
     using (var stream = bufferPool.GetStream("test"))
     {
         for (var i = 0; i < iterations; i++)
         {
             var writer = new FrameWriter(stream);
             writer.WriteFrameHeader(2, 0, 127, 8);
             writer.WriteInt16(Convert.ToInt16(0x0900 + i));
             var length = writer.Close();
             Assert.AreEqual(frameLength, length);
         }
         Assert.AreEqual(frameLength * iterations, stream.Length);
         for (byte i = 0; i < iterations; i++)
         {
             var buffer = new byte[frameLength];
             stream.Position = i * frameLength;
             stream.Read(buffer, 0, frameLength);
             CollectionAssert.AreEqual(new byte[] { 2, 0, 127, 8, 0, 0, 0, 2, 9, i}, buffer);
         }
     }
 }