/** * Reads the data from a string. */ public static TransformationJob Read(string _s, bool fromHash = false) { Match jobExists = TransformationQueue.queueEntryParse.Match(_s); if (!jobExists.Success) { throw new Exception("Could not read job string " + _s); } string timeString = jobExists.Groups[1].ToString(); string dataString = jobExists.Groups[2].ToString(); string boolString = jobExists.Groups[3].ToString(); ulong transformTime; if (!StringParsers.TryParseUInt64(timeString, out transformTime)) { throw new Exception("Could not parse time string " + timeString); } bool inProgress; if (!StringParsers.TryParseBool(boolString, out inProgress)) { throw new Exception("Could not parse in progress string " + boolString); } TransformationData tData = TransformationData.Read(dataString, fromHash); return(new TransformationJob(transformTime, tData, inProgress)); }