public void WriteReadInt_1() { var paket = new Paket(); paket.Offset = 8; SimpleTypeWriter.Write(1, paket); paket.Offset = 8; Assert.Equal(1, SimpleTypeReader.ReadInt(paket)); }
public void Float() { for (float i = -1000000; i < 1000000; i += 1.37f) { var paket = new Paket(); paket.Offset = 7; SimpleTypeWriter.Write(i, paket); paket.Offset = 7; Assert.Equal(i, SimpleTypeReader.ReadFloat(paket)); } }
public void UInt() { uint prev = 0; for (uint i = 0; prev <= i; i += 29787) { prev = i; var paket = new Paket(); paket.Offset = 7; SimpleTypeWriter.Write(i, paket); paket.Offset = 7; Assert.Equal(i, SimpleTypeReader.ReadUInt(paket)); } }
public void Deserialize(Paket paket) { TestString = SimpleTypeReader.ReadString(paket); TestNumber = SimpleTypeReader.ReadInt(paket); }
public void Deserialize(Paket paket) { ClientVersion = SimpleTypeReader.ReadInt(paket); }
public void Deserialize(Paket paket) { ServerName = SimpleTypeReader.ReadString(paket); ServerVersion = SimpleTypeReader.ReadInt(paket); RunningId = SimpleTypeReader.ReadInt(paket); }
private static SimpleList<ComplexTypeDef> ReadComplexTypeDefs(SimpleTypeReader simpleTypeReader) { var complextTypeDefs = new SimpleList<ComplexTypeDef>(); var serializedObjDefCount = simpleTypeReader.Read<int>(); for (var i = 0; i < serializedObjDefCount; i++) { var complexTypeMark = simpleTypeReader.Read<ComplexTypeMark>(); if (complexTypeMark == ComplexTypeMark.Array) { #region Array var id = simpleTypeReader.Read<int>(); var typeInfoId = simpleTypeReader.Read<int>(); var itemsCount = simpleTypeReader.Read<int>(); var items = new SimpleList<object>(itemsCount); for (var j = 0; j < itemsCount; j++) items.Add(ReadAndCheckNull(simpleTypeReader)); var indiciesCount = simpleTypeReader.Read<byte>(); var indicies = new SimpleList<int>(indiciesCount); for (var j = 0; j < indiciesCount; j++) indicies.Add(simpleTypeReader.Read<int>()); complextTypeDefs.Add(new ArrayDef { Id = id, TypeInfoId = typeInfoId, Items = items, Indicies = indicies }); #endregion } else if (complexTypeMark == ComplexTypeMark.List) { #region List var id = simpleTypeReader.Read<int>(); var typeInfoId = simpleTypeReader.Read<int>(); var itemsCount = simpleTypeReader.Read<int>(); var items = new SimpleList<object>(itemsCount); for (var j = 0; j < itemsCount; j++) items.Add(ReadAndCheckNull(simpleTypeReader)); complextTypeDefs.Add(new ListDef { Id = id, TypeInfoId = typeInfoId, Items = items }); #endregion } else if (complexTypeMark == ComplexTypeMark.Dictionary) { #region Dictionary var id = simpleTypeReader.Read<int>(); var typeInfoId = simpleTypeReader.Read<int>(); var keysCount = simpleTypeReader.Read<int>(); var keys = new SimpleList<object>(keysCount); for (var j = 0; j < keysCount; j++) keys.Add(ReadAndCheckNull(simpleTypeReader)); var valuesCount = simpleTypeReader.Read<int>(); var values = new SimpleList<object>(valuesCount); for (var j = 0; j < keysCount; j++) values.Add(ReadAndCheckNull(simpleTypeReader)); complextTypeDefs.Add(new DictionaryDef { Id = id, TypeInfoId = typeInfoId, Keys = keys, Values = values }); #endregion } else if (complexTypeMark == ComplexTypeMark.UserDefined) { #region UserDefined var id = simpleTypeReader.Read<int>(); var typeInfoId = simpleTypeReader.Read<int>(); var namesCount = simpleTypeReader.Read<byte>(); var names = new SimpleList<byte>(namesCount); for (var j = 0; j < namesCount; j++) names.Add(simpleTypeReader.Read<byte>()); var valuesCount = simpleTypeReader.Read<byte>(); var values = new SimpleList<object>(valuesCount); for (var j = 0; j < namesCount; j++) values.Add(ReadAndCheckNull(simpleTypeReader)); complextTypeDefs.Add(new UserDefinedDef { Id = id, TypeInfoId = typeInfoId, Names = names, Values = values }); #endregion } else throw new Exception(string.Format("Unknown ComplexTypeMark {0}", complexTypeMark)); } return complextTypeDefs; }
private static object ReadAndCheckNull(SimpleTypeReader simpleTypeReader) { var isNull = simpleTypeReader.Read<bool>(); return isNull ? null : simpleTypeReader.ReadWithMark(); }
private SimpleDefContext ReadSimpleDefContext(byte[] bytes) { using (var simpleTypeReader = new SimpleTypeReader(_simpleTypeHelper, _encoding, bytes)) { var value = simpleTypeReader.ReadWithMark(); return new SimpleDefContext { SimpleTypeDef = new SimpleTypeDef { Value = value } }; } }
private DefContext ReadComplexDefContext(byte[] bytes) { using (var simpleTypeReader = new SimpleTypeReader(_simpleTypeHelper, _encoding, bytes)) { var typeInfos = ReadTypeInfos(simpleTypeReader); var complextTypeDefinitions = ReadComplexTypeDefs(simpleTypeReader); return new ComplexDefContext { TypeInfos = typeInfos, ComplexTypeDefs = complextTypeDefinitions }; } }
private static SimpleList<TypeInfo> ReadTypeInfos(SimpleTypeReader simpleTypeReader) { var typeInfos = new SimpleList<TypeInfo>(); var serializedTypeInfoCount = simpleTypeReader.Read<int>(); for (var i = 0; i < serializedTypeInfoCount; i++) { var id = simpleTypeReader.Read<int>(); var typeName = simpleTypeReader.Read<string>(); var isEnumerable = simpleTypeReader.Read<bool>(); var typeInfo = new TypeInfo { Id = id, TypeName = typeName, IsEnumerable = isEnumerable }; if (!isEnumerable) { var propertyNamesCount = simpleTypeReader.Read<byte>(); var propertyNames = new SimpleList<string>(propertyNamesCount); for (var j = 0; j < propertyNamesCount; j++) propertyNames.Add(simpleTypeReader.Read<string>()); typeInfo.PropertyNames = propertyNames; } typeInfos.Add(typeInfo); } return typeInfos; }