internal JobOutput(string description, JobOutputType jobOutputType) { Description = description; JobOutputType = jobOutputType; }
/// <summary> /// Flushes the streams. /// </summary> /// <param name="trace">The trace.</param> /// <param name="jobOutputType">Type of the job output.</param> /// <returns><c>true</c> if XXXX, <c>false</c> otherwise</returns> /// <exception cref="System.ArgumentException">QueueOutput:Invalid JobType:</exception> public bool QueueOutput(string trace, JobOutputType jobOutputType) { try { bool retval = false; if (_bufferEnabled) { AddTraceToBuffer(trace); } for (int i = 0; i < _writerJobs.Count; i++) { switch (_writerJobs[i].JobType) { // Always write to console case JobType.Console: case JobType.Gui: retval = true; break; case JobType.Csv: case JobType.Network: if ((jobOutputType & JobOutputType.Trace) == JobOutputType.Trace) { retval = true; break; } continue; case JobType.Log: if ((jobOutputType & JobOutputType.Log) == JobOutputType.Log) { retval = true; break; } continue; case JobType.Etw: if ((jobOutputType & JobOutputType.Etw) == JobOutputType.Etw) { retval = true; break; } continue; case JobType.Etl: case JobType.Unknown: default: Debug.Print("QueueOutput:Invalid JobType:{0}", _writerJobs[i].JobType); throw new ArgumentException("QueueOutput:Invalid JobType:" + _writerJobs[i].JobType.ToString()); } if (retval && _writerJobs[i].Writer.Queue.Queue(trace)) { _writerJobs[i].Writer.QueuedEvents++; } else { Debug.Print("QueueOutput:Error:MissedQueueEvents:{0}", _writerJobs[i].JobType); _writerJobs[i].Writer.MissedQueueEvents++; } } return(retval); } catch (Exception e) { Debug.Print("QueueOutput:Exception:{0}", e.ToString()); WriterQueueErrors++; return(false); } }