protected internal static object DeserializeGrainReference(Type t, BinaryTokenStreamReader stream) { GrainId id = stream.ReadGrainId(); SiloAddress silo = null; GuidId observerId = null; byte siloAddressPresent = stream.ReadByte(); if (siloAddressPresent != 0) { silo = stream.ReadSiloAddress(); } bool expectObserverId = id.IsClient; if (expectObserverId) { observerId = GuidId.DeserializeFromStream(stream); } // store as null, serialize as empty. var genericArg = stream.ReadString(); if (String.IsNullOrEmpty(genericArg)) { genericArg = null; } if (expectObserverId) { return(NewObserverGrainReference(id, observerId)); } return(FromGrainId(id, genericArg, silo)); }
internal static object Deserialize(Type unused, BinaryTokenStreamReader stream) { var target = stream.ReadString(); var message = MessageEnvelope.Serializer.Deserialize(stream); return(new RequestEnvelope(target, message)); }
/// <summary> /// Deserializes an event sequence token /// </summary> /// <param name="expected">The expected type.</param> /// <param name="reader">The binary stream to read from.</param> /// <returns></returns> public static object Deserialize(Type expected, BinaryTokenStreamReader reader) { var deserialized = new EventHubSequenceTokenV2(reader.ReadString(), reader.ReadLong(), reader.ReadInt()); DeserializationContext.Current.RecordObject(deserialized); return(deserialized); }
private static object Deserialize(Type expected, BinaryTokenStreamReader stream) { DeserializeCounter++; var result = new ClassWithCustomSerializer(); result.IntProperty = stream.ReadInt(); result.StringProperty = stream.ReadString(); return(result); }
/// <summary> /// Deserializes the container from the data stream. /// </summary> /// <param name="expected">The expected type</param> /// <param name="reader">The stream reader</param> /// <returns>The deserialized value</returns> public static object Deserialize(Type expected, BinaryTokenStreamReader reader) { var deserialized = new AzureQueueBatchContainerV2(); DeserializationContext.Current.RecordObject(deserialized); var guid = reader.ReadGuid(); var ns = reader.ReadString(); var eventToken = SerializationManager.DeserializeInner <EventSequenceTokenV2>(reader); var events = SerializationManager.DeserializeInner <List <object> >(reader); var context = SerializationManager.DeserializeInner <Dictionary <string, object> >(reader); deserialized.SetValues(guid, ns, events, context, eventToken); return(deserialized); }
protected internal static object DeserializeGrainReference(Type t, BinaryTokenStreamReader stream) { GrainId id = stream.ReadGrainId(); SiloAddress silo = null; byte siloAddressPresent = stream.ReadByte(); if (siloAddressPresent != 0) { silo = stream.ReadSiloAddress(); } // store as null, serialize as empty. var genericArg = stream.ReadString(); if (String.IsNullOrEmpty(genericArg)) { genericArg = null; } return(FromGrainId(id, genericArg, silo)); }
public static System.Object Deserializer(System.Type expected, BinaryTokenStreamReader stream) { var result = new HeadersContainer(); Orleans.Serialization.DeserializationContext.Current.RecordObject(result); var headers = (Headers)stream.ReadInt(); if ((headers & Headers.CACHE_INVALIDATION_HEADER) != Headers.NONE) { var n = stream.ReadInt(); if (n > 0) { var list = result.CacheInvalidationHeader = new List <ActivationAddress>(n); for (int i = 0; i < n; i++) { list.Add((ActivationAddress)ReadObj(typeof(ActivationAddress), stream)); } } } if ((headers & Headers.CATEGORY) != Headers.NONE) { result.Category = (Categories)stream.ReadByte(); } if ((headers & Headers.DEBUG_CONTEXT) != Headers.NONE) { result.DebugContext = stream.ReadString(); } if ((headers & Headers.DIRECTION) != Headers.NONE) { result.Direction = (Message.Directions)stream.ReadByte(); } if ((headers & Headers.EXPIRATION) != Headers.NONE) { result.Expiration = stream.ReadDateTime(); } if ((headers & Headers.FORWARD_COUNT) != Headers.NONE) { result.ForwardCount = stream.ReadInt(); } if ((headers & Headers.GENERIC_GRAIN_TYPE) != Headers.NONE) { result.GenericGrainType = stream.ReadString(); } if ((headers & Headers.CORRELATION_ID) != Headers.NONE) { result.Id = (Orleans.Runtime.CorrelationId)ReadObj(typeof(Orleans.Runtime.CorrelationId), stream); } if ((headers & Headers.ALWAYS_INTERLEAVE) != Headers.NONE) { result.IsAlwaysInterleave = ReadBool(stream); } if ((headers & Headers.IS_NEW_PLACEMENT) != Headers.NONE) { result.IsNewPlacement = ReadBool(stream); } if ((headers & Headers.READ_ONLY) != Headers.NONE) { result.IsReadOnly = ReadBool(stream); } if ((headers & Headers.IS_UNORDERED) != Headers.NONE) { result.IsUnordered = ReadBool(stream); } if ((headers & Headers.NEW_GRAIN_TYPE) != Headers.NONE) { result.NewGrainType = stream.ReadString(); } if ((headers & Headers.REJECTION_INFO) != Headers.NONE) { result.RejectionInfo = stream.ReadString(); } if ((headers & Headers.REJECTION_TYPE) != Headers.NONE) { result.RejectionType = (RejectionTypes)stream.ReadByte(); } if ((headers & Headers.REQUEST_CONTEXT) != Headers.NONE) { var c = stream.ReadInt(); var requestData = new Dictionary <string, object>(c); for (int i = 0; i < c; i++) { requestData[stream.ReadString()] = SerializationManager.DeserializeInner(null, stream); } result.RequestContextData = requestData; } if ((headers & Headers.RESEND_COUNT) != Headers.NONE) { result.ResendCount = stream.ReadInt(); } if ((headers & Headers.RESULT) != Headers.NONE) { result.Result = (Orleans.Runtime.Message.ResponseTypes)stream.ReadByte(); } if ((headers & Headers.SENDING_ACTIVATION) != Headers.NONE) { result.SendingActivation = stream.ReadActivationId(); } if ((headers & Headers.SENDING_GRAIN) != Headers.NONE) { result.SendingGrain = stream.ReadGrainId(); } if ((headers & Headers.SENDING_SILO) != Headers.NONE) { result.SendingSilo = stream.ReadSiloAddress(); } if ((headers & Headers.TARGET_ACTIVATION) != Headers.NONE) { result.TargetActivation = stream.ReadActivationId(); } if ((headers & Headers.TARGET_GRAIN) != Headers.NONE) { result.TargetGrain = stream.ReadGrainId(); } if ((headers & Headers.TARGET_OBSERVER) != Headers.NONE) { result.TargetObserverId = (Orleans.Runtime.GuidId)ReadObj(typeof(Orleans.Runtime.GuidId), stream); } if ((headers & Headers.TARGET_SILO) != Headers.NONE) { result.TargetSilo = stream.ReadSiloAddress(); } return((HeadersContainer)result); }