Commit ef28d9ce574b89813c96596a1ee5eec8a4707dfc
1 parent
8ae7f1fe
Fixed pass by reference to pass by value
Showing
2 changed files
with
11 additions
and
8 deletions
include/mqttclient.h
| ... | ... | @@ -46,20 +46,20 @@ namespace mqtt { |
| 46 | 46 | class Subscription |
| 47 | 47 | { |
| 48 | 48 | public: |
| 49 | - Subscription( const std::string &topic, int qos, const std::function<void(MqttMessage)>& call_back ) | |
| 49 | + Subscription( const std::string &topic, int qos, const std::function<void(MqttMessage)> call_back ) | |
| 50 | 50 | : m_topic( topic ) |
| 51 | 51 | , m_qos( qos ) |
| 52 | - , m_call_back(const_cast<std::function<void(MqttMessage)>&>(call_back )) | |
| 52 | + , m_call_back(call_back ) | |
| 53 | 53 | {} |
| 54 | 54 | |
| 55 | 55 | std::string getTopic() const { return m_topic; } |
| 56 | 56 | int getQoS() const { return m_qos; } |
| 57 | - std::function<void(MqttMessage)>& getCallBack() const { return m_call_back; } | |
| 57 | + std::function<void(MqttMessage)> getCallBack() { return m_call_back; } | |
| 58 | 58 | |
| 59 | 59 | private: |
| 60 | 60 | std::string m_topic; |
| 61 | 61 | int m_qos; |
| 62 | - std::function<void(MqttMessage)>& m_call_back; | |
| 62 | + std::function<void(MqttMessage)> m_call_back; | |
| 63 | 63 | }; |
| 64 | 64 | |
| 65 | 65 | // Forward definition | ... | ... |
src/mqttclient.cpp
| ... | ... | @@ -256,7 +256,7 @@ Token MqttClient::subscribe(const std::string& topic, int qos, const std::functi |
| 256 | 256 | // Store the subscription in the buffer for later processing. |
| 257 | 257 | { |
| 258 | 258 | OSDEV_COMPONENTS_LOCKGUARD(m_subscriptionMutex); |
| 259 | - m_deferredSubscriptions.push_back( Subscription( topic, qos, cb ) ); | |
| 259 | + m_deferredSubscriptions.emplace_back( topic, qos, cb ); | |
| 260 | 260 | } |
| 261 | 261 | |
| 262 | 262 | return Token(m_clientId, -1); |
| ... | ... | @@ -271,7 +271,8 @@ Token MqttClient::subscribe(const std::string& topic, int qos, const std::functi |
| 271 | 271 | { |
| 272 | 272 | for (const auto& c : m_additionalClients) |
| 273 | 273 | { |
| 274 | - if (!c->isOverlapping(topic)) { | |
| 274 | + if (!c->isOverlapping(topic)) | |
| 275 | + { | |
| 275 | 276 | client = c.get(); |
| 276 | 277 | clientFound = true; |
| 277 | 278 | break; |
| ... | ... | @@ -306,13 +307,15 @@ std::set<Token> MqttClient::unsubscribe(const std::string& topic, int qos) |
| 306 | 307 | std::vector<IMqttClientImpl*> clients{}; |
| 307 | 308 | { |
| 308 | 309 | OSDEV_COMPONENTS_LOCKGUARD(m_internalMutex); |
| 309 | - if (!m_principalClient || m_principalClient->connectionStatus() == ConnectionStatus::Disconnected) { | |
| 310 | + if (!m_principalClient || m_principalClient->connectionStatus() == ConnectionStatus::Disconnected) | |
| 311 | + { | |
| 310 | 312 | LogError("[MqttClient::unsubscribe]", std::string( m_clientId + " - Unable to unsubscribe, not connected" ) ); |
| 311 | 313 | // Throw (MqttException, "Not connected"); |
| 312 | 314 | return std::set<Token>(); |
| 313 | 315 | } |
| 314 | 316 | clients.push_back(m_principalClient.get()); |
| 315 | - for (const auto& c : m_additionalClients) { | |
| 317 | + for (const auto& c : m_additionalClients) | |
| 318 | + { | |
| 316 | 319 | clients.push_back(c.get()); |
| 317 | 320 | } |
| 318 | 321 | } | ... | ... |