public RequestFrame GetFrame() { var wb = new BEBinaryWriter(); wb.WriteFrameHeader(0x01, _flags, (byte) _streamId, OpCode); wb.WriteLongString(_cqlQuery); wb.WriteInt16((short) _consistency); return wb.GetFrame(); }
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 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); } } }
public void Save(string path) { using (FileStream fs = new FileStream(path, FileMode.Create)) using (BEBinaryWriter bw = new BEBinaryWriter(fs)) { int matListLength; string name; //output header bw.WriteInt32(0x12); bw.WriteInt32(0x8); bw.WriteInt32(0xface); bw.WriteInt32(0x2); for (int i = 0; i < DatMeshes.Count; i++) { DatMesh dm = DatMeshes[i]; matListLength = 0; for (int j = 0; j < dm.Mesh.Materials.Count; j++) { matListLength += dm.Mesh.Materials[j].Length + 1; } name = dm.Name; //Console.WriteLine(name + " : " + dm.Mesh.Verts.Count); //begin name section bw.WriteInt32(54); bw.WriteInt32(name.Length + 3); bw.WriteByte(0); bw.WriteByte(0); bw.Write(name.ToCharArray()); bw.WriteByte(0); //end name section //begin vertex data bw.WriteInt32(23); bw.WriteInt32((dm.Mesh.Verts.Count * 12) + 4); bw.WriteInt32(dm.Mesh.Verts.Count); for (int j = 0; j < dm.Mesh.Verts.Count; j++) { bw.WriteSingle(dm.Mesh.Verts[j].X); bw.WriteSingle(dm.Mesh.Verts[j].Y); bw.WriteSingle(dm.Mesh.Verts[j].Z); } //end vertex data //begin uv data (00 00 00 18) bw.WriteInt32(24); bw.WriteInt32((dm.Mesh.UVs.Count * 8) + 4); bw.WriteInt32(dm.Mesh.UVs.Count); for (int j = 0; j < dm.Mesh.UVs.Count; j++) { bw.WriteSingle(dm.Mesh.UVs[j].X); bw.WriteSingle(dm.Mesh.UVs[j].Y); } //end uv data //begin face data (00 00 00 35) bw.WriteInt32(53); bw.WriteInt32((dm.Mesh.Faces.Count * 9) + 4); bw.WriteInt32(dm.Mesh.Faces.Count); for (int j = 0; j < dm.Mesh.Faces.Count; j++) { bw.WriteInt16(dm.Mesh.Faces[j].V1); bw.WriteInt16(dm.Mesh.Faces[j].V2); bw.WriteInt16(dm.Mesh.Faces[j].V3); bw.WriteByte(0); // smoothing groups 9 - 16 bw.WriteByte(1); // smoothing groups 1 - 8 bw.WriteByte(0); // number of edges, 0 and 3 = tri. 4 = quad. } //end face data //begin material list bw.WriteInt32(22); bw.WriteInt32(matListLength + 4); bw.WriteInt32(dm.Mesh.Materials.Count); for (int j = 0; j < dm.Mesh.Materials.Count; j++) { bw.Write(dm.Mesh.Materials[j].ToCharArray()); bw.WriteByte(0); } //end material list //begin face textures bw.WriteInt32(26); bw.WriteInt32((dm.Mesh.Faces.Count * 2) + 4); bw.WriteInt32(dm.Mesh.Faces.Count); bw.WriteInt32(2); for (int j = 0; j < dm.Mesh.Faces.Count; j++) { bw.WriteInt16(dm.Mesh.Faces[j].MaterialID + 1); } //end face textures bw.WriteInt32(0); bw.WriteInt32(0); } } }