示例#1
0
        public static IList Decode(ByteBuffer buffer, FormatCode formatCode)
        {
            if (formatCode == 0 && (formatCode = AmqpEncoding.ReadFormatCode(buffer)) == FormatCode.Null)
            {
                return(null);
            }

            IList list = new List <object>();

            if (formatCode == FormatCode.List0)
            {
                return(list);
            }

            int size  = 0;
            int count = 0;

            AmqpEncoding.ReadSizeAndCount(buffer, formatCode, FormatCode.List8, FormatCode.List32, out size, out count);

            for (; count > 0; --count)
            {
                object item = AmqpEncoding.DecodeObject(buffer);
                list.Add(item);
            }

            return(list);
        }
示例#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));
        }
示例#3
0
        static T[] Decode <T>(ByteBuffer buffer, int size, int count, FormatCode formatCode)
        {
            T[]          array      = new T[count];
            EncodingBase encoding   = AmqpEncoding.GetEncoding(formatCode);
            object       descriptor = null;

            if (formatCode == FormatCode.Described)
            {
                descriptor = AmqpEncoding.DecodeObject(buffer);
                formatCode = AmqpEncoding.ReadFormatCode(buffer);
            }

            for (int i = 0; i < count; ++i)
            {
                object value = encoding.DecodeObject(buffer, formatCode);
                if (descriptor != null)
                {
                    value = new DescribedType(descriptor, value);
                }

                array[i] = (T)value;
            }

            return(array);
        }
示例#4
0
        public static Guid?Decode(ByteBuffer buffer, FormatCode formatCode)
        {
            if (formatCode == 0 && (formatCode = AmqpEncoding.ReadFormatCode(buffer)) == FormatCode.Null)
            {
                return(null);
            }

            return(AmqpBitConverter.ReadUuid(buffer));
        }
示例#5
0
        public static decimal?Decode(ByteBuffer buffer, FormatCode formatCode)
        {
            if (formatCode == 0 && (formatCode = AmqpEncoding.ReadFormatCode(buffer)) == FormatCode.Null)
            {
                return(null);
            }

            return(DecimalEncoding.DecodeValue(buffer, formatCode));
        }
示例#6
0
        public static object DecodeObject(ByteBuffer buffer)
        {
            FormatCode formatCode = AmqpEncoding.ReadFormatCode(buffer);

            if (formatCode == 64)
            {
                return(null);
            }
            return(AmqpEncoding.DecodeObject(buffer, formatCode));
        }
示例#7
0
 public static DescribedType Decode(ByteBuffer buffer)
 {
     Microsoft.ServiceBus.Messaging.Amqp.Encoding.FormatCode formatCode  = AmqpEncoding.ReadFormatCode(buffer);
     Microsoft.ServiceBus.Messaging.Amqp.Encoding.FormatCode formatCode1 = formatCode;
     if (formatCode == 64)
     {
         return(null);
     }
     return(DescribedEncoding.Decode(buffer, formatCode1));
 }
示例#8
0
        public static DateTime?Decode(ByteBuffer buffer, FormatCode formatCode)
        {
            if (formatCode == 0 && (formatCode = AmqpEncoding.ReadFormatCode(buffer)) == FormatCode.Null)
            {
                return(null);
            }

            long     millSeconds = AmqpBitConverter.ReadLong(buffer);
            DateTime dt          = AmqpConstants.StartOfEpoch + TimeSpan.FromMilliseconds(millSeconds);

            return(dt);
        }
示例#9
0
        public static AmqpSymbol Decode(ByteBuffer buffer, FormatCode formatCode)
        {
            if (formatCode == 0 && (formatCode = AmqpEncoding.ReadFormatCode(buffer)) == FormatCode.Null)
            {
                return(new AmqpSymbol());
            }

            int count = 0;

            AmqpEncoding.ReadCount(buffer, formatCode, FormatCode.Symbol8, FormatCode.Symbol32, out count);
            ArraySegment <byte> bytes = buffer.GetBytes(count);

            return(Encoding.ASCII.GetString(bytes.Array, bytes.Offset, count));
        }
示例#10
0
        public static T[] Decode <T>(ByteBuffer buffer, FormatCode formatCode)
        {
            if (formatCode == 0 && (formatCode = AmqpEncoding.ReadFormatCode(buffer)) == FormatCode.Null)
            {
                return(null);
            }

            int size  = 0;
            int count = 0;

            AmqpEncoding.ReadSizeAndCount(buffer, formatCode, FormatCode.Array8, FormatCode.Array32, out size, out count);

            formatCode = AmqpEncoding.ReadFormatCode(buffer);
            return(ArrayEncoding.Decode <T>(buffer, size, count, formatCode));
        }
示例#11
0
        public static ArraySegment <byte> Decode(ByteBuffer buffer, FormatCode formatCode)
        {
            if (formatCode == 0 && (formatCode = AmqpEncoding.ReadFormatCode(buffer)) == FormatCode.Null)
            {
                return(AmqpConstants.EmptyBinary);
            }

            int count;

            AmqpEncoding.ReadCount(buffer, formatCode, FormatCode.Binary8, FormatCode.Binary32, out count);
            ArraySegment <byte> value = new ArraySegment <byte>(buffer.Buffer, buffer.Offset, count);

            buffer.Complete(count);
            return(value);
        }
示例#12
0
        public static AmqpMap Decode(ByteBuffer buffer, FormatCode formatCode)
        {
            if (formatCode == 0 && (formatCode = AmqpEncoding.ReadFormatCode(buffer)) == FormatCode.Null)
            {
                return(null);
            }

            int size  = 0;
            int count = 0;

            AmqpEncoding.ReadSizeAndCount(buffer, formatCode, FormatCode.Map8, FormatCode.Map32, out size, out count);
            AmqpMap map = new AmqpMap();

            MapEncoding.ReadMapValue(buffer, map, size, count);
            return(map);
        }
示例#13
0
        public static char?Decode(ByteBuffer buffer, FormatCode formatCode)
        {
            if (formatCode == 0 && (formatCode = AmqpEncoding.ReadFormatCode(buffer)) == FormatCode.Null)
            {
                return(null);
            }

            int    intValue = AmqpBitConverter.ReadInt(buffer);
            string value    = char.ConvertFromUtf32(intValue);

            if (value.Length > 1)
            {
                throw new ArgumentOutOfRangeException(SRClient.ErroConvertingToChar);
            }

            return(value[0]);
        }
示例#14
0
        public static T[] Decode <T>(ByteBuffer buffer, Microsoft.ServiceBus.Messaging.Amqp.Encoding.FormatCode formatCode)
        {
            int num;
            int num1;

            if (formatCode == 0)
            {
                Microsoft.ServiceBus.Messaging.Amqp.Encoding.FormatCode formatCode1 = AmqpEncoding.ReadFormatCode(buffer);
                formatCode = formatCode1;
                if (formatCode1 == 64)
                {
                    return(null);
                }
            }
            AmqpEncoding.ReadSizeAndCount(buffer, formatCode, 224, 240, out num, out num1);
            formatCode = AmqpEncoding.ReadFormatCode(buffer);
            return(ArrayEncoding.Decode <T>(buffer, num, num1, formatCode));
        }
示例#15
0
        private static T[] Decode <T>(ByteBuffer buffer, int size, int count, Microsoft.ServiceBus.Messaging.Amqp.Encoding.FormatCode formatCode)
        {
            T[]          tArray   = new T[count];
            EncodingBase encoding = AmqpEncoding.GetEncoding(formatCode);
            object       obj      = null;

            if (formatCode == 0)
            {
                obj        = AmqpEncoding.DecodeObject(buffer);
                formatCode = AmqpEncoding.ReadFormatCode(buffer);
            }
            for (int i = 0; i < count; i++)
            {
                object describedType = encoding.DecodeObject(buffer, formatCode);
                if (obj != null)
                {
                    describedType = new DescribedType(obj, describedType);
                }
                tArray[i] = (T)describedType;
            }
            return(tArray);
        }
示例#16
0
        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)));
        }
示例#17
0
        public override object DecodeObject(ByteBuffer buffer, FormatCode formatCode)
        {
            if (formatCode == 0 && (formatCode = AmqpEncoding.ReadFormatCode(buffer)) == FormatCode.Null)
            {
                return(null);
            }

            int size  = 0;
            int count = 0;

            AmqpEncoding.ReadSizeAndCount(buffer, formatCode, FormatCode.Array8, FormatCode.Array32, out size, out count);

            formatCode = AmqpEncoding.ReadFormatCode(buffer);
            Array array = null;

            switch (formatCode)
            {
            case FormatCode.Boolean:
                array = ArrayEncoding.Decode <bool>(buffer, size, count, formatCode);
                break;

            case FormatCode.UByte:
                array = ArrayEncoding.Decode <byte>(buffer, size, count, formatCode);
                break;

            case FormatCode.UShort:
                array = ArrayEncoding.Decode <ushort>(buffer, size, count, formatCode);
                break;

            case FormatCode.UInt:
            case FormatCode.SmallUInt:
                array = ArrayEncoding.Decode <uint>(buffer, size, count, formatCode);
                break;

            case FormatCode.ULong:
            case FormatCode.SmallULong:
                array = ArrayEncoding.Decode <ulong>(buffer, size, count, formatCode);
                break;

            case FormatCode.Byte:
                array = ArrayEncoding.Decode <sbyte>(buffer, size, count, formatCode);
                break;

            case FormatCode.Short:
                array = ArrayEncoding.Decode <short>(buffer, size, count, formatCode);
                break;

            case FormatCode.Int:
            case FormatCode.SmallInt:
                array = ArrayEncoding.Decode <int>(buffer, size, count, formatCode);
                break;

            case FormatCode.Long:
            case FormatCode.SmallLong:
                array = ArrayEncoding.Decode <long>(buffer, size, count, formatCode);
                break;

            case FormatCode.Float:
                array = ArrayEncoding.Decode <float>(buffer, size, count, formatCode);
                break;

            case FormatCode.Double:
                array = ArrayEncoding.Decode <double>(buffer, size, count, formatCode);
                break;

            case FormatCode.Char:
                array = ArrayEncoding.Decode <char>(buffer, size, count, formatCode);
                break;

            case FormatCode.TimeStamp:
                array = ArrayEncoding.Decode <DateTime>(buffer, size, count, formatCode);
                break;

            case FormatCode.Uuid:
                array = ArrayEncoding.Decode <Guid>(buffer, size, count, formatCode);
                break;

            case FormatCode.Binary32:
            case FormatCode.Binary8:
                array = ArrayEncoding.Decode <ArraySegment <byte> >(buffer, size, count, formatCode);
                break;

            case FormatCode.String32Utf8:
            case FormatCode.String8Utf8:
                array = ArrayEncoding.Decode <string>(buffer, size, count, formatCode);
                break;

            case FormatCode.Symbol32:
            case FormatCode.Symbol8:
                array = ArrayEncoding.Decode <AmqpSymbol>(buffer, size, count, formatCode);
                break;

            case FormatCode.List32:
            case FormatCode.List8:
                array = ArrayEncoding.Decode <IList>(buffer, size, count, formatCode);
                break;

            case FormatCode.Map32:
            case FormatCode.Map8:
                array = ArrayEncoding.Decode <AmqpMap>(buffer, size, count, formatCode);
                break;

            case FormatCode.Array32:
            case FormatCode.Array8:
                array = ArrayEncoding.Decode <Array>(buffer, size, count, formatCode);
                break;

            default:
                throw new NotSupportedException(SRClient.NotSupportFrameCode(formatCode));
            }
            ;

            return(array);
        }
示例#18
0
 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)));
 }
示例#19
0
        public override object DecodeObject(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 num  = 0;
            int num1 = 0;

            AmqpEncoding.ReadSizeAndCount(buffer, formatCode, 224, 240, out num, out num1);
            formatCode = AmqpEncoding.ReadFormatCode(buffer);
            Array arrays = null;
            byte  num2   = formatCode;

            if (num2 > 152)
            {
                if (num2 > 193)
                {
                    switch (num2)
                    {
                    case 208:
                    {
                        arrays = ArrayEncoding.Decode <IList>(buffer, num, num1, formatCode);
                        return(arrays);
                    }

                    case 209:
                    {
                        break;
                    }

                    default:
                    {
                        if (num2 == 224 || num2 == 240)
                        {
                            arrays = ArrayEncoding.Decode <Array>(buffer, num, num1, formatCode);
                            return(arrays);
                        }
                        else
                        {
                            throw new NotSupportedException(SRClient.NotSupportFrameCode(formatCode));
                        }
                    }
                    }
                }
                else
                {
                    switch (num2)
                    {
                    case 160:
                    {
                        arrays = ArrayEncoding.Decode <ArraySegment <byte> >(buffer, num, num1, formatCode);
                        return(arrays);
                    }

                    case 161:
                    {
                        arrays = ArrayEncoding.Decode <string>(buffer, num, num1, formatCode);
                        return(arrays);
                    }

                    case 162:
                    {
                        throw new NotSupportedException(SRClient.NotSupportFrameCode(formatCode));
                    }

                    case 163:
                    {
                        arrays = ArrayEncoding.Decode <AmqpSymbol>(buffer, num, num1, formatCode);
                        return(arrays);
                    }

                    default:
                    {
                        switch (num2)
                        {
                        case 176:
                        {
                            arrays = ArrayEncoding.Decode <ArraySegment <byte> >(buffer, num, num1, formatCode);
                            return(arrays);
                        }

                        case 177:
                        {
                            arrays = ArrayEncoding.Decode <string>(buffer, num, num1, formatCode);
                            return(arrays);
                        }

                        case 178:
                        {
                            throw new NotSupportedException(SRClient.NotSupportFrameCode(formatCode));
                        }

                        case 179:
                        {
                            arrays = ArrayEncoding.Decode <AmqpSymbol>(buffer, num, num1, formatCode);
                            return(arrays);
                        }

                        default:
                        {
                            switch (num2)
                            {
                            case 192:
                            {
                                arrays = ArrayEncoding.Decode <IList>(buffer, num, num1, formatCode);
                                return(arrays);
                            }

                            case 193:
                            {
                                break;
                            }

                            default:
                            {
                                throw new NotSupportedException(SRClient.NotSupportFrameCode(formatCode));
                            }
                            }
                            break;
                        }
                        }
                        break;
                    }
                    }
                }
                arrays = ArrayEncoding.Decode <AmqpMap>(buffer, num, num1, formatCode);
            }
            else
            {
                if (num2 > 97)
                {
                    switch (num2)
                    {
                    case 112:
                    {
                        arrays = ArrayEncoding.Decode <uint>(buffer, num, num1, formatCode);
                        return(arrays);
                    }

                    case 113:
                    {
                        arrays = ArrayEncoding.Decode <int>(buffer, num, num1, formatCode);
                        return(arrays);
                    }

                    case 114:
                    {
                        arrays = ArrayEncoding.Decode <float>(buffer, num, num1, formatCode);
                        return(arrays);
                    }

                    case 115:
                    {
                        arrays = ArrayEncoding.Decode <char>(buffer, num, num1, formatCode);
                        return(arrays);
                    }

                    default:
                    {
                        switch (num2)
                        {
                        case 128:
                        {
                            arrays = ArrayEncoding.Decode <ulong>(buffer, num, num1, formatCode);
                            return(arrays);
                        }

                        case 129:
                        {
                            break;
                        }

                        case 130:
                        {
                            arrays = ArrayEncoding.Decode <double>(buffer, num, num1, formatCode);
                            return(arrays);
                        }

                        case 131:
                        {
                            arrays = ArrayEncoding.Decode <DateTime>(buffer, num, num1, formatCode);
                            return(arrays);
                        }

                        default:
                        {
                            if (num2 == 152)
                            {
                                arrays = ArrayEncoding.Decode <Guid>(buffer, num, num1, formatCode);
                                return(arrays);
                            }
                            else
                            {
                                throw new NotSupportedException(SRClient.NotSupportFrameCode(formatCode));
                            }
                        }
                        }
                        break;
                    }
                    }
                }
                else
                {
                    switch (num2)
                    {
                    case 80:
                    {
                        arrays = ArrayEncoding.Decode <byte>(buffer, num, num1, formatCode);
                        return(arrays);
                    }

                    case 81:
                    {
                        arrays = ArrayEncoding.Decode <sbyte>(buffer, num, num1, formatCode);
                        return(arrays);
                    }

                    case 82:
                    {
                        arrays = ArrayEncoding.Decode <uint>(buffer, num, num1, formatCode);
                        return(arrays);
                    }

                    case 83:
                    {
                        arrays = ArrayEncoding.Decode <ulong>(buffer, num, num1, formatCode);
                        return(arrays);
                    }

                    case 84:
                    {
                        arrays = ArrayEncoding.Decode <int>(buffer, num, num1, formatCode);
                        return(arrays);
                    }

                    case 85:
                    {
                        break;
                    }

                    case 86:
                    {
                        arrays = ArrayEncoding.Decode <bool>(buffer, num, num1, formatCode);
                        return(arrays);
                    }

                    default:
                    {
                        switch (num2)
                        {
                        case 96:
                        {
                            arrays = ArrayEncoding.Decode <ushort>(buffer, num, num1, formatCode);
                            return(arrays);
                        }

                        case 97:
                        {
                            arrays = ArrayEncoding.Decode <short>(buffer, num, num1, formatCode);
                            return(arrays);
                        }

                        default:
                        {
                            throw new NotSupportedException(SRClient.NotSupportFrameCode(formatCode));
                        }
                        }
                        break;
                    }
                    }
                }
                arrays = ArrayEncoding.Decode <long>(buffer, num, num1, formatCode);
            }
            return(arrays);
        }
示例#20
0
        public static ArraySegment <byte> Decode(ByteBuffer buffer, Microsoft.ServiceBus.Messaging.Amqp.Encoding.FormatCode formatCode, bool copy)
        {
            int num;
            ArraySegment <byte> nums;

            if (formatCode == 0)
            {
                Microsoft.ServiceBus.Messaging.Amqp.Encoding.FormatCode formatCode1 = AmqpEncoding.ReadFormatCode(buffer);
                formatCode = formatCode1;
                if (formatCode1 == 64)
                {
                    return(AmqpConstants.NullBinary);
                }
            }
            AmqpEncoding.ReadCount(buffer, formatCode, 160, 176, out num);
            if (num == 0)
            {
                return(AmqpConstants.EmptyBinary);
            }
            if (!copy)
            {
                nums = new ArraySegment <byte>(buffer.Buffer, buffer.Offset, num);
            }
            else
            {
                byte[] numArray = new byte[num];
                Buffer.BlockCopy(buffer.Buffer, buffer.Offset, numArray, 0, num);
                nums = new ArraySegment <byte>(numArray, 0, num);
            }
            buffer.Complete(num);
            return(nums);
        }
示例#21
0
        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);
        }
示例#22
0
        public static int?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[] { 113, 84 };
            EncodingBase.VerifyFormatCode(formatCode, offset, formatCodeArray);
            return(new int?((formatCode == 84 ? (int)AmqpBitConverter.ReadByte(buffer) : AmqpBitConverter.ReadInt(buffer))));
        }
示例#23
0
 public static decimal?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 decimal?(DecimalEncoding.DecodeValue(buffer, formatCode)));
 }
示例#24
0
        public static char?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);
                }
            }
            string str = char.ConvertFromUtf32(AmqpBitConverter.ReadInt(buffer));

            if (str.Length > 1)
            {
                throw new ArgumentOutOfRangeException(SRClient.ErroConvertingToChar);
            }
            return(new char?(str[0]));
        }
示例#25
0
        public static AmqpSymbol Decode(ByteBuffer buffer, Microsoft.ServiceBus.Messaging.Amqp.Encoding.FormatCode formatCode)
        {
            int num;

            if (formatCode == 0)
            {
                Microsoft.ServiceBus.Messaging.Amqp.Encoding.FormatCode formatCode1 = AmqpEncoding.ReadFormatCode(buffer);
                formatCode = formatCode1;
                if (formatCode1 == 64)
                {
                    return(new AmqpSymbol());
                }
            }
            AmqpEncoding.ReadCount(buffer, formatCode, 163, 179, out num);
            string str = System.Text.Encoding.ASCII.GetString(buffer.Buffer, buffer.Offset, num);

            buffer.Complete(num);
            return(new AmqpSymbol(str));
        }
 public static DateTime?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 DateTime?(TimeStampEncoding.ToDateTime(AmqpBitConverter.ReadLong(buffer))));
 }
示例#27
0
        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))));
        }
示例#28
0
        public static AmqpMap Decode(ByteBuffer buffer, Microsoft.ServiceBus.Messaging.Amqp.Encoding.FormatCode formatCode)
        {
            int num;
            int num1;

            if (formatCode == 0)
            {
                Microsoft.ServiceBus.Messaging.Amqp.Encoding.FormatCode formatCode1 = AmqpEncoding.ReadFormatCode(buffer);
                formatCode = formatCode1;
                if (formatCode1 == 64)
                {
                    return(null);
                }
            }
            AmqpEncoding.ReadSizeAndCount(buffer, formatCode, 193, 209, out num, out num1);
            AmqpMap amqpMaps = new AmqpMap();

            MapEncoding.ReadMapValue(buffer, amqpMaps, num, num1);
            return(amqpMaps);
        }
示例#29
0
        public static IList Decode(ByteBuffer buffer, Microsoft.ServiceBus.Messaging.Amqp.Encoding.FormatCode formatCode)
        {
            int num;
            int num1;

            if (formatCode == 0)
            {
                Microsoft.ServiceBus.Messaging.Amqp.Encoding.FormatCode formatCode1 = AmqpEncoding.ReadFormatCode(buffer);
                formatCode = formatCode1;
                if (formatCode1 == 64)
                {
                    return(null);
                }
            }
            IList objs = new List <object>();

            if (formatCode == 69)
            {
                return(objs);
            }
            AmqpEncoding.ReadSizeAndCount(buffer, formatCode, 192, 208, out num, out num1);
            while (num1 > 0)
            {
                objs.Add(AmqpEncoding.DecodeObject(buffer));
                num1--;
            }
            return(objs);
        }