46 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| namespace Fusion.Addons.KCC
 | |
| {
 | |
| 	using System;
 | |
| 
 | |
| 	public enum EKCCTrace
 | |
| 	{
 | |
| 		None      = 0,
 | |
| 		Stage     = 1,
 | |
| 		Processor = 2,
 | |
| 	}
 | |
| 
 | |
| 	/// <summary>
 | |
| 	/// Helper class for tracing stage and processor execution.
 | |
| 	/// </summary>
 | |
| 	public sealed class KCCTraceInfo
 | |
| 	{
 | |
| 		// PUBLIC MEMBERS
 | |
| 
 | |
| 		public EKCCTrace     Trace     = default;
 | |
| 		public Type          Type      = default;
 | |
| 		public string        Name      = default;
 | |
| 		public int           Level     = default;
 | |
| 		public IKCCProcessor Processor = default;
 | |
| 		public bool          IsVisible = default;
 | |
| 
 | |
| 		public bool IsValid     => Trace != EKCCTrace.None;
 | |
| 		public bool IsStage     => Trace == EKCCTrace.Stage;
 | |
| 		public bool IsProcessor => Trace == EKCCTrace.Processor;
 | |
| 
 | |
| 		// PUBLIC METHODS
 | |
| 
 | |
| 		public void Set(EKCCTrace trace, Type type, string name, int level, IKCCProcessor processor)
 | |
| 		{
 | |
| 			if (Trace == trace && Name == name && Type == type && Level == level && object.ReferenceEquals(Processor, processor) == true)
 | |
| 				return;
 | |
| 
 | |
| 			Trace     = trace;
 | |
| 			Type      = type;
 | |
| 			Name      = name;
 | |
| 			Level     = level;
 | |
| 			Processor = processor;
 | |
| 			IsVisible = level == default;
 | |
| 		}
 | |
| 	}
 | |
| }
 |