예제 #1
0
 public override void WriteMapBegin(TMap map)
 {
     WriteJSONArrayStart();
     WriteJSONString(GetTypeNameForTypeID(map.KeyType));
     WriteJSONString(GetTypeNameForTypeID(map.ValueType));
     WriteJSONInteger(map.Count);
     WriteJSONObjectStart();
 }
예제 #2
0
 public override TMap ReadMapBegin()
 {
     TMap map = new TMap();
     ReadJSONArrayStart();
     map.KeyType = GetTypeIDForTypeName(ReadJSONString(false));
     map.ValueType = GetTypeIDForTypeName(ReadJSONString(false));
     map.Count = (int)ReadJSONInteger();
     ReadJSONObjectStart();
     return map;
 }
예제 #3
0
 public override void WriteMapBegin(TMap map)
 {
     WriteByte((byte)map.KeyType);
     WriteByte((byte)map.ValueType);
     WriteI32(map.Count);
 }
예제 #4
0
        public override TMap ReadMapBegin()
        {
            TMap map = new TMap();
            map.KeyType = (DataType)ReadByte();
            map.ValueType = (DataType)ReadByte();
            map.Count = ReadI32();

            return map;
        }
예제 #5
0
 /**
  * Write a map header. If the map is empty, omit the key and value type
  * headers, as we don't need any additional information to skip it.
  */
 public override void WriteMapBegin(TMap map)
 {
     if (map.Count == 0)
     {
         WriteByteDirect(0);
     }
     else
     {
         WriteVarint32((uint)map.Count);
         WriteByteDirect(getCompactType(map.KeyType) << 4 | getCompactType(map.ValueType));
     }
 }
예제 #6
0
 public abstract void WriteMapBegin(TMap map);