public virtual void Enqueue(LogEvent obj) { if (_closed) { throw new InvalidOperationException("Cannot enqueue an event when the queue is closed"); } _internalQueue.Enqueue(obj); }
private void PassEventToHandler(LogEvent evt, IBuildListener bl) { switch (evt.EventType) { case LogEventType.TargetFinished: bl.TargetFinished(evt.Sender, evt.Args); break; case LogEventType.MessageLogged: bl.MessageLogged(evt.Sender, evt.Args); break; case LogEventType.BuildStarted: bl.BuildStarted(evt.Sender, evt.Args); break; case LogEventType.BuildFinished: bl.BuildFinished(evt.Sender, evt.Args); break; case LogEventType.TaskFinished: bl.TaskFinished(evt.Sender, evt.Args); break; case LogEventType.TargetStarted: bl.TargetStarted(evt.Sender, evt.Args); break; case LogEventType.TaskStarted: bl.TaskStarted(evt.Sender, evt.Args); break; case LogEventType.Exception: //If this is the first exception, save it if (_firstException == null) { _firstException = evt.Exception; } //Report this in the form of a message BuildEventArgs e = new BuildEventArgs(evt.Project); e.Exception = evt.Exception; e.MessageLevel = Level.Error; e.Message = String.Format("Error running async task: {0}", evt.Exception.Message); bl.MessageLogged(evt.Project, e); break; } }