Skip to content

Commit 08344b6

Browse files
committed
More work for timings
1 parent 7fba3dc commit 08344b6

File tree

2 files changed

+43
-21
lines changed

2 files changed

+43
-21
lines changed

src/main/java/ch/njol/skript/timings/Timing.java

Lines changed: 34 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,40 @@
2121

2222
package ch.njol.skript.timings;
2323

24-
/**
25-
*
26-
*/
24+
import java.util.ArrayList;
25+
import java.util.List;
26+
27+
import com.google.common.collect.Lists;
28+
2729
public class Timing {
2830

31+
public class Capture {
32+
33+
Timing parent;
34+
35+
protected Capture(Timing parent) {
36+
this.parent = parent;
37+
}
38+
39+
public void start() {
40+
41+
}
42+
}
43+
44+
private List<Capture> captures = new ArrayList<Capture>();
45+
46+
/**
47+
* Creates a new timing. Only used for {@link Timings}
48+
*/
49+
protected Timing() {
50+
captures = new ArrayList<Capture>();
51+
}
52+
53+
/**
54+
* Creates a capture for timing.
55+
* @return
56+
*/
57+
public Capture capture() {
58+
return new Capture(this);
59+
}
2960
}

src/main/java/ch/njol/skript/timings/Timings.java

Lines changed: 9 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -31,29 +31,20 @@
3131
*/
3232
public class Timings {
3333

34-
static class TimingObject extends HashMap<String,Timing> {}
34+
private static Map<String,Timing> timings = new HashMap<String,Timing>();
3535

36-
private static Map<Object,TimingObject> timings = new HashMap<Object,TimingObject>();
37-
38-
public static Timing of(Object obj, String name) {
39-
TimingObject map;
36+
public static Timing of(String name) {
37+
Timing timing;
4038
synchronized (timings) {
41-
if (timings.containsKey(obj)) {
42-
map = timings.get(obj);
39+
if (timings.containsKey(name)) {
40+
timing = timings.get(name);
4341
} else {
44-
map = new TimingObject();
45-
timings.put(obj, map);
42+
timing = new Timing();
43+
timings.put(name, timing);
4644
}
4745
}
4846

49-
synchronized (map) {
50-
if (map.containsKey(name)) {
51-
return map.get(name);
52-
} else {
53-
Timing timing = new Timing();
54-
map.put(name, timing);
55-
return timing;
56-
}
57-
}
47+
assert timing != null;
48+
return timing;
5849
}
5950
}

0 commit comments

Comments
 (0)