Mercurial > pub > ImplabNet
diff Implab/Diagnostics/LogicalOperation.cs @ 35:2880242f987a diagnostics
initial log capabilities
author | cin |
---|---|
date | Mon, 14 Apr 2014 18:25:26 +0400 |
parents | |
children | 4c0e5ef99986 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Implab/Diagnostics/LogicalOperation.cs Mon Apr 14 18:25:26 2014 +0400 @@ -0,0 +1,47 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Implab.Diagnostics { + public class LogicalOperation { + readonly LogicalOperation m_parent; + readonly string m_name; + readonly int m_level; + readonly int m_timestamp; + + public LogicalOperation() + : this(null, null) { + } + + public LogicalOperation(string name, LogicalOperation parent) { + m_name = name ?? String.Empty; + m_parent = parent; + + m_level = parent == null ? 0 : parent.Level + 1; + m_timestamp = Environment.TickCount; + } + + public int Duration { + get { + var dt = Environment.TickCount - m_timestamp; + return dt < 0 ? int.MaxValue + dt : dt; // handle overflow + } + } + + public LogicalOperation Parent { + get { + return m_parent; + } + } + + public int Level { + get { return m_level; } + } + + public string Name { + get { return m_name; } + } + } +}