Пример #1
0
        public static void Encode(ulong?value, ByteBuffer buffer)
        {
            if (!value.HasValue)
            {
                AmqpEncoding.EncodeNull(buffer);
                return;
            }
            ulong?nullable = value;

            if ((nullable.GetValueOrDefault() != (long)0 ? false : nullable.HasValue))
            {
                AmqpBitConverter.WriteUByte(buffer, 68);
                return;
            }
            ulong?nullable1 = value;

            if ((nullable1.GetValueOrDefault() > (long)255 ? true : !nullable1.HasValue))
            {
                AmqpBitConverter.WriteUByte(buffer, 128);
                AmqpBitConverter.WriteULong(buffer, value.Value);
                return;
            }
            AmqpBitConverter.WriteUByte(buffer, 83);
            AmqpBitConverter.WriteUByte(buffer, (byte)value.Value);
        }
Пример #2
0
 public static void Encode(bool?value, ByteBuffer buffer)
 {
     if (!value.HasValue)
     {
         AmqpEncoding.EncodeNull(buffer);
         return;
     }
     AmqpBitConverter.WriteUByte(buffer, (byte)((value.Value ? 65 : 66)));
 }
Пример #3
0
 public static void Encode(byte?value, ByteBuffer buffer)
 {
     if (!value.HasValue)
     {
         AmqpEncoding.EncodeNull(buffer);
         return;
     }
     AmqpBitConverter.WriteUByte(buffer, 80);
     AmqpBitConverter.WriteUByte(buffer, value.Value);
 }
Пример #4
0
 public static void Encode(decimal?value, ByteBuffer buffer)
 {
     if (!value.HasValue)
     {
         AmqpEncoding.EncodeNull(buffer);
         return;
     }
     AmqpBitConverter.WriteUByte(buffer, 148);
     DecimalEncoding.EncodeValue(value.Value, buffer);
 }
Пример #5
0
 public static void Encode(DateTime?value, ByteBuffer buffer)
 {
     if (!value.HasValue)
     {
         AmqpEncoding.EncodeNull(buffer);
         return;
     }
     AmqpBitConverter.WriteUByte(buffer, 131);
     AmqpBitConverter.WriteLong(buffer, TimeStampEncoding.GetMilliseconds(value.Value));
 }
Пример #6
0
 public static void Encode(char?value, ByteBuffer buffer)
 {
     if (!value.HasValue)
     {
         AmqpEncoding.EncodeNull(buffer);
         return;
     }
     AmqpBitConverter.WriteUByte(buffer, 115);
     AmqpBitConverter.WriteInt(buffer, char.ConvertToUtf32(new string(value.Value, 1), 0));
 }
Пример #7
0
 public static void Encode(string value, ByteBuffer buffer)
 {
     if (value == null)
     {
         AmqpEncoding.EncodeNull(buffer);
     }
     else
     {
         StringEncoding.Encode(value, 0, buffer);
     }
 }
Пример #8
0
 public static void Encode(DescribedType value, ByteBuffer buffer)
 {
     if (value.Value == null)
     {
         AmqpEncoding.EncodeNull(buffer);
         return;
     }
     AmqpBitConverter.WriteUByte(buffer, 0);
     AmqpEncoding.EncodeObject(value.Descriptor, buffer);
     AmqpEncoding.EncodeObject(value.Value, buffer);
 }
Пример #9
0
 public static void Encode(AmqpSymbol value, ByteBuffer buffer)
 {
     if (value.Value == null)
     {
         AmqpEncoding.EncodeNull(buffer);
     }
     else
     {
         SymbolEncoding.Encode(value, 0, buffer);
     }
 }
Пример #10
0
 public static void Encode(decimal?value, ByteBuffer buffer)
 {
     if (value.HasValue)
     {
         AmqpBitConverter.WriteUByte(buffer, (byte)FormatCode.Decimal128);
         DecimalEncoding.EncodeValue(value.Value, buffer);
     }
     else
     {
         AmqpEncoding.EncodeNull(buffer);
     }
 }
Пример #11
0
 public static void Encode(char?value, ByteBuffer buffer)
 {
     if (value.HasValue)
     {
         AmqpBitConverter.WriteUByte(buffer, (byte)FormatCode.Char);
         AmqpBitConverter.WriteInt(buffer, char.ConvertToUtf32(new string(value.Value, 1), 0));
     }
     else
     {
         AmqpEncoding.EncodeNull(buffer);
     }
 }
Пример #12
0
 public static void Encode(DateTime?value, ByteBuffer buffer)
 {
     if (value.HasValue)
     {
         AmqpBitConverter.WriteUByte(buffer, (byte)FormatCode.TimeStamp);
         AmqpBitConverter.WriteLong(buffer, TimeStampEncoding.GetMilliseconds(value.Value));
     }
     else
     {
         AmqpEncoding.EncodeNull(buffer);
     }
 }
Пример #13
0
 public static void Encode(Guid?value, ByteBuffer buffer)
 {
     if (value.HasValue)
     {
         AmqpBitConverter.WriteUByte(buffer, (byte)FormatCode.Uuid);
         AmqpBitConverter.WriteUuid(buffer, value.Value);
     }
     else
     {
         AmqpEncoding.EncodeNull(buffer);
     }
 }
Пример #14
0
        public static void Encode(string value, ByteBuffer buffer)
        {
            if (value == null)
            {
                AmqpEncoding.EncodeNull(buffer);
                return;
            }
            byte[] bytes             = System.Text.Encoding.UTF8.GetBytes(value);
            int    encodeWidthBySize = AmqpEncoding.GetEncodeWidthBySize((int)bytes.Length);

            AmqpBitConverter.WriteUByte(buffer, (byte)((encodeWidthBySize == 1 ? 161 : 177)));
            StringEncoding.Encode(bytes, encodeWidthBySize, buffer);
        }
Пример #15
0
        public static void Encode(AmqpSymbol value, ByteBuffer buffer)
        {
            if (value.Value == null)
            {
                AmqpEncoding.EncodeNull(buffer);
                return;
            }
            byte[] bytes             = System.Text.Encoding.ASCII.GetBytes(value.Value);
            int    encodeWidthBySize = AmqpEncoding.GetEncodeWidthBySize((int)bytes.Length);

            AmqpBitConverter.WriteUByte(buffer, (byte)((encodeWidthBySize == 1 ? 163 : 179)));
            SymbolEncoding.Encode(bytes, encodeWidthBySize, buffer);
        }
Пример #16
0
        public static void Encode <T>(T[] value, ByteBuffer buffer)
        {
            int num;

            if (value == null)
            {
                AmqpEncoding.EncodeNull(buffer);
                return;
            }
            int encodeSize = ArrayEncoding.GetEncodeSize(value, false, out num);

            AmqpBitConverter.WriteUByte(buffer, (byte)((num == 1 ? 224 : 240)));
            ArrayEncoding.Encode(value, num, encodeSize, buffer);
        }
Пример #17
0
 public static void Encode <T>(T[] value, ByteBuffer buffer)
 {
     if (value == null)
     {
         AmqpEncoding.EncodeNull(buffer);
     }
     else
     {
         int width;
         int encodeSize = ArrayEncoding.GetEncodeSize(value, false, out width);
         AmqpBitConverter.WriteUByte(buffer, width == FixedWidth.UByte ? (byte)FormatCode.Array8 : (byte)FormatCode.Array32);
         ArrayEncoding.Encode(value, width, encodeSize, buffer);
     }
 }
Пример #18
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);
        }
Пример #19
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);
            }
        }
Пример #20
0
        public static void EncodeObject(object value, ByteBuffer buffer)
        {
            if (value == null)
            {
                AmqpEncoding.EncodeNull(buffer);
                return;
            }
            IAmqpSerializable amqpSerializable = value as IAmqpSerializable;

            if (amqpSerializable != null)
            {
                amqpSerializable.Encode(buffer);
                return;
            }
            AmqpEncoding.GetEncoding(value).EncodeObject(value, false, buffer);
        }
Пример #21
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);
        }
Пример #22
0
 public static void Encode(ArraySegment <byte> value, ByteBuffer buffer)
 {
     if (value.Array == null)
     {
         AmqpEncoding.EncodeNull(buffer);
         return;
     }
     if (AmqpEncoding.GetEncodeWidthBySize(value.Count) != 1)
     {
         AmqpBitConverter.WriteUByte(buffer, 176);
         AmqpBitConverter.WriteUInt(buffer, (uint)value.Count);
     }
     else
     {
         AmqpBitConverter.WriteUByte(buffer, 160);
         AmqpBitConverter.WriteUByte(buffer, (byte)value.Count);
     }
     AmqpBitConverter.WriteBytes(buffer, value.Array, value.Offset, value.Count);
 }
Пример #23
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);
            }
        }
Пример #24
0
        public static void Encode(int?value, ByteBuffer buffer)
        {
            if (!value.HasValue)
            {
                AmqpEncoding.EncodeNull(buffer);
                return;
            }
            int?nullable = value;

            if ((nullable.GetValueOrDefault() >= -128 ? true : !nullable.HasValue))
            {
                int?nullable1 = value;
                if ((nullable1.GetValueOrDefault() <= 127 ? true : !nullable1.HasValue))
                {
                    AmqpBitConverter.WriteUByte(buffer, 84);
                    AmqpBitConverter.WriteByte(buffer, (sbyte)value.Value);
                    return;
                }
            }
            AmqpBitConverter.WriteUByte(buffer, 113);
            AmqpBitConverter.WriteInt(buffer, value.Value);
        }
Пример #25
0
        public static void Encode(long?value, ByteBuffer buffer)
        {
            if (!value.HasValue)
            {
                AmqpEncoding.EncodeNull(buffer);
                return;
            }
            long?nullable = value;

            if ((nullable.GetValueOrDefault() >= (long)-128 ? true : !nullable.HasValue))
            {
                long?nullable1 = value;
                if ((nullable1.GetValueOrDefault() <= (long)127 ? true : !nullable1.HasValue))
                {
                    AmqpBitConverter.WriteUByte(buffer, 85);
                    AmqpBitConverter.WriteByte(buffer, (sbyte)value.Value);
                    return;
                }
            }
            AmqpBitConverter.WriteUByte(buffer, 129);
            AmqpBitConverter.WriteLong(buffer, value.Value);
        }
Пример #26
0
        public static void Encode(ArraySegment <byte> value, ByteBuffer buffer)
        {
            if (value.Array == null)
            {
                AmqpEncoding.EncodeNull(buffer);
            }
            else
            {
                int width = AmqpEncoding.GetEncodeWidthBySize(value.Count);
                if (width == FixedWidth.UByte)
                {
                    AmqpBitConverter.WriteUByte(buffer, (byte)FormatCode.Binary8);
                    AmqpBitConverter.WriteUByte(buffer, (byte)value.Count);
                }
                else
                {
                    AmqpBitConverter.WriteUByte(buffer, (byte)FormatCode.Binary32);
                    AmqpBitConverter.WriteUInt(buffer, (uint)value.Count);
                }

                buffer.WriteBytes(value.Array, value.Offset, value.Count);
            }
        }
Пример #27
0
        public static void Encode(uint?value, ByteBuffer buffer)
        {
            if (!value.HasValue)
            {
                AmqpEncoding.EncodeNull(buffer);
                return;
            }
            uint?nullable = value;

            if ((nullable.GetValueOrDefault() != 0 ? false : nullable.HasValue))
            {
                AmqpBitConverter.WriteUByte(buffer, 67);
                return;
            }
            if (value.Value > 255)
            {
                AmqpBitConverter.WriteUByte(buffer, 112);
                AmqpBitConverter.WriteUInt(buffer, value.Value);
                return;
            }
            AmqpBitConverter.WriteUByte(buffer, 82);
            AmqpBitConverter.WriteUByte(buffer, (byte)value.Value);
        }