5 #ifndef config_amqp_client_h
6 #define config_amqp_client_h
11 #include <boost/asio/ip/tcp.hpp>
13 #include <SimpleAmqpClient/SimpleAmqpClient.h>
14 #include <tbb/atomic.h>
18 struct ConfigAmqpConnInfo;
27 return (
channel_ = AmqpClient::Channel::CreateFromUri(uri));
31 std::string ca_cert, std::string host, std::string client_key,
32 std::string client_cert,
int port, std::string username,
33 std::string password, std::string vhost,
int frame_max = 131072,
34 bool verify_hostname =
false) {
35 return (
channel_ = AmqpClient::Channel::CreateSecure(ca_cert, host,
36 client_key, client_cert, port, username, password, vhost,
37 frame_max , verify_hostname));
41 const std::string &exchange_type,
bool passive,
bool durable,
43 channel_->DeclareExchange(exchange_name, exchange_type, passive,
44 durable, auto_delete);
47 virtual void DeleteQueue(
const std::string &queue_name,
bool if_unused,
49 channel_->DeleteQueue(queue_name, if_unused, if_empty);
53 bool passive,
bool durable,
bool exclusive,
bool auto_delete) {
54 return channel_->DeclareQueue(queue_name, passive, durable, exclusive,
58 virtual void BindQueue(
const std::string &queue_name,
59 const std::string &exchange_name,
60 const std::string &routing_key =
"") {
61 channel_->BindQueue(queue_name, exchange_name, routing_key);
65 const std::string &consumer_tag,
bool no_local,
bool no_ack,
66 bool exclusive, boost::uint16_t message_prefetch_count) {
67 return channel_->BasicConsume(queue, consumer_tag, no_local, no_ack,
68 exclusive, message_prefetch_count);
72 AmqpClient::Envelope::ptr_t &envelope,
int timeout) {
73 return channel_->BasicConsumeMessage(consumer_tag, envelope, timeout);
76 virtual void BasicAck(
const AmqpClient::Envelope::ptr_t &message) {
89 typedef boost::asio::ip::tcp::endpoint
Endpoint;
136 std::string
FormAmqpUri(
bool hide_auth_info)
const;
138 std::string uuid_str);
148 class RabbitMQReader;
175 #endif // config_amqp_client_h
std::string FormAmqpUri(bool hide_auth_info) const
tbb::atomic< uint64_t > connection_status_change_at_
void set_connected(bool connected)
bool ProcessMessage(const std::string &json_message)
virtual void BindQueue(const std::string &queue_name, const std::string &exchange_name, const std::string &routing_key="")
void StartRabbitMQReader()
std::string module_name() const
std::string rabbitmq_ssl_keyfile_
std::string rabbitmq_ssl_certfile_
std::string rabbitmq_ssl_ca_certs_
AmqpClient::Channel::ptr_t channel_
std::string rabbitmq_vhost() const
std::string rabbitmq_port() const
virtual AmqpClient::Channel::ptr_t CreateSecure(std::string ca_cert, std::string host, std::string client_key, std::string client_cert, int port, std::string username, std::string password, std::string vhost, int frame_max=131072, bool verify_hostname=false)
std::vector< std::string > rabbitmq_ips_
std::string rabbitmq_ssl_version() const
std::string rabbitmq_ssl_certfile() const
std::string rabbitmq_ssl_keyfile() const
virtual std::string DeclareQueue(const std::string &queue_name, bool passive, bool durable, bool exclusive, bool auto_delete)
static void set_disable(bool disable)
std::vector< Endpoint > endpoints_
std::string rabbitmq_password_
tbb::atomic< bool > connection_status_
std::string rabbitmq_ip() const
void ReportRabbitMQConnectionStatus(bool connected) const
void GetConnectionInfo(ConfigAmqpConnInfo &info) const
size_t current_server_index_
ConfigClientManager * config_manager() const
std::vector< std::string > rabbitmq_ports_
std::string rabbitmq_user_
boost::asio::ip::tcp::endpoint Endpoint
std::string rabbitmq_ssl_ca_certs() const
ConfigClientManager * config_manager()
virtual bool BasicConsumeMessage(const std::string &consumer_tag, AmqpClient::Envelope::ptr_t &envelope, int timeout)
virtual ~ConfigAmqpChannel()
virtual void DeclareExchange(const std::string &exchange_name, const std::string &exchange_type, bool passive, bool durable, bool auto_delete)
virtual void DeleteQueue(const std::string &queue_name, bool if_unused, bool if_empty)
ConfigAmqpClient(ConfigClientManager *mgr, std::string hostname, std::string module_name, const ConfigClientOptions &options)
std::string hostname() const
virtual std::string BasicConsume(const std::string &queue, const std::string &consumer_tag, bool no_local, bool no_ack, bool exclusive, boost::uint16_t message_prefetch_count)
std::string rabbitmq_user() const
void EnqueueUUIDRequest(std::string oper, std::string obj_type, std::string uuid_str)
void increment_rabbitmq_server_index()
int reader_task_id() const
std::string rabbitmq_vhost_
void set_terminate(bool terminate)
ConfigClientManager * mgr_
std::string rabbitmq_password() const
bool rabbitmq_use_ssl() const
virtual void BasicAck(const AmqpClient::Envelope::ptr_t &message)
std::string rabbitmq_ssl_version_
virtual AmqpClient::Channel::ptr_t CreateFromUri(std::string uri)
size_t rabbitmq_server_list_len() const
std::vector< Endpoint > endpoints() const
virtual ~ConfigAmqpClient()