RuneHive-Tarnish
Neural OSRS Enhancement Framework
Loading...
Searching...
No Matches
Stopwatch.java
1package com.osroyale.util;
2
3import java.util.concurrent.TimeUnit;
4
30
31public final class Stopwatch {
32
33 private long cachedTime;
34
35 public Stopwatch() {
36 cachedTime = System.nanoTime();
37 }
38
39 public static Stopwatch start() {
40 return new Stopwatch();
41 }
42
43 @Override
44 public String toString() {
45 return String.format("STOPWATCH[elapsed=%d]", elapsedTime());
46 }
47
48 public Stopwatch reset() {
49 cachedTime = System.nanoTime();
50 return this;
51 }
52
53 public Stopwatch reset(int delay, TimeUnit unit) {
54 cachedTime = System.nanoTime() + TimeUnit.NANOSECONDS.convert(delay, unit);
55 return this;
56 }
57
58 public Stopwatch reset(long millis) {
59 cachedTime = System.nanoTime() + TimeUnit.NANOSECONDS.convert(millis, TimeUnit.MILLISECONDS);
60 return this;
61 }
62
63 public long elapsedTime(TimeUnit unit) {
64 return unit.convert(System.nanoTime() - cachedTime, TimeUnit.NANOSECONDS);
65 }
66
67 public boolean finished() {
68 return cachedTime - System.nanoTime() <= 0;
69 }
70
71 public long elapsedTime() {
72 return elapsedTime(TimeUnit.MILLISECONDS);
73 }
74
75 public boolean elapsed(long time, TimeUnit unit) {
76 return elapsedTime(unit) >= time;
77 }
78
79 public boolean elapsed(long time) {
80 return elapsed(time, TimeUnit.MILLISECONDS);
81 }
82
83 public long getCachedTime() {
84 return cachedTime;
85 }
86
87 public void setCachedTime(long cachedTime) {
88 this.cachedTime = cachedTime;
89 }
90
91}