#include "rabbitmq_message.h" Rabbitmq_message::Rabbitmq_message() { m_message_type = message::Message_type::eBase_msg; m_receive_time = std::chrono::system_clock::now(); m_timeout_ms = std::chrono::milliseconds(0); //超时默认0秒 m_sender = message::Communicator::eEmpty; m_receiver = message::Communicator::eEmpty; // m_message_buf = ""; } Rabbitmq_message::Rabbitmq_message(const message::Base_info& base_info, std::string receive_string, int channel, int delivery_tag, std::string exchange_name, std::string routing_key) { m_message_type = (message::Message_type)(base_info.msg_type()); m_receive_time = std::chrono::system_clock::now(); m_timeout_ms = std::chrono::milliseconds(base_info.timeout_ms()); m_sender = (message::Communicator)(base_info.sender()); m_receiver = (message::Communicator)(base_info.receiver()); m_message_buf = receive_string; m_channel = channel; m_delivery_tag = delivery_tag; m_exchange_name = exchange_name; m_routing_key = routing_key; } Rabbitmq_message::Rabbitmq_message(std::string receive_string, int channel, std::string exchange_name, std::string routing_key, int timeout_ms=0) { m_timeout_ms = std::chrono::milliseconds(timeout_ms); m_message_buf = receive_string; m_channel = channel; m_exchange_name = exchange_name; m_routing_key = routing_key; } Rabbitmq_message::~Rabbitmq_message() { } bool Rabbitmq_message::is_over_time() { if ( std::chrono::system_clock::now() - m_receive_time > m_timeout_ms) { return true; } else { return false; } } void Rabbitmq_message::reset(const message::Base_info& base_info, std::string receive_string, int channel, int delivery_tag, std::string exchange_name, std::string routing_key) { m_message_type = (message::Message_type)(base_info.msg_type()); m_receive_time = std::chrono::system_clock::now(); m_timeout_ms = std::chrono::milliseconds(base_info.timeout_ms()); m_sender = (message::Communicator)(base_info.sender()); m_receiver = (message::Communicator)(base_info.receiver()); m_message_buf = receive_string; m_channel = channel; m_delivery_tag = delivery_tag; m_exchange_name = exchange_name; m_routing_key = routing_key; } void Rabbitmq_message::reset(std::string receive_string, int channel, std::string exchange_name, std::string routing_key, int timeout_ms = 0) { m_timeout_ms = std::chrono::milliseconds(timeout_ms); m_message_buf = receive_string; m_channel = channel; m_exchange_name = exchange_name; m_routing_key = routing_key; } message::Message_type Rabbitmq_message::get_message_type() { return m_message_type; } message::Communicator Rabbitmq_message::get_sender() { return m_sender; } message::Communicator Rabbitmq_message::get_receiver() { return m_receiver; } std::string Rabbitmq_message::get_message_buf() { return m_message_buf; } std::chrono::system_clock::time_point Rabbitmq_message::get_receive_time() { return m_receive_time; }