Encode() 공개 정적인 메소드

public static Encode ( IList value, ByteBuffer buffer ) : void
value IList
buffer ByteBuffer
리턴 void
예제 #1
0
 public override void EncodeObject(object value, bool arrayEncoding, ByteBuffer buffer)
 {
     if (arrayEncoding)
     {
         IList listValue = (IList)value;
         int   size      = FixedWidth.UInt + GetValueSize(listValue);
         ListEncoding.Encode(listValue, FixedWidth.UInt, size, buffer);
     }
     else
     {
         ListEncoding.Encode((IList)value, buffer);
     }
 }
예제 #2
0
        public static void Encode(IList value, ByteBuffer buffer)
        {
            if (value == null)
            {
                AmqpEncoding.EncodeNull(buffer);
            }
            else if (value.Count == 0)
            {
                AmqpBitConverter.WriteUByte(buffer, FormatCode.List0);
            }
            else
            {
                int valueSize = ListEncoding.GetValueSize(value);
                int width     = AmqpEncoding.GetEncodeWidthByCountAndSize(value.Count, valueSize);
                AmqpBitConverter.WriteUByte(buffer, width == FixedWidth.UByte ? FormatCode.List8 : FormatCode.List32);

                int size = width + valueSize;
                ListEncoding.Encode(value, width, size, buffer);
            }
        }