345
|
1 package alice.datasegment;
|
|
2
|
|
3 import java.util.HashMap;
|
|
4
|
|
5 public enum CommandType {
|
|
6 PUT,
|
|
7 UPDATE, // remove a DataSegment value and put
|
|
8 PEEK,
|
|
9 TAKE,
|
|
10 REMOVE,
|
|
11 REPLY,
|
|
12 CLOSE,
|
|
13 FINISH,
|
|
14 PING,
|
|
15 RESPONSE;
|
|
16
|
|
17 public int id;
|
|
18 public static HashMap<Integer, CommandType> hash = new HashMap<Integer, CommandType>();
|
|
19 private static int lastId = 0;
|
|
20
|
|
21 private CommandType(int id) {
|
|
22 this.id = id;
|
|
23 setLastId(id);
|
|
24 }
|
|
25
|
|
26 private CommandType() {
|
|
27 this.id = incrementLastId();
|
|
28 }
|
|
29
|
|
30 private void setLastId(int id) {
|
|
31 lastId =id;
|
|
32 }
|
|
33
|
|
34 private int incrementLastId() {
|
|
35 return ++lastId;
|
|
36 }
|
|
37
|
|
38 public static CommandType getCommandTypeFromId(int id) {
|
|
39 return hash.get(id);
|
|
40 }
|
|
41
|
|
42 static {
|
|
43 for (CommandType type : CommandType.values()) {
|
|
44 hash.put(type.id, type);
|
|
45 }
|
|
46 }
|
|
47
|
|
48 }
|