public static Type GetTypeFromManifestFull(Stream stream, DeserializerSession session) { var type = GetTypeFromManifestName(stream, session); session.TrackDeserializedType(type); return(type); }
private static Type GetTypeFromManifestName(Stream stream, DeserializerSession session) { var typeName = stream.ReadLengthEncodedByteArray(session); var hashcode = stream.ReadInt32(session); return(AntTypeSerializer.GetTypeFromTypeKey(new TypeKey(hashcode, typeName))); }
public static int ReadInt32(this Stream self, DeserializerSession session) { var buffer = session.GetBuffer(4); self.Read(buffer, 0, 4); var res = BitConverter.ToInt32(buffer, 0); return res; }
public override object ReadValue(Stream stream, DeserializerSession session) { var id = stream.ReadInt32(session); var obj = session.GetDeserializedObject(id); return(obj); }
public static uint ReadUInt16(this Stream self, DeserializerSession session) { var buffer = session.GetBuffer(2); self.Read(buffer, 0, 2); var res = BitConverter.ToUInt16(buffer, 0); return res; }
public static object ReadObject(this Stream stream, DeserializerSession session) { var s = session.Serializer.GetDeserializerByManifest(stream, session); var value = s.ReadValue(stream, session); //read the element value return(value); }
public override object ReadValue(Stream stream, DeserializerSession session) { var elementSerializer = session.Serializer.GetDeserializerByManifest(stream, session); //read the element type var elementType = elementSerializer.GetElementType(); //get the element type serializer var length = stream.ReadInt32(session); var array = Array.CreateInstance(elementType, length); //create the array if (session.Serializer.Options.PreserveObjectReferences) { session.TrackDeserializedObject(array); } if (elementType.IsFixedSizeType()) { var size = elementType.GetTypeSize(); var totalSize = size * length; var buffer = session.GetBuffer(totalSize); stream.Read(buffer, 0, totalSize); Buffer.BlockCopy(buffer, 0, array, 0, totalSize); } else { for (var i = 0; i < length; i++) { var value = elementSerializer.ReadValue(stream, session); //read the element value array.SetValue(value, i); //set the element value } } return(array); }
public override object ReadValue(Stream stream, DeserializerSession session) { var surrogateValue = _surrogateSerializer.ReadValue(stream, session); var value = _translator(surrogateValue); return(value); }
public static Type GetTypeFromManifestIndex(Stream stream, DeserializerSession session) { var typeId = stream.ReadUInt16(session); var type = session.GetTypeFromTypeId(typeId); return(type); }
public override object ReadValue(Stream stream, DeserializerSession session) { var size = sizeof (long); var buffer = session.GetBuffer(size); stream.Read(buffer, 0, size); return BitConverter.ToInt64(buffer, 0); }
private static Type GetTypeFromManifestName(Stream stream, DeserializerSession session) { var bytes = stream.ReadLengthEncodedByteArray(session); var byteArr = ByteArrayKey.Create(bytes); return(TypeNameLookup.GetOrAdd(byteArr, b => { var shortName = StringEx.FromUtf8Bytes(b.Bytes, 0, b.Bytes.Length); #if NET45 if (shortName.Contains("System.Private.CoreLib,%core%")) { shortName = shortName.Replace("System.Private.CoreLib,%core%", "mscorlib,%core%"); } #endif #if NETSTANDARD if (shortName.Contains("mscorlib,%core%")) { shortName = shortName.Replace("mscorlib,%core%", "System.Private.CoreLib,%core%"); } #endif var typename = ToQualifiedAssemblyName(shortName); return Type.GetType(typename, true); })); }
public static string ReadString(this Stream stream, DeserializerSession session) { var length = stream.ReadByte(); switch (length) { case 0: return(null); case 255: length = stream.ReadInt32(session); break; default: length--; break; } var buffer = session.GetBuffer(length); stream.Read(buffer, 0, length); var res = StringEx.FromUtf8Bytes(buffer, 0, length); return(res); }
public static byte[] ReadLengthEncodedByteArray(this Stream self, DeserializerSession session) { var length = self.ReadInt32(session); var buffer = new byte[length]; self.Read(buffer, 0, length); return buffer; }
public void ReadSimulation() { var serializer = new Serializer(new SerializerOptions(knownTypes: new List <Type>() { typeof(Poco) })); var session = new DeserializerSession(serializer); var stream = new MemoryStream(); var poco = new Poco() { StringProp = "hello", GuidProp = Guid.NewGuid(), IntProp = 123, DateProp = DateTime.Now, }; serializer.Serialize(poco, stream); stream.Position = 3; //skip forward to payload var type = typeof(Poco); var fields = type.GetFieldInfosForType(); var readAllFields = GetDelegate(type, fields, serializer); var x = (Poco)readAllFields(stream, session); Assert.Equal(poco.DateProp, x.DateProp); Assert.Equal(poco.GuidProp, x.GuidProp); Assert.Equal(poco.IntProp, x.IntProp); Assert.Equal(poco.StringProp, x.StringProp); }
public override object ReadValue(Stream stream, DeserializerSession session) { var buffer = session.GetBuffer(16); stream.Read(buffer, 0, 16); return(new Guid(buffer)); //TODO: cap array? }
private static void ReadValues <T>(int length, Stream stream, DeserializerSession session, LinkedList <T> list) { for (var i = 0; i < length; i++) { var value = (T)stream.ReadObject(session); list.AddLast(value); } }
public static byte[] ReadLengthEncodedByteArray(this Stream self, DeserializerSession session) { var length = self.ReadInt32(session); var buffer = new byte[length]; self.Read(buffer, 0, length); return(buffer); }
public override object ReadValue(Stream stream, DeserializerSession session) { var size = sizeof(ushort); var buffer = session.GetBuffer(size); stream.Read(buffer, 0, size); return(BitConverter.ToUInt16(buffer, 0)); }
private static void ReadValues <T>(int length, Stream stream, DeserializerSession session, T[] array) { for (var i = 0; i < length; i++) { var value = (T)stream.ReadObject(session); array[i] = value; } }
private static void ReadValues(int length, Stream stream, DeserializerSession session, Array array) { for (var i = 0; i < length; i++) { var value = stream.ReadObject(session); array.SetValue(value, i); } }
public static uint ReadUInt16(this Stream self, DeserializerSession session) { var buffer = session.GetBuffer(2); self.Read(buffer, 0, 2); var res = BitConverter.ToUInt16(buffer, 0); return(res); }
public static int ReadInt32(this Stream self, DeserializerSession session) { var buffer = session.GetBuffer(4); self.Read(buffer, 0, 4); var res = BitConverter.ToInt32(buffer, 0); return(res); }
static object Reader(Stream stream, DeserializerSession session) { var owner = stream.ReadObject(session) as Type; var arguments = stream.ReadObject(session) as Type[]; var ctor = owner.GetConstructor(arguments); return(ctor); }
public override object ReadValue(Stream stream, DeserializerSession session) { var size = sizeof(long); var buffer = session.GetBuffer(size); stream.Read(buffer, 0, size); var ticks = BitConverter.ToInt64(buffer, 0); return(new DateTime(ticks)); }
public override object ReadValue(Stream stream, DeserializerSession session) { var res = stream.ReadLengthEncodedByteArray(session); if (session.Serializer.Options.PreserveObjectReferences) { session.TrackDeserializedObject(res); } return(res); }
static object Reader(Stream stream, DeserializerSession session) { var address = StringSerializer.ReadValueImpl(stream, session); var id = StringSerializer.ReadValueImpl(stream, session); var pid = new PID(address, id); session.TrackDeserializedObject(pid); return(pid); }
static object Reader(Stream stream, DeserializerSession session) { var name = stream.ReadString(session); var owner = stream.ReadObject(session) as Type; var property = owner .GetProperty(name, BindingFlags.Static | BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); return(property); }
public override object ReadValue(Stream stream, DeserializerSession session) { var surrogateValue = _surrogateSerializer.ReadValue(stream, session); var value = _translator(surrogateValue); if (_preserveObjectReferences) { session.ReplaceOrAddTrackedDeserializedObject(surrogateValue, value); } return(value); }
private static Type GetTypeFromManifestName(Stream stream, DeserializerSession session) { var bytes = (byte[])ByteArraySerializer.Instance.ReadValue(stream, session); return(TypeNameLookup.GetOrAdd(bytes, b => { var shortName = Encoding.UTF8.GetString(b); var typename = Utils.ToQualifiedAssemblyName(shortName); return Type.GetType(typename, true); })); }
private static Array ReadValues2D(Stream stream, DeserializerSession session, Array array) { for (var i = array.GetLowerBound(0); i <= array.GetUpperBound(0); i++) { for (var j = array.GetLowerBound(1); j <= array.GetUpperBound(1); j++) { var value = stream.ReadObject(session); array.SetValue(value, i, j); } } return(array); }
public override object ReadValue(Stream stream, DeserializerSession session) { try { return(_reader(stream, session)); } catch (Exception e) { throw new SerializationException( $"Failed to deserialize object of type [{Type}] from the stream. Cause: {e.Message}", e); } }
private static Type GetTypeFromManifestName(Stream stream, DeserializerSession session) { var bytes = stream.ReadLengthEncodedByteArray(session); var byteArr = ByteArrayKey.Create(bytes); return(TypeNameLookup.GetOrAdd(byteArr, b => { var shortName = StringEx.FromUtf8Bytes(b.Bytes, 0, b.Bytes.Length); var typename = ToQualifiedAssemblyName(shortName); return Type.GetType(typename, true); })); }
static object Reader(Stream stream, DeserializerSession session) { var name = stream.ReadString(session); var owner = stream.ReadObject(session) as Type; var arguments = stream.ReadObject(session) as Type[]; var method = owner.GetMethod(name, BindingFlags.Static | BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic, null, CallingConventions.Any, arguments, null); return(method); }
public static Type GetTypeFromManifestVersion(Stream stream, DeserializerSession session) { var type = GetTypeFromManifestName(stream, session); var fieldCount = stream.ReadByte(); for (var i = 0; i < fieldCount; i++) { var fieldName = stream.ReadLengthEncodedByteArray(session); } session.TrackDeserializedTypeWithVersion(type, null); return type; }
public static Type GetTypeFromManifestVersion(Stream stream, DeserializerSession session) { var type = GetTypeFromManifestName(stream, session); var fieldCount = stream.ReadByte(); for (var i = 0; i < fieldCount; i++) { var fieldName = stream.ReadLengthEncodedByteArray(session); } session.TrackDeserializedTypeWithVersion(type, null); return(type); }
public override object ReadValue(Stream stream, DeserializerSession session) { var shortname = stream.ReadString(session); if (shortname == null) return null; var name = TypeEx.ToQualifiedAssemblyName(shortname); var type = Type.GetType(name,true); //add the deserialized type to lookup if (session.Serializer.Options.PreserveObjectReferences) { session.TrackDeserializedObject(type); } return type; }
public override object ReadValue(Stream stream, DeserializerSession session) { var length = stream.ReadByte(); if (length == 0) return null; length --; if (length == 254) length = stream.ReadInt32(session); var buffer = session.GetBuffer(length); stream.Read(buffer, 0, length); var res = Encoding.UTF8.GetString(buffer, 0, length); return res; }
public override object ReadValue(Stream stream, DeserializerSession session) { var bytes = session.GetBuffer(Int32Serializer.Size); var parts = new[] { Int32Serializer.ReadValueImpl(stream, bytes), Int32Serializer.ReadValueImpl(stream, bytes), Int32Serializer.ReadValueImpl(stream, bytes), Int32Serializer.ReadValueImpl(stream, bytes) }; var sign = (parts[3] & 0x80000000) != 0; var scale = (byte) ((parts[3] >> 16) & 0x7F); var newValue = new decimal(parts[0], parts[1], parts[2], sign, scale); return newValue; }
public override object ReadValue(Stream stream, DeserializerSession session) { var length = (int) Int32Serializer.Instance.ReadValue(stream, session); if (length == -1) return null; var buffer = session.GetBuffer(length); stream.Read(buffer, 0, length); var shortname = Encoding.UTF8.GetString(buffer, 0, length); var name = Utils.ToQualifiedAssemblyName(shortname); var type = Type.GetType(name); //add the deserialized type to lookup if (session.Serializer.Options.PreserveObjectReferences) { session.TrackDeserializedObject(type); } return type; }
public static string ReadString(this Stream stream, DeserializerSession session) { var length = stream.ReadByte(); switch (length) { case 0: return null; case 255: length = stream.ReadInt32(session); break; default: length--; break; } var buffer = session.GetBuffer(length); stream.Read(buffer, 0, length); var res = StringEx.FromUtf8Bytes(buffer, 0, length); return res; }
public override object ReadValue(Stream stream, DeserializerSession session) { var id = stream.ReadInt32(session); var obj = session.GetDeserializedObject(id); return obj; }
private static Type GetTypeFromManifestName(Stream stream, DeserializerSession session) { var bytes = (byte[]) ByteArraySerializer.Instance.ReadValue(stream, session); return TypeNameLookup.GetOrAdd(bytes, b => { var shortName = Encoding.UTF8.GetString(b); var typename = Utils.ToQualifiedAssemblyName(shortName); return Type.GetType(typename, true); }); }
public override object ReadValue(Stream stream, DeserializerSession session) { return _reader(stream, session); }
public override object ReadValue(Stream stream, DeserializerSession session) { var buffer = session.GetBuffer(16); stream.Read(buffer, 0, 16); return new Guid(buffer); //TODO: cap array? }
public static Type GetTypeFromManifestIndex(Stream stream, DeserializerSession session) { var typeId = stream.ReadUInt16(session); var type = session.GetTypeFromTypeId(typeId); return type; }
private static Type GetTypeFromManifestName(Stream stream, DeserializerSession session) { var bytes = stream.ReadLengthEncodedByteArray(session); var byteArr = ByteArrayKey.Create(bytes); return TypeNameLookup.GetOrAdd(byteArr, b => { var shortName = StringEx.FromUtf8Bytes(b.Bytes, 0, b.Bytes.Length); var typename = ToQualifiedAssemblyName(shortName); return Type.GetType(typename, true); }); }
public override object ReadValue(Stream stream, DeserializerSession session) { var b = stream.ReadByte(); return b != 0; }
public static Type GetTypeFromManifestIndex(int typeId, DeserializerSession session) { var type = session.GetTypeFromTypeId(typeId); return type; }
public static Type GetTypeFromManifestFull(Stream stream, DeserializerSession session) { var type = GetTypeFromManifestName(stream, session); session.TrackDeserializedType(type); return type; }
public static object ReadObject(this Stream stream, DeserializerSession session) { var s = session.Serializer.GetDeserializerByManifest(stream, session); var value = s.ReadValue(stream, session); //read the element value return value; }
public override object ReadValue(Stream stream, DeserializerSession session) { return stream.ReadLengthEncodedByteArray(session); }
public override object ReadValue(Stream stream, DeserializerSession session) { var surrogateValue = _surrogateSerializer.ReadValue(stream, session); var value = _translator(surrogateValue); return value; }
public override object ReadValue(Stream stream, DeserializerSession session) { throw new NotSupportedException(); }
public override object ReadValue(Stream stream, DeserializerSession session) { return null; }
public override object ReadValue(Stream stream, DeserializerSession session) { return (sbyte) stream.ReadByte(); }
public abstract object ReadValue(Stream stream, DeserializerSession session);