Esempio n. 1
0
 public bool IsVisible(LogEntry entry)
 {
     switch (entry.Level)
     {
         case LogLevel.Verbose:
             return control.miVerbose.Checked;
         case LogLevel.Debug:
             return control.miDebug.Checked;
         case LogLevel.Info:
             return control.miInfo.Checked;
         case LogLevel.Warning:
             return control.miWarning.Checked;
         case LogLevel.Error:
             return control.miError.Checked;
         case LogLevel.Assert:
             return control.miAssert.Checked;
         default:
             return true;
     }
 }
Esempio n. 2
0
 /// <summary>
 /// Add received output data.
 /// </summary>
 public void AddEntry(LogEntry entry)
 {
     if (InvokeRequired)
     {
         Invoke(new Action<LogEntry>(AddEntry), entry);
     }
     else
     {
         try
         {
             entries.Add(entry);
             if (Show(entry))
             {
                 var node = new LogEntryNode(entry);
                 lastNode = node;
                 tvLog.Items.Add(node);
             }
         }
         catch (Exception ex)
         {
             ErrorLog.DumpError(ex);
         }
     }
 }
Esempio n. 3
0
        /// <summary>
        /// Try to parse an entry from the given data.
        /// </summary>
        internal static bool TryParse(byte[] data, int offset, int length, out LogEntry entry, out int entryLength)
        {
            entry = null;
            entryLength = 0;

            // Enough data for the header?
            if (offset + EntryHeaderSize > length)
                return false;

            // Get payload length
            // Enough data for the header and payload?
            var len = ArrayHelper.SwapU16BitFromArray(data, offset + entryLength);
            if (offset + EntryHeaderSize + len > length)
                return false;

            // we've read only 16 bits, but since there's also a 16 bit padding,
            // we can skip right over both.
            entryLength += 4;

            entry = new LogEntry();
            entry.Pid = ArrayHelper.Swap32BitFromArray(data, offset + entryLength);
            entryLength += 4;
            entry.Tid = ArrayHelper.Swap32BitFromArray(data, offset + entryLength);
            entryLength += 4;
            entry.Seconds = ArrayHelper.Swap32BitFromArray(data, offset + entryLength);
            entryLength += 4;
            entry.NanoSeconds= ArrayHelper.Swap32BitFromArray(data, offset + entryLength);
            entryLength += 4;

            entry.Message = new byte[len];
            Array.Copy(data, offset + entryLength, entry.Message, 0, len);
            entryLength += len;

            return true;
        }
Esempio n. 4
0
 /// <summary>
 /// Should the given entry be made visible?
 /// </summary>
 protected override bool Show(LogEntry entry)
 {
     if (entry.Pid != pid)
         return false;
     return base.Show(entry);
 }
Esempio n. 5
0
 public bool IsVisible(LogEntry entry)
 {
     return entry.Tid == tid;
 }
Esempio n. 6
0
 public bool IsVisible(LogEntry entry)
 {
     return entry.Tag == source;
 }
Esempio n. 7
0
 public bool IsVisible(LogEntry entry)
 {
     return entry.Pid == pid;
 }
Esempio n. 8
0
 /// <summary>
 /// Add received output data.
 /// </summary>
 public void AddEntry(LogEntry entry)
 {
     if (IsCancelled)
         return;
     control.AddEntry(entry);
 }
Esempio n. 9
0
 /// <summary>
 /// Default ctor
 /// </summary>
 public LogEntryNode(LogEntry entry)
 {
     this.entry = entry;
     ToolTipText = entry.MessageAsString;
     Text = entry.Pid.ToString();
     SubItems.Add(entry.Tid.ToString());
     SubItems.Add(entry.Time.ToShortTimeString());
     SubItems.Add(entry.MessageAsString);
     SubItems.Add(LogLevelToString(entry.Level));
     SubItems.Add(entry.Tag);
 }
Esempio n. 10
0
 /// <summary>
 /// Rebuild the list with the new filter.
 /// </summary>
 private void ApplyFilter(LogEntry active)
 {
     tvLog.BeginUpdate();
     var newNodes = entries.Where(Show).Select(x => new LogEntryNode(x)).ToArray();
     tvLog.Items.Clear();
     tvLog.Items.AddRange(newNodes);
     var activeNode = newNodes.FirstOrDefault(x => x.Entry == active);
     lastNode = activeNode ?? newNodes.LastOrDefault();
     tvLog.EndUpdate();
     if (activeNode != null)
     {
         activeNode.Selected = true;
     }
 }
Esempio n. 11
0
 /// <summary>
 /// Should the given entry be made visible?
 /// </summary>
 protected virtual bool Show(LogEntry entry)
 {
     if (filter != null)
     {
         if (!filter.IsVisible(entry))
             return false;
     }
     switch (entry.Level)
     {
         case LogLevel.Verbose:
             return miVerbose.Checked;
         case LogLevel.Debug:
             return miDebug.Checked;
         case LogLevel.Info:
             return miInfo.Checked;
         case LogLevel.Warning:
             return miWarning.Checked;
         case LogLevel.Error:
             return miError.Checked;
         case LogLevel.Assert:
             return miAssert.Checked;
         default:
             return true;
     }
 }