private byte[] serializeForDynamicType(params object[] vals)
        {
            BEBinaryWriter elt = new BEBinaryWriter();

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

            Buffer.BlockCopy(elt.GetBuffer(), 0, ret, 0, (int)elt.Length);
            return(ret);
        }
 private byte[] serializeForDynamicType(params object[] vals)
 {
     var elt = new BEBinaryWriter();
     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;
 }
        /*
         * Test a wide row of size 1,000,000 consisting of a ByteBuffer
         */
        private void testByteRows()
        {
            // Build small ByteBuffer sample
            BEBinaryWriter bw = new BEBinaryWriter();

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

            // Write data
            for (int i = 0; i < 500; ++i)//1000000
            {
                session.Execute(string.Format("INSERT INTO wide_byte_rows(k,i) values({0},0x{1})", key, Cassandra.CqlQueryTools.ToHex(bb)), ConsistencyLevel.Quorum);
            }

            // Read data
            using (var rs = session.Execute("SELECT i FROM wide_byte_rows WHERE k = " + key.ToString(), ConsistencyLevel.Quorum))
            {
                // Verify data
                foreach (Row row in rs.GetRows())
                {
                    Assert.ArrEqual((byte[])row["i"], bb);
                }
            }
        }
Example #4
0
        /*
         * Test a wide row consisting of a ByteBuffer
         */

        private void testByteRows()
        {
            // Build small ByteBuffer sample
            var bw = new BEBinaryWriter();

            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 wide_byte_rows(k,i) values({0},0x{1})", key, CqlQueryTools.ToHex(bb)),
                                ConsistencyLevel.Quorum);
            }

            // Read data
            var rs = Session.Execute("SELECT i FROM wide_byte_rows WHERE k = " + key, ConsistencyLevel.Quorum);

            // Verify data
            foreach (var row in rs)
            {
                Assert.AreEqual((byte[])row["i"], bb);
            }
        }
Example #5
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 BEBinaryWriter();

            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);
            }
        }
Example #6
0
 public RequestFrame GetFrame()
 {
     var wb = new BEBinaryWriter();
     wb.WriteFrameHeader(RequestFrame.ProtocolRequestVersionByte, _flags, (byte)_streamId, OpCode);
     wb.WriteShortBytes(_id);
     wb.WriteUInt16((ushort) _values.Length);
     for (int i = 0; i < _metadata.Columns.Length; i++)
     {
         var bytes = _metadata.ConvertFromObject(i, _values[i]);
         wb.WriteBytes(bytes);
     }
     wb.WriteInt16((short)_consistency);
     return wb.GetFrame();
 }
Example #7
0
        public RequestFrame GetFrame()
        {
            var wb = new BEBinaryWriter();

            wb.WriteFrameHeader(0x01, _flags, (byte)_streamId, OpCode);
            wb.WriteShortBytes(_id);
            wb.WriteUInt16((ushort)_values.Length);
            for (int i = 0; i < _metadata.Columns.Length; i++)
            {
                var bytes = _metadata.ConvertFromObject(i, _values[i]);
                wb.WriteBytes(bytes);
            }
            wb.WriteInt16((short)_consistency);
            return(wb.GetFrame());
        }
Example #8
0
 public void WriteToBatch(BEBinaryWriter wb)
 {
     wb.WriteByte(0); //not a prepared query
     wb.WriteLongString(_cqlQuery);
     if (_queryProtocolOptions.Values == null || _queryProtocolOptions.Values.Length == 0)
     {
         wb.WriteInt16(0); //not values
     }
     else
     {
         wb.WriteUInt16((ushort)_queryProtocolOptions.Values.Length);
         for (int i = 0; i < _queryProtocolOptions.Values.Length; i++)
         {
             byte[] bytes = TypeInterpreter.InvCqlConvert(_queryProtocolOptions.Values[i]);
             wb.WriteBytes(bytes);
         }
     }
 }
Example #9
0
        /*
         * Test a wide row of size 1,000,000 consisting of a ByteBuffer
         */
        private void testByteRows()
        {
            // Build small ByteBuffer sample
            BEBinaryWriter bw = new BEBinaryWriter();
            for (int i = 0; i < 56; i++)
                bw.WriteByte(0);
            bw.WriteUInt16((ushort)0xCAFE);
            byte[] bb = new byte[58];
            Array.Copy(bw.GetBuffer(), bb, 58);

            // Write data
            for (int i = 0; i < 500; ++i)//1000000
                session.Execute(string.Format("INSERT INTO wide_byte_rows(k,i) values({0},0x{1})", key, Cassandra.CqlQueryTools.ToHex(bb)), ConsistencyLevel.Quorum);

            // Read data
            using (var rs = session.Execute("SELECT i FROM wide_byte_rows WHERE k = " + key.ToString(), ConsistencyLevel.Quorum))
            {
                // Verify data
                foreach (Row row in rs.GetRows())
                    Assert.ArrEqual((byte[])row["i"], bb);
            }
        }
Example #10
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 BEBinaryWriter();
            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);
        }
Example #11
0
        /*
         * Test a wide row consisting of a ByteBuffer
         */
        private void testByteRows()
        {
            // Build small ByteBuffer sample
            var bw = new BEBinaryWriter();
            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 wide_byte_rows(k,i) values({0},0x{1})", key, CqlQueryTools.ToHex(bb)),
                                ConsistencyLevel.Quorum);

            // Read data
            var rs = Session.Execute("SELECT i FROM wide_byte_rows WHERE k = " + key, ConsistencyLevel.Quorum);
            // Verify data
            foreach (var row in rs)
            {
                Assert.AreEqual((byte[])row["i"], bb);
            }
        }