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 }