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); } } }
/* * 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); } }
// 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); } }
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(); }
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()); }
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); } } }
/* * 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); } }
// 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); }
/* * 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); } }