package siebog.utils;
import org.infinispan.Cache;
import org.infinispan.manager.CacheContainer;
import siebog.agents.AID;
import siebog.agents.Agent;
import siebog.jasonee.control.ExecutionControl;
import siebog.jasonee.environment.Environment;
public class GlobalCache {
private static final String CACHE_CONTAINER = "java:jboss/infinispan/container/siebog-cache";
private static GlobalCache instance;
private CacheContainer cacheContainer;
private static final String RUNNING_AGENTS = "running-agents";
private static final String EXECUTION_CONTROLS = "execution-controls";
private static final String ENVIRONMENTS = "environments";
public static GlobalCache get() {
if (instance == null) {
synchronized (GlobalCache.class) {
if (instance == null)
instance = new GlobalCache();
}
}
return instance;
}
private GlobalCache() {
cacheContainer = ObjectFactory.lookup(CACHE_CONTAINER, CacheContainer.class);
}
public Cache<AID, Agent> getRunningAgents() {
return cacheContainer.getCache(RUNNING_AGENTS);
}
public Cache<String, ExecutionControl> getExecutionControls() {
return cacheContainer.getCache(EXECUTION_CONTROLS);
}
public Cache<String, Environment> getEnvironments() {
return cacheContainer.getCache(ENVIRONMENTS);
}
public Cache<?, ?> getCache(String name) {
return cacheContainer.getCache(name);
}
}