package com.intrbiz.bergamot.queue;
import com.intrbiz.bergamot.accounting.model.BergamotAccountingEvent;
import com.intrbiz.bergamot.queue.impl.RabbitAccountingQueue;
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;
/**
* Send accounting events
*/
public abstract class AccountingQueue extends QueueAdapter
{
static
{
RabbitAccountingQueue.register();
}
public static AccountingQueue open()
{
return QueueManager.getInstance().queueAdapter(AccountingQueue.class);
}
public abstract Producer<BergamotAccountingEvent> publishAccountingEvents();
public abstract Consumer<BergamotAccountingEvent, NullKey> consumeAccountingEvents(DeliveryHandler<BergamotAccountingEvent> handler);
}