package io.muoncore.extension.amqp;
import java.util.Map;
import static io.muoncore.extension.amqp.QueueMessageBuilder.*;
public interface QueueListener {
void cancel();
interface QueueFunction {
void exec(QueueMessage message);
}
class QueueMessage {
private String queueName;
private byte[] body;
private Map<String, String> headers;
public QueueMessage(String queueName, byte[] body, Map<String, String> headers) {
assert queueName != null;
assert body != null;
assert headers != null;
this.queueName = queueName;
this.body = body;
this.headers= headers;
}
public String getQueueName() {
return queueName;
}
public byte[] getBody() {
return body;
}
public Map<String, String> getHeaders() {
return headers;
}
public String getProtocol() {
return headers.get(HEADER_PROTOCOL);
}
public String getServerReplyTo() {
return headers.get(HEADER_REPLY_TO);
}
public String getRecieveQueue() {
return headers.get(HEADER_RECEIVE_QUEUE);
}
public String getContentType() {
return headers.get(HEADER_CONTENT_TYPE);
}
public String getHandshakeMessage() {
return headers.get(HEADER_HANDSHAKE);
}
@Override
public String toString() {
return "QueueMessage{" +
"queueName='" + queueName + '\'' +
", headers=" + headers +
'}';
}
}
}