public void InsertTraceLine(ICLogOutputModule module, CLogDecodedTraceLine traceLine) { CLogTraceLineInformation_V2 output; if (_myUsageModuleInfo.IsUnique(module, traceLine, out output) && null != output) { return; } AreDirty = true; ChangesList.Add("Inserting : " + traceLine.UniqueId); _myUsageModuleInfo.Insert(module, traceLine); }
public Guid GenerateUniquenessHash(ICLogOutputModule module, CLogDecodedTraceLine traceLine, out string asString) { string info = traceLine.macro.MacroName + "|" + traceLine.UniqueId + "|" + traceLine.TraceString + "|"; foreach (var arg in traceLine.splitArgs) { info += traceLine.configFile.FindType(arg, traceLine).EncodingType; } asString = info; return(CLogFileProcessor.GenerateMD5Hash(info)); }
public Guid GenerateUniquenessHash(ICLogOutputModule module, CLogDecodedTraceLine decodedTraceLine, out string asString) { string info = decodedTraceLine.macro.MacroName + "|" + decodedTraceLine.UniqueId + "|" + decodedTraceLine.TraceString + "|"; foreach (var arg in decodedTraceLine.splitArgs) { if (arg.TypeNode.EncodingType == CLogEncodingType.UserEncodingString || arg.TypeNode.EncodingType == CLogEncodingType.UniqueAndDurableIdentifier) { continue; } info += arg.TypeNode.EncodingType; } asString = info; return(CLogFileProcessor.GenerateMD5Hash(info)); }
public bool IsUnique(ICLogOutputModule module, CLogDecodedTraceLine traceLine, out CLogTraceLineInformation existingTraceInformation) { existingTraceInformation = TraceInformation .Where(x => x.TraceID.Equals(traceLine.UniqueId)).FirstOrDefault(); if (null == existingTraceInformation) { return(true); } string asString; Guid hash = GenerateUniquenessHash(module, traceLine, out asString); if (hash != existingTraceInformation.UniquenessHash) { return(false); } return(true); }
public void Insert(ICLogOutputModule module, CLogDecodedTraceLine traceLine) { string asString; Guid hash = GenerateUniquenessHash(module, traceLine, out asString); CLogTraceLineInformation info = TraceInformation .Where(x => x.TraceID.Equals(traceLine.UniqueId)).FirstOrDefault(); if (null == info) { info = new CLogTraceLineInformation(); info.Unsaved = true; info.PreviousFileMatch = traceLine; info.TraceID = traceLine.UniqueId; info.UniquenessHash = hash; TraceInformation.Add(info); } if (info.UniquenessHash != hash) { throw new CLogEnterReadOnlyModeException("DuplicateID", CLogHandledException.ExceptionType.DuplicateId, traceLine.match); } }
public void AddClogModule(ICLogOutputModule m) { _modules.Add(m); m_unusedModules.Add(m); }