// Copyright Keysight Technologies 2012-2019 // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this // file, you can obtain one at http://mozilla.org/MPL/2.0/. using OpenTap.Diagnostic; using System.Collections.Generic; namespace OpenTap { /// /// A class that listens to trace messages and raises an event when a message occurs. /// public class EventTraceListener : TraceListener { /// /// Delegate for the log messages. /// /// public delegate void LogMessageDelegate(IEnumerable Events); /// /// Event for when messages are logged. /// public event LogMessageDelegate MessageLogged; /// /// Invokes the MessageLogged event with the new events. /// /// public override void TraceEvents(IEnumerable events) { if (MessageLogged != null) MessageLogged(events); } /// /// Invokes the MessageLogged event with the new event from the legacy TraceEvent system. /// /// /// /// /// public override void TraceEvent(string source, LogEventType eventType, int id, string text) { Event @event = new Event(0, (int)eventType, text, source, 0); using (EventCollection eventCollection = new EventCollection(new Event[] { @event })) { MessageLogged.Invoke(eventCollection); } } /// Constructor of the EventTraceListener. public EventTraceListener() { } } }