package com.intrbiz.bergamot.queue; import java.util.UUID; import com.intrbiz.bergamot.model.message.event.check.CheckEvent; import com.intrbiz.bergamot.queue.impl.RabbitWatcherQueue; import com.intrbiz.bergamot.queue.key.WatcherKey; import com.intrbiz.queue.Consumer; import com.intrbiz.queue.DeliveryHandler; import com.intrbiz.queue.QueueAdapter; import com.intrbiz.queue.QueueManager; import com.intrbiz.queue.RoutedProducer; /** * Send events to watchers */ public abstract class WatcherQueue extends QueueAdapter { static { RabbitWatcherQueue.register(); } public static WatcherQueue open() { return QueueManager.getInstance().queueAdapter(WatcherQueue.class); } // watcher public abstract RoutedProducer<CheckEvent, WatcherKey> publishWatcherEvents(); public abstract Consumer<CheckEvent, WatcherKey> consumeWatcherEvents(DeliveryHandler<CheckEvent> handler, UUID watcher, String engine); }