public static string Decode(ByteBuffer buffer, Microsoft.ServiceBus.Messaging.Amqp.Encoding.FormatCode formatCode)
        {
            int num;

            System.Text.Encoding uTF8;
            if (formatCode == 0)
            {
                Microsoft.ServiceBus.Messaging.Amqp.Encoding.FormatCode formatCode1 = AmqpEncoding.ReadFormatCode(buffer);
                formatCode = formatCode1;
                if (formatCode1 == 64)
                {
                    return(null);
                }
            }
            if (formatCode != 161)
            {
                if (formatCode != 177)
                {
                    throw AmqpEncoding.GetEncodingException(SRAmqp.AmqpInvalidFormatCode(formatCode, buffer.Offset));
                }
                num  = (int)AmqpBitConverter.ReadUInt(buffer);
                uTF8 = System.Text.Encoding.UTF8;
            }
            else
            {
                num  = AmqpBitConverter.ReadUByte(buffer);
                uTF8 = System.Text.Encoding.UTF8;
            }
            string str = uTF8.GetString(buffer.Buffer, buffer.Offset, num);

            buffer.Complete(num);
            return(str);
        }
Exemple #2
0
        public static string Decode(ByteBuffer buffer, FormatCode formatCode)
        {
            if (formatCode == 0 && (formatCode = AmqpEncoding.ReadFormatCode(buffer)) == FormatCode.Null)
            {
                return(null);
            }

            int      count    = 0;
            Encoding encoding = null;

            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.GetInvalidFormatCodeException(formatCode, buffer.Offset);
            }

            ArraySegment <byte> bytes = buffer.GetBytes(count);

            return(encoding.GetString(bytes.Array, bytes.Offset, count));
        }
        public static FormatCode ReadFormatCode(ByteBuffer buffer)
        {
            byte num  = AmqpBitConverter.ReadUByte(buffer);
            byte num1 = 0;

            if (FormatCode.HasExtType(num))
            {
                num1 = AmqpBitConverter.ReadUByte(buffer);
            }
            return(new FormatCode(num, num1));
        }
Exemple #4
0
        public static FormatCode ReadFormatCode(ByteBuffer buffer)
        {
            int formatCode = AmqpBitConverter.ReadUByte(buffer);

            if ((formatCode & 0x0F) == 0x0F)
            {
                formatCode = (formatCode << 8) + AmqpBitConverter.ReadUByte(buffer);
            }

            return((FormatCode)formatCode);
        }
 public static byte?Decode(ByteBuffer buffer, Microsoft.ServiceBus.Messaging.Amqp.Encoding.FormatCode formatCode)
 {
     if (formatCode == 0)
     {
         Microsoft.ServiceBus.Messaging.Amqp.Encoding.FormatCode formatCode1 = AmqpEncoding.ReadFormatCode(buffer);
         formatCode = formatCode1;
         if (formatCode1 == 64)
         {
             return(null);
         }
     }
     return(new byte?(AmqpBitConverter.ReadUByte(buffer)));
 }
 public static void ReadCount(ByteBuffer buffer, FormatCode formatCode, FormatCode formatCode8, FormatCode formatCode32, out int count)
 {
     if (formatCode == formatCode8)
     {
         count = AmqpBitConverter.ReadUByte(buffer);
         return;
     }
     if (formatCode != formatCode32)
     {
         throw AmqpEncoding.GetEncodingException(SRAmqp.AmqpInvalidFormatCode(formatCode, buffer.Offset));
     }
     count = (int)AmqpBitConverter.ReadUInt(buffer);
 }
Exemple #7
0
 public static void ReadCount(ByteBuffer buffer, FormatCode formatCode, FormatCode formatCode8, FormatCode formatCode32, out int count)
 {
     if (formatCode == formatCode8)
     {
         count = AmqpBitConverter.ReadUByte(buffer);
     }
     else if (formatCode == formatCode32)
     {
         count = (int)AmqpBitConverter.ReadUInt(buffer);
     }
     else
     {
         throw GetInvalidFormatCodeException(formatCode, buffer.Offset);
     }
 }
        public static ulong?Decode(ByteBuffer buffer, Microsoft.ServiceBus.Messaging.Amqp.Encoding.FormatCode formatCode)
        {
            if (formatCode == 0)
            {
                Microsoft.ServiceBus.Messaging.Amqp.Encoding.FormatCode formatCode1 = AmqpEncoding.ReadFormatCode(buffer);
                formatCode = formatCode1;
                if (formatCode1 == 64)
                {
                    return(null);
                }
            }
            int offset = buffer.Offset;

            Microsoft.ServiceBus.Messaging.Amqp.Encoding.FormatCode[] formatCodeArray = new Microsoft.ServiceBus.Messaging.Amqp.Encoding.FormatCode[] { 128, 83, 68 };
            EncodingBase.VerifyFormatCode(formatCode, offset, formatCodeArray);
            if (formatCode == 68)
            {
                return(new ulong?((ulong)0));
            }
            return(new ulong?((formatCode == 83 ? (ulong)AmqpBitConverter.ReadUByte(buffer) : AmqpBitConverter.ReadULong(buffer))));
        }
        public static bool?Decode(ByteBuffer buffer, Microsoft.ServiceBus.Messaging.Amqp.Encoding.FormatCode formatCode)
        {
            if (formatCode == 0)
            {
                Microsoft.ServiceBus.Messaging.Amqp.Encoding.FormatCode formatCode1 = AmqpEncoding.ReadFormatCode(buffer);
                formatCode = formatCode1;
                if (formatCode1 == 64)
                {
                    return(null);
                }
            }
            int offset = buffer.Offset;

            Microsoft.ServiceBus.Messaging.Amqp.Encoding.FormatCode[] formatCodeArray = new Microsoft.ServiceBus.Messaging.Amqp.Encoding.FormatCode[] { 86, 66, 65 };
            EncodingBase.VerifyFormatCode(formatCode, offset, formatCodeArray);
            if (formatCode == 86)
            {
                return(new bool?(AmqpBitConverter.ReadUByte(buffer) != 0));
            }
            return(new bool?((formatCode == 65 ? true : false)));
        }
Exemple #10
0
        public static uint?Decode(ByteBuffer buffer, Microsoft.ServiceBus.Messaging.Amqp.Encoding.FormatCode formatCode)
        {
            if (formatCode == 0)
            {
                Microsoft.ServiceBus.Messaging.Amqp.Encoding.FormatCode formatCode1 = AmqpEncoding.ReadFormatCode(buffer);
                formatCode = formatCode1;
                if (formatCode1 == 64)
                {
                    return(null);
                }
            }
            int offset = buffer.Offset;

            Microsoft.ServiceBus.Messaging.Amqp.Encoding.FormatCode[] formatCodeArray = new Microsoft.ServiceBus.Messaging.Amqp.Encoding.FormatCode[] { 112, 82, 67 };
            EncodingBase.VerifyFormatCode(formatCode, offset, formatCodeArray);
            if (formatCode == 67)
            {
                return(new uint?(0));
            }
            return(new uint?((formatCode == 82 ? (uint)AmqpBitConverter.ReadUByte(buffer) : AmqpBitConverter.ReadUInt(buffer))));
        }