package cz.cuni.mff.d3s.been.manager;
import cz.cuni.mff.d3s.been.cluster.Service;
import cz.cuni.mff.d3s.been.cluster.ServiceException;
import cz.cuni.mff.d3s.been.manager.msg.TaskMessage;
import cz.cuni.mff.d3s.been.mq.IMessageSender;
import cz.cuni.mff.d3s.been.mq.MessageQueues;
import cz.cuni.mff.d3s.been.mq.MessagingException;
/**
*
* Base class for Task Manager's service.
*
* With easy access to all those things Task Manager's services need.
*
* @author Martin Sixta
*/
abstract class TaskManagerService implements Service {
/** message queue */
protected final MessageQueues mqs = MessageQueues.getInstance();
/**
* Returns a new sender to the Task Manager's queue.
*
* @return Sender bind to the Task Manager's action queue
* @throws ServiceException
* when a sender cannot be created
*/
final IMessageSender<TaskMessage> createSender() throws ServiceException {
try {
return mqs.createSender(TaskManagerNames.ACTION_QUEUE_NAME);
} catch (MessagingException e) {
String msg = String.format("Cannot create sender to %s", TaskManagerNames.ACTION_QUEUE_NAME);
throw new ServiceException(msg, e);
}
}
}