1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.giraph.time;
20
21 import java.util.Date;
22 import java.util.concurrent.atomic.AtomicLong;
23
24
25
26
27
28 public class FakeTime implements Time {
29
30 private final AtomicLong nanosecondsSinceEpoch = new AtomicLong();
31
32 @Override
33 public long getMilliseconds() {
34 return nanosecondsSinceEpoch.get() / NS_PER_MS;
35 }
36
37 @Override
38 public long getMicroseconds() {
39 return nanosecondsSinceEpoch.get() / NS_PER_US;
40 }
41
42 @Override
43 public long getNanoseconds() {
44 return nanosecondsSinceEpoch.get();
45 }
46
47 @Override
48 public int getSeconds() {
49 return (int) (nanosecondsSinceEpoch.get() / NS_PER_SECOND);
50 }
51
52 @Override
53 public Date getCurrentDate() {
54 return new Date(getMilliseconds());
55 }
56
57 @Override
58 public void sleep(long milliseconds) throws InterruptedException {
59 nanosecondsSinceEpoch.getAndAdd(milliseconds * NS_PER_MS);
60 }
61 }