protected override void WriteData(Stream buffer) { buffer.WriteShortByteArray(QueryId); buffer.WriteShort((short)Parameters.Count); foreach (var prm in Parameters) buffer.WriteByteArray(prm); buffer.WriteShort((short)CqlConsistency); }
/// <summary> /// Writes the data to buffer. /// </summary> /// <param name="buffer"> The buffer. </param> protected override void WriteData(Stream buffer) { if(ProtocolVersion == 1) { throw new ProtocolException(ProtocolVersion, ErrorCode.Protocol, "Batch frames are supported from Cassandra Version 2.0.0 and up."); } buffer.WriteByte((byte)Type); buffer.WriteShort((ushort)Commands.Count); foreach(var command in Commands) { if(command.IsPrepared) { buffer.WriteByte(1); buffer.WriteShortByteArray(command.QueryId); } else { buffer.WriteByte(0); buffer.WriteLongString(command.CqlQuery); } if(command.ParameterValues != null) { byte[][] paramValues = command.ParameterValues.Serialize(ProtocolVersion); var length = (ushort)paramValues.Length; buffer.WriteShort(length); for(var i = 0; i < length; i++) { buffer.WriteByteArray(paramValues[i]); } } else buffer.WriteShort(0); } buffer.WriteConsistency(CqlConsistency); if(ProtocolVersion >= 3) { var flags = (byte)((SerialConsistency.HasValue ? 16 : 0) | (Timestamp.HasValue ? 32 : 0)); buffer.WriteByte(flags); if(SerialConsistency.HasValue) buffer.WriteShort((ushort)SerialConsistency.Value); if(Timestamp.HasValue) buffer.WriteLong(Timestamp.Value.ToTimestamp()); } }
public override void WriteToStream(Stream aStream) { base.WriteToStream (aStream); aStream.WriteShort (SlotID); }
public override void WriteToStream(Stream aStream) { base.WriteToStream (aStream); aStream.WriteInt (EntityID); aStream.WriteShort(VelX); aStream.WriteShort (VelY); aStream.WriteShort (VelZ); }
public override void WriteToStream(Stream aStream) { base.WriteToStream (aStream); aStream.WriteInt (EntityID); aStream.WriteShort (Slot); aStream.WriteShort (ItemID); aStream.WriteShort (Damage); }
public override void WriteToStream(Stream aStream) { base.WriteToStream (aStream); aStream.WriteShort (Health); }
public override void WriteToStream(Stream aStream) { base.WriteToStream (aStream); aStream.WriteInt (X); aStream.WriteByte (Y); aStream.WriteInt (Z); aStream.WriteByte ((byte)Direction); aStream.WriteShort (ItemID); if (ItemID >= 0) { aStream.WriteByte (Amount); aStream.WriteShort (Damage); } }
public override void WriteToStream(Stream aStream) { base.WriteToStream (aStream); aStream.WriteInt (EntityID); aStream.WriteShort (ItemID); aStream.WriteByte (Count); aStream.WriteShort (DamageData); aStream.WriteInt (X); aStream.WriteInt (Y); aStream.WriteInt (Z); aStream.WriteByte (Rotation); aStream.WriteByte (Pitch); aStream.WriteByte (Roll); }
public override void WriteToStream(Stream aStream) { base.WriteToStream (aStream); aStream.WriteInt (EntityID); aStream.WriteString16 (PlayerName); aStream.WriteInt (X); aStream.WriteInt (Y); aStream.WriteInt (Z); aStream.WriteByte (Rotation); aStream.WriteByte (Pitch); aStream.WriteShort (CurrentItem); }
protected void WriteMessageIdentifier(Stream stream) { stream.WriteShort(MessageIdentifier); }
protected void WriteKeepAlive(Stream stream) { stream.WriteShort(KeepAlive); }
protected override void WriteData(Stream buffer) { buffer.WriteLongString(Cql); buffer.WriteShort((short) CqlConsistency); }
/// <summary> /// Writes the query parameters. /// </summary> /// <param name="buffer">The buffer.</param> protected void WriteQueryParameters(Stream buffer) { buffer.WriteConsistency(CqlConsistency); var flags = (byte)((Parameters != null ? 1 : 0) | (SkipMetaData ? 2 : 0) | (PageSize.HasValue ? 4 : 0) | (PagingState != null ? 8 : 0) | (SerialConsistency.HasValue ? 16 : 0) | (ProtocolVersion >= 3 && Timestamp.HasValue ? 32 : 0)); buffer.WriteByte(flags); if(Parameters != null) { buffer.WriteShort((ushort)Parameters.Count); foreach(var value in Parameters) buffer.WriteByteArray(value); } if(PageSize.HasValue) buffer.WriteInt(PageSize.Value); if(PagingState != null) buffer.WriteByteArray(PagingState); if(SerialConsistency.HasValue) buffer.WriteShort((ushort)SerialConsistency.Value); if(ProtocolVersion >= 3 && Timestamp.HasValue) buffer.WriteLong(Timestamp.Value.ToTimestamp()*1000); //convert milliseconds to microseconds }
public override void WriteToStream(Stream aStream) { base.WriteToStream(aStream); aStream.WriteShort(Health); }
public static void Write(object value, Stream stream, FormatItem format, Encoding enc) { switch (format.DataType) { case TdsDataType.TDS_BIT: switch (value) { case bool b: stream.WriteBool(b); break; default: stream.WriteByte(0); break; } break; case TdsDataType.TDS_INT1: stream.WriteByte(Cast <byte>(value, format)); break; //no TDS_SINT1, we will transmit as an INTN(2) case TdsDataType.TDS_INT2: stream.WriteShort(Cast <short>(value, format)); break; case TdsDataType.TDS_UINT2: stream.WriteUShort(Cast <ushort>(value, format)); break; case TdsDataType.TDS_INT4: stream.WriteInt(Cast <int>(value, format)); break; case TdsDataType.TDS_UINT4: stream.WriteUInt(Cast <uint>(value, format)); break; case TdsDataType.TDS_INT8: stream.WriteLong(Cast <long>(value, format)); break; case TdsDataType.TDS_UINT8: stream.WriteULong(Cast <ulong>(value, format)); break; case TdsDataType.TDS_INTN: switch (value) { case byte b: stream.WriteByte(1); stream.WriteByte(b); break; case sbyte sb: stream.WriteByte(2); stream.WriteShort(sb); break; case short s: stream.WriteByte(2); stream.WriteShort(s); break; case int i: stream.WriteByte(4); stream.WriteInt(i); break; case long l: stream.WriteByte(8); stream.WriteLong(l); break; //case null: default: stream.WriteByte(0); break; } break; case TdsDataType.TDS_UINTN: switch (value) { case byte b: stream.WriteByte(1); stream.WriteByte(b); break; case ushort s: stream.WriteByte(2); stream.WriteUShort(s); break; case uint i: stream.WriteByte(4); stream.WriteUInt(i); break; case ulong l: stream.WriteByte(8); stream.WriteULong(l); break; //case null: default: stream.WriteByte(0); break; } break; case TdsDataType.TDS_FLT4: stream.WriteFloat(Cast <float>(value, format)); break; case TdsDataType.TDS_FLT8: stream.WriteDouble(Cast <double>(value, format)); break; case TdsDataType.TDS_FLTN: switch (value) { case float f: stream.WriteByte(4); stream.WriteFloat(f); break; case double d: stream.WriteByte(8); stream.WriteDouble(d); break; default: stream.WriteByte(0); break; } break; case TdsDataType.TDS_VARCHAR: if (!stream.TryWriteBytePrefixedNull(value)) { stream.WriteBytePrefixedString(Cast <string>(value, format), enc); } break; case TdsDataType.TDS_LONGCHAR: if (!stream.TryWriteIntPrefixedNull(value)) { stream.WriteIntPrefixedString(Cast <string>(value, format), enc); } break; case TdsDataType.TDS_VARBINARY: case TdsDataType.TDS_BINARY: if (!stream.TryWriteBytePrefixedNull(value)) { stream.WriteBytePrefixedByteArray(Cast <byte[]>(value, format)); } break; case TdsDataType.TDS_LONGBINARY: if (!stream.TryWriteIntPrefixedNull(value)) { switch (value) { case string s: stream.WriteIntPrefixedByteArray(Encoding.Unicode.GetBytes(s)); break; case char c: stream.WriteIntPrefixedByteArray(Encoding.Unicode.GetBytes(new[] { c })); break; case byte[] ba: stream.WriteIntPrefixedByteArray(ba); break; case byte b: stream.WriteIntPrefixedByteArray(new[] { b }); break; default: stream.WriteInt(0); break; } } break; case TdsDataType.TDS_DECN: case TdsDataType.TDS_NUMN: if (!stream.TryWriteBytePrefixedNull(value)) { switch (value) { case AseDecimal ad: stream.WriteDecimal(ad); break; default: stream.WriteDecimal((SqlDecimal)Cast <decimal>(value, format)); break; } } break; case TdsDataType.TDS_DATETIME: stream.WriteIntPartDateTime(Cast <DateTime>(value, format)); break; case TdsDataType.TDS_DATETIMEN: if (!stream.TryWriteBytePrefixedNull(value)) { stream.WriteIntPartDateTime(Cast <DateTime>(value, format)); } break; case TdsDataType.TDS_DATE: stream.WriteDate(Cast <DateTime>(value, format)); break; case TdsDataType.TDS_DATEN: if (!stream.TryWriteBytePrefixedNull(value)) { stream.WriteDate(Cast <DateTime>(value, format)); } break; case TdsDataType.TDS_TIME: stream.WriteTime(Cast <TimeSpan>(value, format)); break; case TdsDataType.TDS_TIMEN: if (!stream.TryWriteBytePrefixedNull(value)) { stream.WriteTime(Cast <TimeSpan>(value, format)); } break; case TdsDataType.TDS_MONEYN: if (!stream.TryWriteBytePrefixedNull(value)) { stream.WriteMoney(Cast <decimal>(value, format)); } break; default: Debug.Assert(false, $"Unsupported data type {format.DataType}"); break; } }
public void WriteToCDO(Stream stream) { stream.WriteShort(X); stream.WriteShort(Z); }