private Tdf ReadTdf()
{
Tdf tdf = null;
var label = ReadLabel();
var type = (TdfBaseType)_stream.ReadByte();
switch (type)
{
case TdfBaseType.Integer:
tdf = DecodeTdfInteger(label);
break;
case TdfBaseType.String:
tdf = DecodeTdfString(label);
break;
case TdfBaseType.Binary:
tdf = DecodeTdfBlob(label);
break;
case TdfBaseType.Struct:
tdf = DecodeTdfStruct(label);
break;
case TdfBaseType.List:
tdf = DecodeTdfList(label);
break;
case TdfBaseType.Map:
tdf = DecodeTdfMap(label);
break;
case TdfBaseType.Union:
tdf = DecodeTdfUnion(label);
break;
case TdfBaseType.Variable:
tdf = DecodeTdfIntegerList(label);
break;
case TdfBaseType.TDF_TYPE_BLAZE_OBJECT_TYPE:
tdf = DecodeTdfVector2(label);
break;
case TdfBaseType.TDF_TYPE_BLAZE_OBJECT_ID:
tdf = DecodeTdfVector3(label);
break;
default:
Log.Warn(string.Format("Unknown Tdf type: {0}", type));
break;
}
return tdf;
}