/******************************************************************************!
* \file messagejob.h
* \author Sebastien Beaugrand
* \sa http://beaugrand.chez.com/
* \copyright CeCILL 2.1 Free Software license
******************************************************************************/
#pragma once
#include <amqp.h>
#include <amqp_tcp_socket.h>
#include <QObject>
#include <QRunnable>
namespace mq {
class MessageJob : public QObject, public QRunnable
{
Q_OBJECT
public:
explicit MessageJob(const std::string& name) : mQueueName(name) {}
virtual void run();
void open();
void close() { mLoop = false; }
std::string hostname = "localhost";
int port = AMQP_PROTOCOL_PORT;
signals:
void clickSignal();
void closeSignal();
private:
void loop();
void reply(const std::string& response,
const amqp_envelope_t& envelope) const;
void destroy();
std::string mQueueName;
bool mLoop = true;
amqp_connection_state_t mConn = nullptr;
};
}