OSDN Git Service

5
[psychlops/silverlight.git] / dev4 / psychlops / core / device / clock.cs
1 using System;\r
2 \r
3 namespace Psychlops\r
4 {\r
5 \r
6         public struct Clock\r
7         {\r
8                 long ticks;\r
9                 // where ticks unit is 100 nano seconds.\r
10 \r
11                 public void update()\r
12                 {\r
13                         ticks = DateTime.Now.Ticks;\r
14                 }\r
15                 public long at_msec()\r
16                 {\r
17                         return ticks/10000;\r
18                 }\r
19 \r
20                 public static Clock operator +(Clock lhs, Clock rhs)\r
21                 {\r
22                         return new Clock { ticks = lhs.ticks + rhs.ticks };\r
23                 }\r
24                 public static Clock operator -(Clock lhs, Clock rhs)\r
25                 {\r
26                         return new Clock { ticks = lhs.ticks - rhs.ticks };\r
27                 }\r
28 \r
29                 public static bool operator ==(Clock lhs, Clock rhs)\r
30                 {\r
31                         return lhs.ticks == rhs.ticks;\r
32                 }\r
33                 public static bool operator !=(Clock lhs, Clock rhs)\r
34                 {\r
35                         return lhs.ticks != rhs.ticks;\r
36                 }\r
37                 public override int GetHashCode()\r
38                 {\r
39                         return ticks.GetHashCode();\r
40                 }\r
41                 public static bool operator >(Clock lhs, Clock rhs)\r
42                 {\r
43                         return lhs.ticks > rhs.ticks;\r
44                 }\r
45                 public static bool operator <(Clock lhs, Clock rhs)\r
46                 {\r
47                         return lhs.ticks < rhs.ticks;\r
48                 }\r
49                 public static bool operator >=(Clock lhs, Clock rhs)\r
50                 {\r
51                         return lhs.ticks >= rhs.ticks;\r
52                 }\r
53                 public static bool operator <=(Clock lhs, Clock rhs)\r
54                 {\r
55                         return lhs.ticks <= rhs.ticks;\r
56                 }\r
57 \r
58                 public override string ToString()\r
59                 {\r
60                         return ticks.ToString();\r
61                 }\r
62         }\r
63 \r
64 }\r