protected override void Deserialize(DeserializeContext context, byte version) { base.Deserialize(context, version); Cookie = context.ReadObject<Signed<SignCheckCookie>>(); Certificate = context.ReadObject<Certificate>(); SignDateTime = context.ReadDateTime(); }
public static void RunTest() { TreeTest input = new TreeTest(43); TreeTest common = new TreeTest(66); common.other.Add(new TreeTest(100)); input.other.Add(common); input.other.Add(common); input.other.Add(common); MemoryStream ms = new MemoryStream(); BinaryWriter bw = new BinaryWriter(ms); SerializeContext serializeContext = new SerializeContext(bw); Field.Serialize(serializeContext, bw, ref input); BinaryReader br = new BinaryReader(new MemoryStream(ms.ToArray())); DeserializeContext deserializeContext = new DeserializeContext(br); TreeTest result = null; Field.Deserialize(deserializeContext, br, ref result); Debug.Assert(input.Equals(result)); foreach (var item in result.other) { // Check the graph works: Debug.Assert(ReferenceEquals(item, result.other[0])); } }
protected override void Deserialize(DeserializeContext context, byte version) { base.Deserialize(context, version); Request = context.ReadObject<SignatureRequest>(); SecureRequest = context.ReadObject<Secure<SignatureRequest>>(); SecureRequestInfo = context.ReadObject<Secure<SignatureRequestInfo>>(); }
internal static void DeserializeDelegateField(DeserializeContext context, BinaryReader br, ref MulticastDelegate d, Type delegateType) { Debug.Assert(delegateType.BaseType == typeof(MulticastDelegate)); var multicastCount = br.ReadSmallInt32(); if (multicastCount == 0) { d = null; } else if (multicastCount == 1) { Delegate singleDelegate = null; DeserializeDelegate(context, br, ref singleDelegate, delegateType); d = (MulticastDelegate)singleDelegate; } else { var multicastList = new Delegate[multicastCount]; // TODO: no allocation version for (var i = 0; i < multicastList.Length; i++) { DeserializeDelegate(context, br, ref multicastList[i], delegateType); } d = (MulticastDelegate)Delegate.Combine(multicastList); } }
static void TestPrimitiveType() { PrimitiveTypes subject = new PrimitiveTypes() { @bool = true, @float = 3.14159f, @double = 9.999, @char = 'q', @int = 42, @sbyte = 1 }; MemoryStream ms = new MemoryStream(); BinaryWriter bw = new BinaryWriter(ms); SerializeContext serializeContext = new SerializeContext(bw); Field.Serialize(serializeContext, bw, ref subject); BinaryReader br = new BinaryReader(new MemoryStream(ms.ToArray())); DeserializeContext deserializeContext = new DeserializeContext(br); PrimitiveTypes result = default(PrimitiveTypes); Field.Deserialize(deserializeContext, br, ref result); Debug.Assert(object.Equals(result, subject)); }
public static void DeserializeDelegateField <T>(DeserializeContext context, BinaryReader br, ref T d) where T : class // MulticastDelegate constraint not allowed by C# { var mulitcastDelegate = d as MulticastDelegate; DeserializeDelegateField(context, br, ref mulitcastDelegate, typeof(T)); d = mulitcastDelegate as T; }
protected override void Deserialize(DeserializeContext context, byte version) { base.Deserialize(context, version); if (Exception == null) { SignChecks = context.ReadObjectList<Signed<SignatureRequestSignCheck>>(); EncryptedSignatureRequest = context.ReadBytes(); } }
public static void DeserializeField(DeserializeContext context, BinaryReader br, ref string value) { if (!context.Walk(ref value)) { return; } value = br.ReadString(); // TODO: one day we might like to not allocate here. context.VisitObject(value); }
public Authority(DeserializeContext context, BaseParameters parameters) { Index = context.ReadInt32(); this.polynomial = context.ReadObject<Polynomial>(); if (!context.ReadBoolean()) { this.secretKeyPart = context.ReadBigInt(); } this.parameters = parameters; }
protected override int?DeserializeBase(BinaryReader reader, Type objectType, DeserializeContext context) { var isNull = reader.ReadBoolean(); if (isNull) { return(null); } else { return(reader.ReadInt32()); } }
private static void InstallLoopSystem <TGameState>() { LoopSystem <TGameState> .serialize = (BinaryWriter bw, ref TGameState gameState, object userData) => { var serializeContext = new SerializeContext(bw, false, (DefinitionObjectTable)userData); Field.Serialize(serializeContext, bw, ref gameState); }; LoopSystem <TGameState> .deserialize = (BinaryReader br, ref TGameState gameState, object userData) => { var deserializeContext = new DeserializeContext(br, (DefinitionObjectTable)userData); Field.Deserialize(deserializeContext, br, ref gameState); }; }
public static void DeserializeArrayField <T>(DeserializeContext context, BinaryReader br, ref T[] array) { if (!context.Walk(ref array)) { return; } array = new T[br.ReadSmallInt32()]; context.VisitObject(array); for (var i = 0; i < array.Length; i++) { Field.Deserialize(context, br, ref array[i]); } }
public static void DeserializeField <T>(DeserializeContext context, BinaryReader br, ref UniqueList <T> value) { int count = br.ReadSmallInt32(); var list = new List <T>(count); value = new UniqueList <T>(list); for (int i = 0; i < count; i++) { T item = default(T); Field.Deserialize(context, br, ref item); list.Add(item); } }
public static void Deserialize <T>(DeserializeContext context, BinaryReader br, LinkedList <T> list) { context.VisitObject(list); var count = br.ReadSmallInt32(); list.Clear(); for (var i = 0; i < count; i++) { var item = default(T); Field.Deserialize(context, br, ref item); list.AddLast(item); } }
public static void Deserialize <T>(DeserializeContext context, BinaryReader br, Queue <T> queue) { context.VisitObject(queue); var count = br.ReadSmallInt32(); queue.Clear(); for (var i = 0; i < count; i++) { var item = default(T); Field.Deserialize(context, br, ref item); queue.Enqueue(item); } }
public static void Deserialize <T>(DeserializeContext context, BinaryReader br, Stack <T> stack) { context.VisitObject(stack); var count = br.ReadSmallInt32(); stack.Clear(); for (var i = 0; i < count; i++) { var item = default(T); Field.Deserialize(context, br, ref item); stack.Push(item); } }
static void TestType(Type type) { MemoryStream ms = new MemoryStream(); BinaryWriter bw = new BinaryWriter(ms); SerializeContext serializeContext = new SerializeContext(bw); Field.Serialize(serializeContext, bw, ref type); BinaryReader br = new BinaryReader(new MemoryStream(ms.ToArray())); DeserializeContext deserializeContext = new DeserializeContext(br); Type result = null; Field.Deserialize(deserializeContext, br, ref result); Debug.Assert(type == result); }
public static void Deserialize <TKey, TValue>(DeserializeContext context, BinaryReader br, OrderedDictionary <TKey, TValue> dictionary) { context.VisitObject(dictionary); int count = br.ReadSmallInt32(); dictionary.Clear(); for (int i = 0; i < count; i++) { TKey key = default(TKey); TValue value = default(TValue); Field.Deserialize(context, br, ref key); Field.Deserialize(context, br, ref value); dictionary.Add(key, value); } }
public static void DeserializeField(DeserializeContext context, BinaryReader br, ref StringBuilder stringBuilder) { if (!context.Walk(ref stringBuilder)) { return; } var length = br.ReadSmallInt32(); stringBuilder = new StringBuilder(length); stringBuilder.Length = length; context.VisitObject(stringBuilder); for (var i = 0; i < length; i++) { stringBuilder[i] = br.ReadChar(); } }
static void TestWithDispatch(BaseClass input) { MemoryStream ms = new MemoryStream(); BinaryWriter bw = new BinaryWriter(ms); SerializeContext serializeContext = new SerializeContext(bw); Field.Serialize(serializeContext, bw, ref input); BinaryReader br = new BinaryReader(new MemoryStream(ms.ToArray())); DeserializeContext deserializeContext = new DeserializeContext(br); BaseClass result = null; Field.Deserialize(deserializeContext, br, ref result); Debug.Assert(input.GetType() == result.GetType()); }
public static void DeserializeField(DeserializeContext context, BinaryReader br, ref Type type) { var moduleId = br.ReadInt32(); if (moduleId == -1) { type = null; return; } var module = StaticModuleTable.idToModule[moduleId]; var typeId = br.ReadInt32(); type = module.ResolveType(typeId); if (type == null) { throw new InvalidOperationException("Failed to find type " + typeId + " in module " + moduleId); } }
private static void DeserializeDelegate(DeserializeContext context, BinaryReader br, ref Delegate d, Type delegateType) { Debug.Assert(StaticDelegateTable.delegateTypeTable.ContainsKey(delegateType)); var delegateTypeInfo = StaticDelegateTable.delegateTypeTable[delegateType]; var delegateMethodInfo = delegateTypeInfo.GetMethodInfoForId(br.ReadInt32()); object target = null; if (delegateMethodInfo.canHaveTarget) { if (context.Walk(ref target)) { target = StaticDispatchTable.DeserializationDispatcher(context, br); // (see comment in the SerializeDelegate method) } } d = Delegate.CreateDelegate(delegateType, target, delegateMethodInfo.method); }
public static void DeserializeArray2DField <T>(DeserializeContext context, BinaryReader br, ref T[,] array) { if (!context.Walk(ref array)) { return; } int length0, length1; array = new T[length0 = br.ReadSmallInt32(), length1 = br.ReadSmallInt32()]; context.VisitObject(array); for (var i = 0; i < length0; i++) { for (var j = 0; j < length1; j++) // NOTE: Arrays are contiguious on their rightmost (last) dimension { Field.Deserialize(context, br, ref array[i, j]); } } }
static void TestArrays() { int[] intArray = { 1, 2, 3, 4 }; SimpleClass[] classArray = { new SimpleClass(1), new SimpleClass(2), new SimpleClass(3) }; SimpleStruct[] structArray = { new SimpleStruct(1), new SimpleStruct(2), new SimpleStruct(3) }; int[,] int2DArray = { { 1, 2 }, { 3, 4 } }; MemoryStream ms = new MemoryStream(); BinaryWriter bw = new BinaryWriter(ms); SerializeContext serializeContext = new SerializeContext(bw); Field.Serialize(serializeContext, bw, ref intArray); Field.Serialize(serializeContext, bw, ref classArray); Field.Serialize(serializeContext, bw, ref structArray); Field.Serialize(serializeContext, bw, ref int2DArray); BinaryReader br = new BinaryReader(new MemoryStream(ms.ToArray())); DeserializeContext deserializeContext = new DeserializeContext(br); int[] intArrayResult = null; SimpleClass[] classArrayResult = null; SimpleStruct[] structArrayResult = null; int[,] int2DArrayResult = null; Field.Deserialize(deserializeContext, br, ref intArrayResult); Field.Deserialize(deserializeContext, br, ref classArrayResult); Field.Deserialize(deserializeContext, br, ref structArrayResult); Field.Deserialize(deserializeContext, br, ref int2DArrayResult); Debug.Assert(intArray.SequenceEqual(intArrayResult)); Debug.Assert(classArray.SequenceEqual(classArrayResult)); Debug.Assert(structArray.SequenceEqual(structArrayResult)); Debug.Assert(FlattenArray(int2DArray).SequenceEqual(FlattenArray(int2DArrayResult))); }
public static void RunTestWithDefinitions() { TreeTest definition = new TreeTest(66); TreeTest definition2 = new TreeTest(100); definition.other.Add(definition2); TreeTest input = new TreeTest(43); input.other.Add(definition); input.other.Add(definition); input.other.Add(definition); var definitionTable = GetDefinitionTable(definition); MemoryStream ms = new MemoryStream(); BinaryWriter bw = new BinaryWriter(ms); SerializeContext serializeContext = new SerializeContext(bw, false, definitionTable); Field.Serialize(serializeContext, bw, ref input); BinaryReader br = new BinaryReader(new MemoryStream(ms.ToArray())); DeserializeContext deserializeContext = new DeserializeContext(br, definitionTable); TreeTest result = null; Field.Deserialize(deserializeContext, br, ref result); Debug.Assert(input.Equals(result)); foreach (var item in result.other) { // Check that we refer back to definition objects Debug.Assert(ReferenceEquals(item, definition)); } Debug.Assert(ReferenceEquals(definition.other[0], definition2)); }
public static void RunTest() { MemoryStream ms = new MemoryStream(); BinaryWriter bw = new BinaryWriter(ms); SerializeContext serializeContext = new SerializeContext(bw); DelegateTest testObject = new DelegateTest(); testObject.subject = new DelegateTestSubject(); testObject.frob1 = testObject.subject.Frob; testObject.frob2 = () => testObject.subject.frobCount = 100; testObject.set = testObject.subject.Set; testObject.subject.frobCount = -999; Field.Serialize(serializeContext, bw, ref testObject); BinaryReader br = new BinaryReader(new MemoryStream(ms.ToArray())); DeserializeContext deserializeContext = new DeserializeContext(br); DelegateTest result = null; Field.Deserialize(deserializeContext, br, ref result); // Tests: Debug.Assert(!ReferenceEquals(testObject.subject, result.subject)); Debug.Assert(testObject.subject.frobCount == result.subject.frobCount); result.subject.frobCount = 0; result.frob1(); Debug.Assert(result.subject.frobCount == 1); result.frob2(); Debug.Assert(result.subject.frobCount == 100); result.set(5); Debug.Assert(result.subject.frobCount == 5); Debug.Assert(testObject.subject.frobCount == -999); // <- just to be sure }
public static void DeserializeArray3DField <T>(DeserializeContext context, BinaryReader br, ref T[,,] array) { if (!context.Walk(ref array)) { return; } int length0, length1, length2; array = new T[length0 = br.ReadSmallInt32(), length1 = br.ReadSmallInt32(), length2 = br.ReadSmallInt32()]; context.VisitObject(array); for (var i = 0; i < length0; i++) { for (var j = 0; j < length1; j++) { for (var k = 0; k < length2; k++) { Field.Deserialize(context, br, ref array[i, j, k]); } } } }
/// <summary> /// Deserializes binary data to object. /// </summary> /// <param name="context">Context for deserialization</param> protected override void Deserialize(DeserializeContext context, byte version) { base.Deserialize(context, version); Config = context.ReadObject<RemoteConfig>(); Groups = context.ReadObjectList<Group>(); }
/// <summary> /// Creates an object by deserializing from binary data. /// </summary> /// <param name="context">Context for deserialization.</param> public FetchConfigResponse(DeserializeContext context, byte version) : base(context, version) { }
public static void Deserialize <T>(DeserializeContext context, BinaryReader br, HashSet <T> hashSet) { throw new InvalidOperationException("This collection is not network safe"); }
public static void DeserializeField(DeserializeContext context, BinaryReader br, ref StateProvider.State value) { context.Walk(ref value); }
/// <summary> /// Deserializes binary data to object. /// </summary> /// <param name="context">Context for deserialization</param> protected override void Deserialize(DeserializeContext context, byte version) { base.Deserialize(context, version); SystemName = context.ReadMultiLanguageString(); WelcomeMessage = context.ReadMultiLanguageString(); Image = context.ReadBytes(); Url = context.ReadString(); UpdateVersion = context.ReadString(); UpdateUrl = context.ReadString(); }
public static void Deserialize(DeserializeContext context, BinaryReader br, ref ImageBundle value) { throw new InvalidOperationException(); }
/// <summary> /// Creates an object by deserializing from binary data. /// </summary> /// <param name="context">Context for deserialization.</param> public VotingParameters(DeserializeContext context, byte version) : base(context, version) { }
public Voting(DeserializeContext context) : base(context) { }
public static object DeserializationDispatcher(DeserializeContext context, BinaryReader br) { return(deserializeDispatchDelegate(context, br)); }
protected override void Deserialize(DeserializeContext context, byte version) { base.Deserialize(context, version); ComplainingAuthorityIndex = context.ReadInt32(); CertificateStorage = context.ReadObject<CertificateStorage>(); SignedParameters = context.ReadObject<Signed<VotingParameters>>(); AllShareParts = context.ReadObject<AllShareParts>(); TrapDoors = context.ReadObjectDictionary<TrapDoor>(); Authorities = context.ReadObjectDictionary<Certificate>(); }
/// <summary> /// Creates an object by deserializing from binary data. /// </summary> /// <param name="context">Context for deserialization.</param> public SharePart(DeserializeContext context, byte version) : base(context, version) { }
/// <summary> /// Deserializes binary data to object. /// </summary> /// <param name="context">Context for deserialization</param> protected override void Deserialize(DeserializeContext context, byte version) { base.Deserialize(context, version); VotingId = context.ReadGuid(); VoterId = context.ReadGuid(); Ballots = context.ReadObjectList<Ballot>(); Date = context.ReadDateTime(); }
public static void Deserialize <T>(DeserializeContext context, BinaryReader br, LinkedListNode <T> value) { throw new NotSupportedException("Cannot serialize a linked list node directly"); }
/// <summary> /// Deserializes binary data to object. /// </summary> /// <param name="context">Context for deserialization</param> protected override void Deserialize(DeserializeContext context, byte version) { base.Deserialize(context, version); }
/// <summary> /// Creates an object by deserializing from binary data. /// </summary> /// <param name="context">Context for deserialization.</param> public PushEnvelopeResponse(DeserializeContext context, byte version) : base(context, version) { }
/// <summary> /// Deserializes binary data to object. /// </summary> /// <param name="context">Context for deserialization</param> protected override void Deserialize(DeserializeContext context, byte version) { base.Deserialize(context, version); VotingId = context.ReadGuid(); Title = context.ReadMultiLanguageString(); Description = context.ReadMultiLanguageString(); Url = context.ReadMultiLanguageString(); VotingBeginDate = context.ReadDateTime(); VotingEndDate = context.ReadDateTime(); GroupId = context.ReadInt32(); }
/// <summary> /// Creates an object by deserializing from binary data. /// </summary> /// <param name="context">Context for deserialization.</param> public FetchSignatureResponseResponse(DeserializeContext context, byte version) : base(context, version) { }
/// <summary> /// Deserializes binary data to object. /// </summary> /// <param name="context">Context for deserialization</param> protected override void Deserialize(DeserializeContext context, byte version) { base.Deserialize(context, version); AuthorityIndex = context.ReadInt32(); EncryptedShares = context.ReadObjectList<Encrypted<Share>>(); VerificationValues = context.ReadObjectList<VerificationValue>(); }
protected override void Deserialize(DeserializeContext context) { base.Deserialize(context); P = context.ReadBigInt(); Q = context.ReadBigInt(); G = context.ReadBigInt(); F = context.ReadBigInt(); Thereshold = context.ReadInt32(); AuthorityCount = context.ReadInt32(); MaxVota = context.ReadInt32(); OptionCount = context.ReadInt32(); ProofCount = context.ReadInt32(); }
public BadShareProof(DeserializeContext context, byte version) : base(context, version) { }
/// <summary> /// Creates an object by deserializing from binary data. /// </summary> /// <param name="context">Context for deserialization.</param> public RemoteConfig(DeserializeContext context, byte version) : base(context, version) { }
protected override void Deserialize(DeserializeContext context) { base.Deserialize(context); Id = context.ReadGuid(); Title = context.ReadMultiLanguageString(); Description = context.ReadMultiLanguageString(); this.questions = context.ReadObjectList<Question>(); VotingBeginDate = context.ReadDateTime(); VotingEndDate = context.ReadDateTime(); AuthorityCount = context.ReadInt32(); }
/// <summary> /// Creates an object by deserializing from binary data. /// </summary> /// <param name="context">Context for deserialization.</param> public PushSignCheckCookieResponse(DeserializeContext context, byte version) : base(context, version) { }
void IProjectItem.Deserialize(DeserializeContext context, XmlElement node) { context.Add(this, node); Id = node["Id"].GetValue(Guid.Empty); name = node["Name"].GetValue(Strings.Untitled); }
/// <summary> /// Deserializes binary data to object. /// </summary> /// <param name="context">Context for deserialization</param> protected override void Deserialize(DeserializeContext context, byte version) { base.Deserialize(context, version); if (Exception == null) { EncryptedCode = context.ReadBytes(); } }
/// <summary> /// Deserializes binary data to object. /// </summary> /// <param name="context">Context for deserialization</param> protected override void Deserialize(DeserializeContext context, byte version) { base.Deserialize(context, version); VoteReceipt = context.ReadObject<Signed<VoteReceipt>>(); }
public static void Deserialize(DeserializeContext context, BinaryReader br, ref Sprite value) { Debug.Assert(false); // Shouldn't happen! (Can't store Sprite in game state) throw new InvalidOperationException(); }
/// <summary> /// Deserializes binary data to object. /// </summary> /// <param name="context">Context for deserialization</param> protected override void Deserialize(DeserializeContext context, byte version) { base.Deserialize(context, version); Status = (SignatureResponseStatus)context.ReadInt32(); SignatureResponse = context.ReadObject<Signed<SignatureResponse>>(); }
/// <summary> /// Deserializes binary data to object. /// </summary> /// <param name="context">Context for deserialization</param> protected override void Deserialize(DeserializeContext context, byte version) { base.Deserialize(context, version); this.fullName = context.ReadString(); }
public Parameters(DeserializeContext context) : base(context) { }
/// <summary> /// Creates an object by deserializing from binary data. /// </summary> /// <param name="context">Context for deserialization.</param> public NotaryCertificate(DeserializeContext context, byte version) : base(context, version) { }
/// <summary> /// Creates an object by deserializing from binary data. /// </summary> /// <param name="context">Context for deserialization.</param> public Envelope(DeserializeContext context, byte version) : base(context, version) { }
public static void Deserialize <TKey, TValue>(DeserializeContext context, BinaryReader br, Dictionary <TKey, TValue> dictionary) { throw new InvalidOperationException("This collection is not network safe; use OrderedDictionary instead"); }