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,20 +46,20 @@ namespace mqtt { | ||
46 | class Subscription | 46 | class Subscription |
47 | { | 47 | { |
48 | public: | 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 | : m_topic( topic ) | 50 | : m_topic( topic ) |
51 | , m_qos( qos ) | 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 | std::string getTopic() const { return m_topic; } | 55 | std::string getTopic() const { return m_topic; } |
56 | int getQoS() const { return m_qos; } | 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 | private: | 59 | private: |
60 | std::string m_topic; | 60 | std::string m_topic; |
61 | int m_qos; | 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 | // Forward definition | 65 | // Forward definition |
src/mqttclient.cpp
@@ -256,7 +256,7 @@ Token MqttClient::subscribe(const std::string& topic, int qos, const std::functi | @@ -256,7 +256,7 @@ Token MqttClient::subscribe(const std::string& topic, int qos, const std::functi | ||
256 | // Store the subscription in the buffer for later processing. | 256 | // Store the subscription in the buffer for later processing. |
257 | { | 257 | { |
258 | OSDEV_COMPONENTS_LOCKGUARD(m_subscriptionMutex); | 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 | return Token(m_clientId, -1); | 262 | return Token(m_clientId, -1); |
@@ -271,7 +271,8 @@ Token MqttClient::subscribe(const std::string& topic, int qos, const std::functi | @@ -271,7 +271,8 @@ Token MqttClient::subscribe(const std::string& topic, int qos, const std::functi | ||
271 | { | 271 | { |
272 | for (const auto& c : m_additionalClients) | 272 | for (const auto& c : m_additionalClients) |
273 | { | 273 | { |
274 | - if (!c->isOverlapping(topic)) { | 274 | + if (!c->isOverlapping(topic)) |
275 | + { | ||
275 | client = c.get(); | 276 | client = c.get(); |
276 | clientFound = true; | 277 | clientFound = true; |
277 | break; | 278 | break; |
@@ -306,13 +307,15 @@ std::set<Token> MqttClient::unsubscribe(const std::string& topic, int qos) | @@ -306,13 +307,15 @@ std::set<Token> MqttClient::unsubscribe(const std::string& topic, int qos) | ||
306 | std::vector<IMqttClientImpl*> clients{}; | 307 | std::vector<IMqttClientImpl*> clients{}; |
307 | { | 308 | { |
308 | OSDEV_COMPONENTS_LOCKGUARD(m_internalMutex); | 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 | LogError("[MqttClient::unsubscribe]", std::string( m_clientId + " - Unable to unsubscribe, not connected" ) ); | 312 | LogError("[MqttClient::unsubscribe]", std::string( m_clientId + " - Unable to unsubscribe, not connected" ) ); |
311 | // Throw (MqttException, "Not connected"); | 313 | // Throw (MqttException, "Not connected"); |
312 | return std::set<Token>(); | 314 | return std::set<Token>(); |
313 | } | 315 | } |
314 | clients.push_back(m_principalClient.get()); | 316 | clients.push_back(m_principalClient.get()); |
315 | - for (const auto& c : m_additionalClients) { | 317 | + for (const auto& c : m_additionalClients) |
318 | + { | ||
316 | clients.push_back(c.get()); | 319 | clients.push_back(c.get()); |
317 | } | 320 | } |
318 | } | 321 | } |