MCPcopy Create free account
hub / github.com/e2wugui/zeze / Env

Class Env

ZezeJava/ZezeJavaTest/src/SimpleRaft/RaftTest.java:14–159  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

12
13public final class RaftTest {
14 private final class Env implements Raft.Env {
15 private final SimpleDateFormat dtf = new SimpleDateFormat("yy-MM-dd HH:mm:ss.SSS");
16 private final Date date = new Date(0);
17 private final FieldPosition fieldPos = new FieldPosition(0);
18 private final StringBuffer strBuf = new StringBuffer();
19 private final ArrayDeque<Object> events = new ArrayDeque<>(16);
20 private final ArrayDeque<Object> clientEvents = new ArrayDeque<>(16);
21 private final HashMap<Long, Raft.Log> logMap = new HashMap<>();
22 private Raft.Log @NotNull [] logs = new Raft.Log[4]; // 初始容量
23 private long logCount; // logs的有效数量
24 private long randSeed;
25 private final int id;
26 private final Raft raft;
27
28 Env(int id) {
29 this.id = id;
30 randSeed = (id + 123456789L) * 987654321L;
31 raft = new Raft(this, RAFT_COUNT, id, curTime);
32 }
33
34 @NotNull Raft getRaft() {
35 return raft;
36 }
37
38 @Override
39 public long getCurTime() {
40 return curTime;
41 }
42
43 @Override
44 public int random(int max) {
45 long s = randSeed * 6364136223846793005L + 1442695040888963407L;
46 randSeed = s;
47 return (int)(((s >>> 32) * max) >>> 32);
48 }
49
50 @Override
51 public @Nullable Object recvEvent() {
52 return events.pollFirst();
53 }
54
55 @Override
56 public void sendEvent(int id, @NotNull Object obj) {
57 envs[id].events.addLast(obj);
58 }
59
60 @Nullable Object recvClientEvent() {
61 return clientEvents.pollFirst();
62 }
63
64 @Override
65 public void sendClientEvent(@NotNull Object obj) {
66 clientEvents.addLast(obj);
67 }
68
69 @Override
70 public long getLogCount() {
71 return logCount;

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected