// 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()
{
}
}
}