Mercurial > pub > ImplabNet
comparison Implab/Diagnostics/LogicalOperation.cs @ 35:2880242f987a diagnostics
initial log capabilities
| author | cin |
|---|---|
| date | Mon, 14 Apr 2014 18:25:26 +0400 |
| parents | |
| children | 4c0e5ef99986 |
comparison
equal
deleted
inserted
replaced
| 34:dabf79fde388 | 35:2880242f987a |
|---|---|
| 1 using System; | |
| 2 using System.Collections.Generic; | |
| 3 using System.Linq; | |
| 4 using System.Text; | |
| 5 using System.Threading.Tasks; | |
| 6 | |
| 7 namespace Implab.Diagnostics { | |
| 8 public class LogicalOperation { | |
| 9 readonly LogicalOperation m_parent; | |
| 10 readonly string m_name; | |
| 11 readonly int m_level; | |
| 12 readonly int m_timestamp; | |
| 13 | |
| 14 public LogicalOperation() | |
| 15 : this(null, null) { | |
| 16 } | |
| 17 | |
| 18 public LogicalOperation(string name, LogicalOperation parent) { | |
| 19 m_name = name ?? String.Empty; | |
| 20 m_parent = parent; | |
| 21 | |
| 22 m_level = parent == null ? 0 : parent.Level + 1; | |
| 23 m_timestamp = Environment.TickCount; | |
| 24 } | |
| 25 | |
| 26 public int Duration { | |
| 27 get { | |
| 28 var dt = Environment.TickCount - m_timestamp; | |
| 29 return dt < 0 ? int.MaxValue + dt : dt; // handle overflow | |
| 30 } | |
| 31 } | |
| 32 | |
| 33 public LogicalOperation Parent { | |
| 34 get { | |
| 35 return m_parent; | |
| 36 } | |
| 37 } | |
| 38 | |
| 39 public int Level { | |
| 40 get { return m_level; } | |
| 41 } | |
| 42 | |
| 43 public string Name { | |
| 44 get { return m_name; } | |
| 45 } | |
| 46 } | |
| 47 } |
