package cz.cuni.mff.d3s.been.web.services;
import cz.cuni.mff.d3s.been.api.BeenApi;
import cz.cuni.mff.d3s.been.api.BeenApiFactory;
import cz.cuni.mff.d3s.been.api.ClusterConnectionUnavailableException;
/**
* User: donarus Date: 4/27/13 Time: 11:51 AM
*/
public class BeenApiServiceImpl implements BeenApiService {
private BeenApi api = null;
@Override
public boolean isConnected() {
return (api != null) && api.isConnected();
}
@Override
public boolean connect(String host, int port, String groupName, String groupPassword) {
if (api != null) {
api.shutdown();
api = null;
}
if (!isConnected()) {
if (api != null) {
api.shutdown();
}
api = null;
}
api = BeenApiFactory.connect(host, port, groupName, groupPassword);
return isConnected();
}
@Override
public BeenApi getApi() throws ClusterConnectionUnavailableException {
if (!isConnected())
throw new ClusterConnectionUnavailableException("API is not connected.");
return api;
}
@Override
public void disconnect() {
if (isConnected()) {
api.shutdown();
}
api = null;
}
}