// Path: conduit/src/main/java/io/rtr/conduit/amqp/AMQPAsyncConsumerCallback.java
// public interface AMQPAsyncConsumerCallback {
//     void handle(AMQPMessageBundle messageBundle, AsyncResponse response);
//     void notifyOfActionFailure(Exception e);
//     void notifyOfShutdown(String consumerTag, ShutdownSignalException sig);
// }
// 
// Path: conduit/src/main/java/io/rtr/conduit/amqp/transport/TransportListenProperties.java
// public interface TransportListenProperties {
// }


import com.rabbitmq.client.MetricsCollector;
import io.rtr.conduit.amqp.AMQPAsyncConsumerCallback;
import io.rtr.conduit.amqp.transport.TransportListenProperties;
package io.rtr.conduit.amqp.impl;


public class AMQPAsyncTransport extends AMQPTransport {
    public AMQPAsyncTransport(boolean ssl, String host, int port, MetricsCollector metricsCollector) {
        super(ssl, host, port, metricsCollector);
    }

    public AMQPAsyncTransport(AMQPConnection sharedConnection) {
        super(sharedConnection);
    }

    @Override
    protected AMQPQueueConsumer getConsumer(Object callback, AMQPCommonListenProperties commonListenProperties, String poisonPrefix){
        return new AMQPAsyncQueueConsumer(
                getChannel(),
// Path: conduit/src/main/java/io/rtr/conduit/amqp/AMQPAsyncConsumerCallback.java
// public interface AMQPAsyncConsumerCallback {
//     void handle(AMQPMessageBundle messageBundle, AsyncResponse response);
//     void notifyOfActionFailure(Exception e);
//     void notifyOfShutdown(String consumerTag, ShutdownSignalException sig);
// }
// 
// Path: conduit/src/main/java/io/rtr/conduit/amqp/transport/TransportListenProperties.java
// public interface TransportListenProperties {
// }


// Path: conduit/src/main/java/io/rtr/conduit/amqp/impl/AMQPAsyncTransport.java
import com.rabbitmq.client.MetricsCollector;
import io.rtr.conduit.amqp.AMQPAsyncConsumerCallback;
import io.rtr.conduit.amqp.transport.TransportListenProperties;

package io.rtr.conduit.amqp.impl;


public class AMQPAsyncTransport extends AMQPTransport {
    public AMQPAsyncTransport(boolean ssl, String host, int port, MetricsCollector metricsCollector) {
        super(ssl, host, port, metricsCollector);
    }

    public AMQPAsyncTransport(AMQPConnection sharedConnection) {
        super(sharedConnection);
    }

    @Override
    protected AMQPQueueConsumer getConsumer(Object callback, AMQPCommonListenProperties commonListenProperties, String poisonPrefix){
        return new AMQPAsyncQueueConsumer(
                getChannel(),
                (AMQPAsyncConsumerCallback) callback,