public void Update(object stateIgnored = null) { WpfLogMessageHandlerToolBase.SeqNumPair newSeqNumPair = WpfLogMessageHandlerToolBase.Instance.GetNewMessages(lastMesgSeqNumPair, ref updateMesgQueue); int maxMesgsToKeep = WpfLogMessageHandlerToolBase.Instance.MaxMessagesToKeep; if (!newSeqNumPair.AreThereAnyChanges(lastMesgSeqNumPair)) { return; } bool resetContents = newSeqNumPair.IsContentReplaced(lastMesgSeqNumPair); if (resetContents) { ClearItems(); } Logging.ILogMessage lm = null; int numMesgAdded = 0, numMesgDropped = 0; int idx = 0; if (Count > maxMesgsToKeep) { numMesgDropped = (Count - maxMesgsToKeep); for (idx = 0; idx < numMesgDropped; idx++) { RemoveAt(0); } } while (updateMesgQueue.Count > 0) { lm = updateMesgQueue.Dequeue(); if (LogFilterConfig.DisplayLogGate.IsTypeEnabled(lm.MesgType)) { if (Count >= maxMesgsToKeep) { numMesgDropped++; RemoveAt(0); } Add(new LogMessageCollectionItem(lm)); numMesgAdded++; } } lastMesgSeqNumPair = newSeqNumPair; }
public LogMessageCollectionItem(Logging.ILogMessage lm) { this.lm = lm; }
public bool Equals(Logging.ILogMessage other) { return(other != null && other.Equals(this)); }