internal static void GetTypeAdditionalInfo(TypeHoldingThing typeHolder, BinarySerializationStreamAnalyzer analyzer) { switch (typeHolder.BinaryType) { case BinaryTypeEnumeration.Primitive: case BinaryTypeEnumeration.PrimitiveArray: typeHolder.PrimitiveType = (PrimitiveTypeEnumeration)analyzer.reader.ReadByte(); break; case BinaryTypeEnumeration.String: break; case BinaryTypeEnumeration.Object: break; case BinaryTypeEnumeration.SystemClass: typeHolder.TypeInfo = new ClassTypeInfo(); typeHolder.TypeInfo.TypeName = analyzer.reader.ReadString(); break; case BinaryTypeEnumeration.Class: typeHolder.TypeInfo = new ClassTypeInfo(); typeHolder.TypeInfo.TypeName = analyzer.reader.ReadString(); typeHolder.TypeInfo.LibraryID = analyzer.ReadID(); break; case BinaryTypeEnumeration.ObjectArray: break; case BinaryTypeEnumeration.StringArray: break; } }
internal BinaryArray(BinarySerializationStreamAnalyzer analyzer) { ObjectID = analyzer.ReadID(); ArrayType = (BinaryArrayTypeEnumeration)analyzer.reader.ReadByte(); Rank = analyzer.reader.ReadInt32(); Lengths = new List <int>(Rank); for (int i = 0; i < Rank; i++) { Lengths.Add(analyzer.reader.ReadInt32()); } if (ArrayType == BinaryArrayTypeEnumeration.SingleOffset || ArrayType == BinaryArrayTypeEnumeration.JaggedOffset || ArrayType == BinaryArrayTypeEnumeration.RectangularOffset) { LowerBounds = new List <int>(Rank); for (int i = 0; i < Rank; i++) { LowerBounds.Add(analyzer.reader.ReadInt32()); } } BinaryType = (BinaryTypeEnumeration)analyzer.reader.ReadByte(); TypeHelper.GetTypeAdditionalInfo(this, analyzer); }
internal ClassInfo(BinarySerializationStreamAnalyzer analyzer) { ObjectID = analyzer.ReadID(); Name = analyzer.reader.ReadString(); Members = new List <MemberInfo>(analyzer.reader.ReadInt32()); for (int i = 0; i < Members.Capacity; i++) { Members.Add(new MemberInfo()); Members[i].Name = analyzer.reader.ReadString(); Members[i].RelevantObject = this; } }
internal static void GetTypeAdditionalInfo(TypeHoldingThing typeHolder, BinarySerializationStreamAnalyzer analyzer) { switch(typeHolder.BinaryType) { case BinaryTypeEnumeration.Primitive: case BinaryTypeEnumeration.PrimitiveArray: typeHolder.PrimitiveType = (PrimitiveTypeEnumeration)analyzer.reader.ReadByte(); break; case BinaryTypeEnumeration.String: break; case BinaryTypeEnumeration.Object: break; case BinaryTypeEnumeration.SystemClass: typeHolder.TypeInfo = new ClassTypeInfo(); typeHolder.TypeInfo.TypeName = analyzer.reader.ReadString(); break; case BinaryTypeEnumeration.Class: typeHolder.TypeInfo = new ClassTypeInfo(); typeHolder.TypeInfo.TypeName = analyzer.reader.ReadString(); typeHolder.TypeInfo.LibraryID = analyzer.ReadID(); break; case BinaryTypeEnumeration.ObjectArray: break; case BinaryTypeEnumeration.StringArray: break; } }
internal BinaryArray(BinarySerializationStreamAnalyzer analyzer) { ObjectID = analyzer.ReadID(); ArrayType = (BinaryArrayTypeEnumeration)analyzer.reader.ReadByte(); Rank = analyzer.reader.ReadInt32(); Lengths = new List<int>(Rank); for(int i = 0;i < Rank;i++) { Lengths.Add(analyzer.reader.ReadInt32()); } if(ArrayType == BinaryArrayTypeEnumeration.SingleOffset || ArrayType == BinaryArrayTypeEnumeration.JaggedOffset || ArrayType == BinaryArrayTypeEnumeration.RectangularOffset) { LowerBounds = new List<int>(Rank); for(int i = 0;i < Rank;i++) LowerBounds.Add(analyzer.reader.ReadInt32()); } BinaryType = (BinaryTypeEnumeration)analyzer.reader.ReadByte(); TypeHelper.GetTypeAdditionalInfo(this, analyzer); }
internal ClassInfo(BinarySerializationStreamAnalyzer analyzer) { ObjectID = analyzer.ReadID(); Name = analyzer.reader.ReadString(); Members = new List<MemberInfo>(analyzer.reader.ReadInt32()); for(int i = 0;i < Members.Capacity;i++) { Members.Add(new MemberInfo()); Members[i].Name = analyzer.reader.ReadString(); Members[i].RelevantObject = this; } }