Esempio n. 1
0
        static int GetEncodeSize(Array array, bool arrayEncoding, out int width)
        {
            int size = FixedWidth.FormatCode + ArrayEncoding.GetValueSize(array, null);

            width = arrayEncoding ? FixedWidth.UInt : AmqpEncoding.GetEncodeWidthByCountAndSize(array.Length, size);
            size += FixedWidth.FormatCode + width + width;
            return(size);
        }
Esempio n. 2
0
        private static int GetEncodeSize(Array array, bool arrayEncoding, out int width)
        {
            int valueSize = 1 + ArrayEncoding.GetValueSize(array, null);

            width     = (arrayEncoding ? 4 : AmqpEncoding.GetEncodeWidthByCountAndSize(array.Length, valueSize));
            valueSize = valueSize + 1 + width + width;
            return(valueSize);
        }
Esempio n. 3
0
        public static int GetEncodeSize(IList value)
        {
            if (value == null)
            {
                return(1);
            }
            if (value.Count == 0)
            {
                return(1);
            }
            int valueSize = ListEncoding.GetValueSize(value);
            int encodeWidthByCountAndSize = AmqpEncoding.GetEncodeWidthByCountAndSize(value.Count, valueSize);

            return(1 + encodeWidthByCountAndSize * 2 + valueSize);
        }
Esempio n. 4
0
 public static int GetEncodeSize(IList value)
 {
     if (value == null)
     {
         return(FixedWidth.NullEncoded);
     }
     else if (value.Count == 0)
     {
         return(FixedWidth.FormatCode);
     }
     else
     {
         int valueSize = ListEncoding.GetValueSize(value);
         int width     = AmqpEncoding.GetEncodeWidthByCountAndSize(value.Count, valueSize);
         return(FixedWidth.FormatCode + width * 2 + valueSize);
     }
 }
Esempio n. 5
0
        public static void Encode(IList value, ByteBuffer buffer)
        {
            if (value == null)
            {
                AmqpEncoding.EncodeNull(buffer);
                return;
            }
            if (value.Count == 0)
            {
                AmqpBitConverter.WriteUByte(buffer, 69);
                return;
            }
            int valueSize = ListEncoding.GetValueSize(value);
            int encodeWidthByCountAndSize = AmqpEncoding.GetEncodeWidthByCountAndSize(value.Count, valueSize);

            AmqpBitConverter.WriteUByte(buffer, (byte)((encodeWidthByCountAndSize == 1 ? 192 : 208)));
            ListEncoding.Encode(value, encodeWidthByCountAndSize, encodeWidthByCountAndSize + valueSize, buffer);
        }
Esempio n. 6
0
        public static void Encode(IList value, ByteBuffer buffer)
        {
            if (value == null)
            {
                AmqpEncoding.EncodeNull(buffer);
            }
            else if (value.Count == 0)
            {
                AmqpBitConverter.WriteUByte(buffer, (byte)FormatCode.List0);
            }
            else
            {
                int valueSize = ListEncoding.GetValueSize(value);
                int width     = AmqpEncoding.GetEncodeWidthByCountAndSize(value.Count, valueSize);
                AmqpBitConverter.WriteUByte(buffer, width == FixedWidth.UByte ? (byte)FormatCode.List8 : (byte)FormatCode.List32);

                int size = width + valueSize;
                ListEncoding.Encode(value, width, size, buffer);
            }
        }
Esempio n. 7
0
 private static int GetEncodeWidth(AmqpMap value)
 {
     return(AmqpEncoding.GetEncodeWidthByCountAndSize(value.Count * 2, value.ValueSize));
 }