package com.intrbiz.bergamot.queue; import com.intrbiz.bergamot.model.message.event.control.ControlEvent; import com.intrbiz.bergamot.queue.impl.RabbitControlQueue; import com.intrbiz.queue.Consumer; import com.intrbiz.queue.DeliveryHandler; import com.intrbiz.queue.Producer; import com.intrbiz.queue.QueueAdapter; import com.intrbiz.queue.QueueManager; import com.intrbiz.queue.name.NullKey; /** * Publish and consume control events * * Control events are sent from various components into the * Bergamot master cluster. * */ public abstract class ControlQueue extends QueueAdapter { static { RabbitControlQueue.register(); } public static ControlQueue open() { return QueueManager.getInstance().queueAdapter(ControlQueue.class); } // control events public abstract Producer<ControlEvent> publishControlEvents(); public abstract Consumer<ControlEvent, NullKey> consumeControlEvents(DeliveryHandler<ControlEvent> handler); }