view src/alice/datasegment/CommandType.java @ 308:a8255a831ade

implement ping api
author sugi
date Tue, 19 Nov 2013 17:39:44 +0900
parents 7f47231ef509
children
line wrap: on
line source

package alice.datasegment;

import java.util.HashMap;

public enum CommandType {
	PUT,
	UPDATE, // remove a DataSegment value and put
	PEEK,
	TAKE,
	REMOVE,
	REPLY,
	CLOSE,
	FINISH, 
	PING,
	RESPONSE;
	
	public int id;
	public static HashMap<Integer, CommandType> hash = new HashMap<Integer, CommandType>();
	private static int lastId = 0;
	
	private CommandType(int id) {
		this.id = id;
		setLastId(id);
	}
	
	private CommandType() {
		this.id = incrementLastId();
	}
	
	private void setLastId(int id) {
		lastId =id;
	}
	
	private int incrementLastId() {
		return ++lastId;
	}
	
	public static CommandType getCommandTypeFromId(int id) {
		return hash.get(id);
	}
	
	static {
		for (CommandType type : CommandType.values()) {
			hash.put(type.id, type);
		}
	}
	
}