Exemple #1
0
 public static int GetEncodeSize(AmqpMap value)
 {
     if (value == null)
     {
         return(1);
     }
     return(1 + MapEncoding.GetEncodeWidth(value) * 2 + value.ValueSize);
 }
Exemple #2
0
 public static void ReadMapValue(ByteBuffer buffer, AmqpMap map, int size, int count)
 {
     for (; count > 0; count -= 2)
     {
         object key  = AmqpEncoding.DecodeObject(buffer);
         object item = AmqpEncoding.DecodeObject(buffer);
         map[new MapKey(key)] = item;
     }
 }
Exemple #3
0
 public static void ReadMapValue(ByteBuffer buffer, AmqpMap map, int size, int count)
 {
     while (count > 0)
     {
         object obj  = AmqpEncoding.DecodeObject(buffer);
         object obj1 = AmqpCodec.DecodeObject(buffer);
         map[new MapKey(obj)] = obj1;
         count = count - 2;
     }
 }
Exemple #4
0
        public override void EncodeObject(object value, bool arrayEncoding, ByteBuffer buffer)
        {
            if (!arrayEncoding)
            {
                MapEncoding.Encode((AmqpMap)value, buffer);
                return;
            }
            AmqpMap amqpMaps  = (AmqpMap)value;
            int     valueSize = 4 + amqpMaps.ValueSize;

            MapEncoding.Encode(amqpMaps, 4, valueSize, buffer);
        }
Exemple #5
0
 public override void EncodeObject(object value, bool arrayEncoding, ByteBuffer buffer)
 {
     if (arrayEncoding)
     {
         AmqpMap mapValue = (AmqpMap)value;
         int     size     = FixedWidth.UInt + mapValue.ValueSize;
         MapEncoding.Encode(mapValue, FixedWidth.UInt, size, buffer);
     }
     else
     {
         MapEncoding.Encode((AmqpMap)value, buffer);
     }
 }
Exemple #6
0
        public static void Encode(AmqpMap value, ByteBuffer buffer)
        {
            if (value == null)
            {
                AmqpEncoding.EncodeNull(buffer);
                return;
            }
            int encodeWidth = MapEncoding.GetEncodeWidth(value);

            AmqpBitConverter.WriteUByte(buffer, (byte)((encodeWidth == 1 ? 193 : 209)));
            int valueSize = encodeWidth + value.ValueSize;

            MapEncoding.Encode(value, encodeWidth, valueSize, buffer);
        }
Exemple #7
0
        public static int GetValueSize(AmqpMap value)
        {
            int objectEncodeSize = 0;

            if (value.Count > 0)
            {
                foreach (KeyValuePair <MapKey, object> keyValuePair in (IEnumerable <KeyValuePair <MapKey, object> >)value)
                {
                    MapKey key = keyValuePair.Key;
                    objectEncodeSize = objectEncodeSize + AmqpEncoding.GetObjectEncodeSize(key.Key);
                    objectEncodeSize = objectEncodeSize + AmqpEncoding.GetObjectEncodeSize(keyValuePair.Value);
                }
            }
            return(objectEncodeSize);
        }
Exemple #8
0
        public static void Encode(AmqpMap value, ByteBuffer buffer)
        {
            if (value == null)
            {
                AmqpEncoding.EncodeNull(buffer);
            }
            else
            {
                int encodeWidth = MapEncoding.GetEncodeWidth(value);
                AmqpBitConverter.WriteUByte(buffer, encodeWidth == FixedWidth.UByte ? (byte)FormatCode.Map8 : (byte)FormatCode.Map32);

                int size = encodeWidth + value.ValueSize;
                MapEncoding.Encode(value, encodeWidth, size, buffer);
            }
        }
Exemple #9
0
        public static int GetValueSize(AmqpMap value)
        {
            int size = 0;

            if (value.Count > 0)
            {
                foreach (KeyValuePair <MapKey, object> item in value)
                {
                    size += AmqpEncoding.GetObjectEncodeSize(item.Key.Key);
                    size += AmqpEncoding.GetObjectEncodeSize(item.Value);
                }
            }

            return(size);
        }
Exemple #10
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);
        }
Exemple #11
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);
        }
Exemple #12
0
 private static void Encode(AmqpMap value, int width, int size, ByteBuffer buffer)
 {
     if (width != 1)
     {
         AmqpBitConverter.WriteUInt(buffer, (uint)size);
         AmqpBitConverter.WriteUInt(buffer, (uint)(value.Count * 2));
     }
     else
     {
         AmqpBitConverter.WriteUByte(buffer, (byte)size);
         AmqpBitConverter.WriteUByte(buffer, (byte)(value.Count * 2));
     }
     if (value.Count > 0)
     {
         foreach (KeyValuePair <MapKey, object> keyValuePair in (IEnumerable <KeyValuePair <MapKey, object> >)value)
         {
             AmqpEncoding.EncodeObject(keyValuePair.Key.Key, buffer);
             AmqpEncoding.EncodeObject(keyValuePair.Value, buffer);
         }
     }
 }
Exemple #13
0
        static void Encode(AmqpMap value, int width, int size, ByteBuffer buffer)
        {
            if (width == FixedWidth.UByte)
            {
                AmqpBitConverter.WriteUByte(buffer, (byte)size);
                AmqpBitConverter.WriteUByte(buffer, (byte)(value.Count * 2));
            }
            else
            {
                AmqpBitConverter.WriteUInt(buffer, (uint)size);
                AmqpBitConverter.WriteUInt(buffer, (uint)(value.Count * 2));
            }

            if (value.Count > 0)
            {
                foreach (KeyValuePair <MapKey, object> item in value)
                {
                    AmqpEncoding.EncodeObject(item.Key.Key, buffer);
                    AmqpEncoding.EncodeObject(item.Value, buffer);
                }
            }
        }
Exemple #14
0
 private static int GetEncodeWidth(AmqpMap value)
 {
     return(AmqpEncoding.GetEncodeWidthByCountAndSize(value.Count * 2, value.ValueSize));
 }
Exemple #15
0
 public static int GetEncodeSize(AmqpMap value)
 {
     return(value == null ?
            FixedWidth.NullEncoded :
            FixedWidth.FormatCode + (MapEncoding.GetEncodeWidth(value) * 2) + value.ValueSize);
 }