internal static void EncodeValue(AmqpSymbol value, FormatCode formatCode, ByteBuffer buffer) { int len = value.Value.Length; if (formatCode == FormatCode.Symbol8) { AmqpBitConverter.WriteUByte(buffer, (byte)len); } else { AmqpBitConverter.WriteUInt(buffer, (uint)len); } buffer.Validate(write: true, len); int bytes = Encoding.ASCII.GetBytes(value.Value, 0, len, buffer.Buffer, buffer.WritePos); if (bytes != len) { throw new AmqpException(new Error() { Condition = AmqpErrorCode.InternalError, Description = "Symbol encoded byte count not equal to its length." }); } buffer.Append(len); }
public static int GetEncodeSize(AmqpSymbol value) { if (value.Value == null) { return(FixedWidth.NullEncoded); } int valueSize = GetValueSize(value); return(FixedWidth.FormatCode + AmqpEncoding.GetEncodeWidthBySize(valueSize) + valueSize); }
public static void Encode(AmqpSymbol value, ByteBuffer buffer) { if (value.Value == null) { AmqpEncoding.EncodeNull(buffer); } else { int width = AmqpEncoding.GetEncodeWidthBySize(value.Value.Length); Encode(value, width == FixedWidth.UByte ? FormatCode.Symbol8 : FormatCode.Symbol32, buffer); } }
public static void Encode(AmqpSymbol value, ByteBuffer buffer) { if (value.Value == null) { AmqpEncoding.EncodeNull(buffer); } else { byte[] encodedData = Encoding.ASCII.GetBytes(value.Value); int encodeWidth = AmqpEncoding.GetEncodeWidthBySize(encodedData.Length); AmqpBitConverter.WriteUByte(buffer, encodeWidth == FixedWidth.UByte ? FormatCode.Symbol8 : FormatCode.Symbol32); SymbolEncoding.Encode(encodedData, encodeWidth, buffer); } }
internal static void Encode(AmqpSymbol value, FormatCode formatCode, ByteBuffer buffer) { AmqpBitConverter.WriteUByte(buffer, formatCode); EncodeValue(value, formatCode, buffer); }
public static int GetValueSize(AmqpSymbol value) { return(value.Value == null ? FixedWidth.Null : Encoding.ASCII.GetByteCount(value.Value)); }
public static int GetEncodeSize(AmqpSymbol value) { return(value.Value == null ? FixedWidth.NullEncoded : FixedWidth.FormatCode + AmqpEncoding.GetEncodeWidthBySize(value.ValueSize) + value.ValueSize); }