/// <summary> /// Deserilizes a Session object from a stream /// </summary> /// <param name="reader">The stream containing the raw Session data</param> public static Session Deserialize(string FileName, BinaryReader reader) { Network.MTProtoHelper Helper = null; if (BoolUtil.Deserialize(reader)) { Helper = MTProtoHelper.Deserialize(BytesUtil.Deserialize(reader)); } TLObject TLUser = null; if (BoolUtil.Deserialize(reader)) { TLUser = TLObject.Deserialize(reader); } var SessionExpires = IntegerUtil.Deserialize(reader); DataCenter DataCenter = null; if (BoolUtil.Deserialize(reader)) { DataCenter = DataCenter.Deserialize(BytesUtil.Deserialize(reader)); } var session = new Session(FileName) { Helper = Helper, TLUser = TLUser, SessionExpires = SessionExpires, DataCenter = DataCenter }; PeerManager.Deserialize(reader).ToList().ForEach(x => session.KnownPeers.AddOrUpdatePeer(x.AsTLObject())); return(session); }
/// <summary> /// Creates a new instance. /// </summary> /// <param name="State">A Reference (important) to the state to support serialization and packaging</param> public MessagePacker(ref MTProtoHelper State) { _State = State; }