public static string Decode(ByteBuffer buffer, FormatCode formatCode) { if (formatCode == 0 && (formatCode = AmqpEncoding.ReadFormatCode(buffer)) == FormatCode.Null) { return(null); } int count; Encoding encoding; if (formatCode == FormatCode.String8Utf8) { count = (int)AmqpBitConverter.ReadUByte(buffer); encoding = Encoding.UTF8; } else if (formatCode == FormatCode.String32Utf8) { count = (int)AmqpBitConverter.ReadUInt(buffer); encoding = Encoding.UTF8; } else { throw AmqpEncoding.GetEncodingException(AmqpResources.GetString(AmqpResources.AmqpInvalidFormatCode, formatCode, buffer.Offset)); } string value = encoding.GetString(buffer.Buffer, buffer.Offset, count); buffer.Complete(count); return(value); }
internal static decimal DecodeValue(ByteBuffer buffer, FormatCode formatCode) { decimal value = 0; switch (formatCode) { case FormatCode.Decimal32: value = DecimalEncoding.DecodeDecimal32(buffer); break; case FormatCode.Decimal64: value = DecimalEncoding.DecodeDecimal64(buffer); break; case FormatCode.Decimal128: value = DecimalEncoding.DecodeDecimal128(buffer); break; default: throw AmqpEncoding.GetEncodingException(AmqpResources.GetString(AmqpResources.AmqpInvalidFormatCode, formatCode, buffer.Offset)); } return(value); }