diff --git a/include/MQMessage.h b/include/MQMessage.h index 9c14e541b..cc65fd121 100755 --- a/include/MQMessage.h +++ b/include/MQMessage.h @@ -40,17 +40,17 @@ class ROCKETMQCLIENT_API MQMessage { MQMessage(const MQMessage& other); MQMessage& operator=(const MQMessage& other); - void setProperty(const std::string& name, const std::string& value); - std::string getProperty(const std::string& name) const; + void setProperty(const std::string& name, const std::string& value) ; + const std::string & getProperty(const std::string& name) const; - std::string getTopic() const; + const std::string &getTopic() const; void setTopic(const std::string& topic); void setTopic(const char* body, int len); - std::string getTags() const; + const std::string &getTags() const; void setTags(const std::string& tags); - std::string getKeys() const; + const std::string &getKeys() const; void setKeys(const std::string& keys); void setKeys(const std::vector& keys); @@ -63,7 +63,7 @@ class ROCKETMQCLIENT_API MQMessage { int getFlag() const; void setFlag(int flag); - std::string getBody() const; + const std::string &getBody() const; void setBody(const char* body, int len); void setBody(const std::string& body); diff --git a/src/message/MQMessage.cpp b/src/message/MQMessage.cpp index 5f3812e35..c8bae4b53 100755 --- a/src/message/MQMessage.cpp +++ b/src/message/MQMessage.cpp @@ -93,13 +93,16 @@ void MQMessage::setProperty(const string& name, const string& value) { m_properties[name] = value; } -string MQMessage::getProperty(const string& name) const { +const string & MQMessage::getProperty(const string& name) const { map::const_iterator it = m_properties.find(name); - - return (it == m_properties.end()) ? "" : (*it).second; + if(it == m_properties.end()){ + return ""; + }else{ + return it->second; + } } -string MQMessage::getTopic() const { return m_topic; } +const string& MQMessage::getTopic() const { return m_topic; } void MQMessage::setTopic(const string& topic) { m_topic = topic; } @@ -108,13 +111,13 @@ void MQMessage::setTopic(const char* body, int len) { m_topic.append(body, len); } -string MQMessage::getTags() const { return getProperty(PROPERTY_TAGS); } +const string& MQMessage::getTags() const { return getProperty(PROPERTY_TAGS); } void MQMessage::setTags(const string& tags) { setProperty(PROPERTY_TAGS, tags); } -string MQMessage::getKeys() const { return getProperty(PROPERTY_KEYS); } +const string& MQMessage::getKeys() const { return getProperty(PROPERTY_KEYS); } void MQMessage::setKeys(const string& keys) { setProperty(PROPERTY_KEYS, keys); @@ -174,7 +177,7 @@ int MQMessage::getFlag() const { return m_flag; } void MQMessage::setFlag(int flag) { m_flag = flag; } -string MQMessage::getBody() const { return m_body; } +const string& MQMessage::getBody() const { return m_body; } void MQMessage::setBody(const char* body, int len) { m_body.clear();