package cz.cuni.mff.d3s.been.manager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.hazelcast.core.Client;
import cz.cuni.mff.d3s.been.cluster.ServiceException;
import cz.cuni.mff.d3s.been.cluster.context.ClusterContext;
import cz.cuni.mff.d3s.been.mq.IMessageSender;
/**
*
* Listens for client connection events.
*
* @author Martin Sixta
*/
final class ClientListener extends TaskManagerService implements com.hazelcast.core.ClientListener {
private ClusterContext clusterCtx;
private IMessageSender sender;
/**
* Creates ClientListener.
*
* @param clusterCtx
* connection to the cluster.
*/
public ClientListener(ClusterContext clusterCtx) {
this.clusterCtx = clusterCtx;
}
private static final Logger log = LoggerFactory.getLogger(ClientListener.class);
@Override
public void clientConnected(Client client) {
log.debug("Client connected: " + client);
}
@Override
public void clientDisconnected(Client client) {
log.debug("Client disconnected: " + client);
}
@Override
public void start() throws ServiceException {
sender = createSender();
clusterCtx.getClientService().addClientListener(this);
}
@Override
public void stop() {
clusterCtx.getClientService().removeClientListener(this);
sender.close();
}
}