package com.intrbiz.bergamot.ui.action;
import com.intrbiz.bergamot.model.ActiveCheck;
import com.intrbiz.bergamot.model.message.scheduler.DisableCheck;
import com.intrbiz.bergamot.model.message.scheduler.EnableCheck;
import com.intrbiz.bergamot.model.message.scheduler.SchedulerAction;
import com.intrbiz.bergamot.queue.SchedulerQueue;
import com.intrbiz.bergamot.queue.key.SchedulerKey;
import com.intrbiz.metadata.Action;
import com.intrbiz.queue.RoutedProducer;
public class SchedulerActions
{
private SchedulerQueue queue;
private RoutedProducer<SchedulerAction, SchedulerKey> schedulerActionProducer;
public SchedulerActions()
{
this.queue = SchedulerQueue.open();
this.schedulerActionProducer = this.queue.publishSchedulerActions();
}
@Action("enable-check")
public void enableCheck(ActiveCheck<?, ?> check)
{
synchronized (this)
{
this.schedulerActionProducer.publish(new SchedulerKey(check.getSiteId(), check.getPool()), new EnableCheck(check.getId()));
}
}
@Action("disable-check")
public void disableCheck(ActiveCheck<?, ?> check)
{
synchronized (this)
{
this.schedulerActionProducer.publish(new SchedulerKey(check.getSiteId(), check.getPool()), new DisableCheck(check.getId()));
}
}
}