/// <summary> /// Sets the metadata on the dictionary. /// </summary> /// <param name="metadata"></param> /// <param name="collection"></param> void SetMetadata(StateObjectMetadata metadata, MetadataCollection collection) { collection["ExtraFlags"] = metadata.ExtraFlags?.ToString() ?? ""; collection["Timeout"] = metadata.Timeout?.ToString() ?? ""; collection["Altered"] = metadata.Altered?.ToString() ?? ""; collection["LockCookie"] = metadata.LockCookie?.ToString() ?? ""; collection["LockTime"] = metadata.LockTime?.ToString() ?? ""; }
/// <summary> /// Attempts to parse the given metadata values. /// </summary> /// <param name="collection"></param> /// <returns></returns> StateObjectMetadata GetMetadata(MetadataCollection collection) { var metadata = new StateObjectMetadata(); metadata.ExtraFlags = collection["ExtraFlags"] is string fd && uint.TryParse(fd, out var fv) ? (uint?)fv : null; metadata.Timeout = collection["Timeout"] is string td && TimeSpan.TryParse(td, out var tv) ? (TimeSpan?)tv : null; metadata.Altered = collection["Altered"] is string ad && DateTime.TryParse(ad, out var av) ? (DateTime?)av : null; metadata.LockCookie = collection["LockCookie"] is string cd && uint.TryParse(cd, out var cv) ? (uint?)cv : null; metadata.LockTime = collection["LockTime"] is string ld && DateTime.TryParse(ld, out var lv) ? (DateTime?)lv : null; return(metadata); }
/// <summary> /// Initializes a new instance. /// </summary> /// <param name="metadata"></param> /// <param name="buffer"></param> public StateObjectData(StateObjectMetadata metadata, byte[] buffer) { Metadata = metadata ?? throw new ArgumentNullException(nameof(metadata)); Buffer = buffer ?? throw new ArgumentNullException(nameof(buffer)); }