package tc.oc.api.queue; import java.io.IOException; import javax.inject.Inject; import javax.inject.Singleton; import tc.oc.api.config.ApiConfiguration; /** * The primary queue aka server queue aka reply queue */ @Singleton public class PrimaryQueue extends Queue { private final Exchange.Direct direct; private final Exchange.Fanout fanout; @Inject PrimaryQueue(ApiConfiguration config, Exchange.Direct direct, Exchange.Fanout fanout) { super(new Consume(config.primaryQueueName(), false, false, true, null)); this.direct = direct; this.fanout = fanout; } @Override public void connect() throws IOException { super.connect(); bind(direct, name()); bind(fanout, ""); } }