Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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));
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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);
            }
        }
Esempio n. 6
0
 public void AddClogModule(ICLogOutputModule m)
 {
     _modules.Add(m);
     m_unusedModules.Add(m);
 }