Commit 8f48be6bfe32ba45a1c1ef04ed8e2dbbce307b29

Authored by Peter M. Groen
2 parents 46a66fbb b4a71d8c

Merge branch 'development' into 'master'

Development

See merge request !20
examples/pub/publisher.cpp
@@ -31,7 +31,11 @@ Publisher::Publisher() @@ -31,7 +31,11 @@ Publisher::Publisher()
31 31
32 void Publisher::connect(const std::string &hostname, int portnumber, const std::string &username, const std::string &password, const std::string &lwt_topic, const std::string &lwt_message) 32 void Publisher::connect(const std::string &hostname, int portnumber, const std::string &username, const std::string &password, const std::string &lwt_topic, const std::string &lwt_message)
33 { 33 {
34 - m_mqtt_client.connect( hostname, portnumber, osdev::components::mqtt::Credentials( username, password ), osdev::components::mqtt::mqtt_LWT( lwt_topic, lwt_message ) ); 34 + m_mqtt_client.connect( hostname, portnumber,
  35 + osdev::components::mqtt::Credentials( username, password ),
  36 + osdev::components::mqtt::mqtt_LWT( lwt_topic, lwt_message ), true,
  37 + osdev::components::log::LogSettings{ osdev::components::log::LogLevel::Debug, osdev::components::log::LogMask::None } );
  38 +
35 std::cout << "Client state : " << m_mqtt_client.state() << std::endl; 39 std::cout << "Client state : " << m_mqtt_client.state() << std::endl;
36 } 40 }
37 41
include/imqttclient.h
@@ -37,9 +37,10 @@ @@ -37,9 +37,10 @@
37 // mlogic::mqtt 37 // mlogic::mqtt
38 #include "connectionstatus.h" 38 #include "connectionstatus.h"
39 #include "credentials.h" 39 #include "credentials.h"
  40 +#include "log.h"
40 #include "mqttmessage.h" 41 #include "mqttmessage.h"
41 -#include "token.h"  
42 #include "mqtt_lwt.h" 42 #include "mqtt_lwt.h"
  43 +#include "token.h"
43 44
44 namespace osdev { 45 namespace osdev {
45 namespace components { 46 namespace components {
@@ -60,13 +61,16 @@ public: @@ -60,13 +61,16 @@ public:
60 * @param port The port to use. 61 * @param port The port to use.
61 * @param credentials The credentials to use. 62 * @param credentials The credentials to use.
62 */ 63 */
63 - virtual void connect(const std::string& host, int port, const Credentials& credentials, const mqtt_LWT &lwt = mqtt_LWT(), bool blocking = false ) = 0; 64 + virtual void connect( const std::string& host, int port, const Credentials& credentials,
  65 + const mqtt_LWT &lwt = mqtt_LWT(), bool blocking = false,
  66 + const log::LogSettings &log_settings = log::LogSettings() ) = 0;
64 67
65 /** 68 /**
66 * @brief Connect to the endpoint 69 * @brief Connect to the endpoint
67 * @param endpoint an uri endpoint description. 70 * @param endpoint an uri endpoint description.
68 */ 71 */
69 - virtual void connect(const std::string& endpoint, const mqtt_LWT &lwt = mqtt_LWT(), bool blocking = false ) = 0; 72 + virtual void connect( const std::string& endpoint, const mqtt_LWT &lwt = mqtt_LWT(),
  73 + bool blocking = false, const log::LogSettings &log_settings = log::LogSettings() ) = 0;
70 74
71 /** 75 /**
72 * @brief Disconnect the client from the broker 76 * @brief Disconnect the client from the broker
src/log.h renamed to include/log.h
@@ -105,6 +105,12 @@ enum class LogMask @@ -105,6 +105,12 @@ enum class LogMask
105 None 105 None
106 }; 106 };
107 107
  108 +struct LogSettings
  109 +{
  110 + LogLevel level = LogLevel::Info;
  111 + LogMask mask = LogMask::Upto;
  112 +};
  113 +
108 /*! \class Log 114 /*! \class Log
109 \brief Basic logging mechanism. 115 \brief Basic logging mechanism.
110 */ 116 */
include/mqttclient.h
@@ -31,12 +31,15 @@ @@ -31,12 +31,15 @@
31 #include <vector> 31 #include <vector>
32 32
33 // osdev::components::mqtt 33 // osdev::components::mqtt
34 -#include "synchronizedqueue.h"  
35 -#include "istatecallback.h"  
36 -#include "serverstate.h"  
37 34
  35 +#include "istatecallback.h"
38 #include "imqttclient.h" 36 #include "imqttclient.h"
39 #include "mqtt_lwt.h" 37 #include "mqtt_lwt.h"
  38 +#include "serverstate.h"
  39 +#include "synchronizedqueue.h"
  40 +
  41 +// osdev::components::logger
  42 +#include "log.h"
40 43
41 namespace osdev { 44 namespace osdev {
42 namespace components { 45 namespace components {
@@ -112,12 +115,15 @@ public: @@ -112,12 +115,15 @@ public:
112 /** 115 /**
113 * @see IMqttClient 116 * @see IMqttClient
114 */ 117 */
115 - virtual void connect( const std::string& host, int port, const Credentials &credentials, const mqtt_LWT &lwt = mqtt_LWT(), bool blocking = false ) override; 118 + virtual void connect( const std::string& host, int port, const Credentials &credentials,
  119 + const mqtt_LWT &lwt = mqtt_LWT(), bool blocking = false,
  120 + const log::LogSettings &log_settings = log::LogSettings() ) override;
116 121
117 /** 122 /**
118 * @see IMqttClient 123 * @see IMqttClient
119 */ 124 */
120 - virtual void connect( const std::string &endpoint, const mqtt_LWT &lwt = mqtt_LWT(), bool blocking = false ) override; 125 + virtual void connect( const std::string &endpoint, const mqtt_LWT &lwt = mqtt_LWT(),
  126 + bool blocking = false, const log::LogSettings &log_settings = log::LogSettings() ) override;
121 127
122 /** 128 /**
123 * @see IMqttClient 129 * @see IMqttClient
@@ -166,6 +172,22 @@ public: @@ -166,6 +172,22 @@ public:
166 */ 172 */
167 virtual std::string endpoint() const override; 173 virtual std::string endpoint() const override;
168 174
  175 + /*!
  176 + * \brief setMask update the current logMask
  177 + * \param logMask - Enum defining the logmask used.
  178 + */
  179 + void setMask ( osdev::components::log::LogMask logMask );
  180 + /*!
  181 + * \brief setLogLevel update the current logLevel
  182 + * \param logLevel - Enum defining the logLevel used, in combination with Mask.
  183 + */
  184 + void setLogLevel( osdev::components::log::LogLevel logLevel );
  185 + /*!
  186 + * \brief setContext update the current context
  187 + * \param context - String containing the new context name.
  188 + */
  189 + void setContext ( std::string context );
  190 +
169 private: 191 private:
170 /*! 192 /*!
171 * \brief Callback used to pick up the connection status of the wrappers. 193 * \brief Callback used to pick up the connection status of the wrappers.
src/CMakeLists.txt
@@ -10,7 +10,6 @@ include(compiler) @@ -10,7 +10,6 @@ include(compiler)
10 10
11 include_directories( 11 include_directories(
12 ${CMAKE_SOURCE_DIR}/include 12 ${CMAKE_SOURCE_DIR}/include
13 - ${CMAKE_SOURCE_DIR}/submodules/logger/src  
14 ) 13 )
15 14
16 set(SRC_LIST 15 set(SRC_LIST
src/log.cpp
@@ -53,8 +53,8 @@ int toInt( LogLevel level ) @@ -53,8 +53,8 @@ int toInt( LogLevel level )
53 53
54 std::string Log::s_context = std::string(); 54 std::string Log::s_context = std::string();
55 std::string Log::s_fileName = std::string(); 55 std::string Log::s_fileName = std::string();
56 -LogLevel Log::s_logLevel = LogLevel::Debug;  
57 -LogMask Log::s_logMask = LogMask::None; 56 +LogLevel Log::s_logLevel = LogLevel::Info;
  57 +LogMask Log::s_logMask = LogMask::Upto;
58 58
59 void Log::init( const std::string& context, const std::string& logFile, LogLevel logDepth ) 59 void Log::init( const std::string& context, const std::string& logFile, LogLevel logDepth )
60 { 60 {
src/mqttclient.cpp
@@ -21,9 +21,6 @@ @@ -21,9 +21,6 @@
21 * ***************************************************************************/ 21 * ***************************************************************************/
22 #include "mqttclient.h" 22 #include "mqttclient.h"
23 23
24 -// osdev::components::logger  
25 -#include "log.h"  
26 -  
27 // osdev::components::mqtt 24 // osdev::components::mqtt
28 #include "clientpaho.h" 25 #include "clientpaho.h"
29 #include "mqttutil.h" 26 #include "mqttutil.h"
@@ -127,7 +124,7 @@ StateEnum MqttClient::state() const @@ -127,7 +124,7 @@ StateEnum MqttClient::state() const
127 return m_serverState.state(); 124 return m_serverState.state();
128 } 125 }
129 126
130 -void MqttClient::connect(const std::string& host, int port, const Credentials &credentials, const mqtt_LWT &lwt, bool blocking ) 127 +void MqttClient::connect(const std::string& host, int port, const Credentials &credentials, const mqtt_LWT &lwt, bool blocking, const LogSettings &log_settings )
131 { 128 {
132 osdev::components::mqtt::ParsedUri _endpoint = { 129 osdev::components::mqtt::ParsedUri _endpoint = {
133 { "scheme", "tcp" }, 130 { "scheme", "tcp" },
@@ -137,11 +134,14 @@ void MqttClient::connect(const std::string&amp; host, int port, const Credentials &amp;c @@ -137,11 +134,14 @@ void MqttClient::connect(const std::string&amp; host, int port, const Credentials &amp;c
137 { "port", std::to_string(port) } 134 { "port", std::to_string(port) }
138 }; 135 };
139 136
140 - this->connect( UriParser::toString( _endpoint ), lwt, blocking ); 137 + this->connect( UriParser::toString( _endpoint ), lwt, blocking, log_settings );
141 } 138 }
142 139
143 -void MqttClient::connect( const std::string &_endpoint, const mqtt_LWT &lwt, bool blocking ) 140 +void MqttClient::connect( const std::string &_endpoint, const mqtt_LWT &lwt, bool blocking, const LogSettings &log_settings )
144 { 141 {
  142 + Log::setLogLevel( log_settings.level );
  143 + Log::setMask( log_settings.mask );
  144 +
145 LogInfo( "MqttClient", std::string( m_clientId + " - Request connect" ) ); 145 LogInfo( "MqttClient", std::string( m_clientId + " - Request connect" ) );
146 146
147 OSDEV_COMPONENTS_LOCKGUARD(m_interfaceMutex); 147 OSDEV_COMPONENTS_LOCKGUARD(m_interfaceMutex);
@@ -613,3 +613,18 @@ void MqttClient::eventHandler() @@ -613,3 +613,18 @@ void MqttClient::eventHandler()
613 } 613 }
614 LogInfo("[MqttClient::eventHandler]", std::string( m_clientId + " - leaving event handler." ) ); 614 LogInfo("[MqttClient::eventHandler]", std::string( m_clientId + " - leaving event handler." ) );
615 } 615 }
  616 +
  617 +void MqttClient::setMask(log::LogMask logMask )
  618 +{
  619 + Log::setMask( logMask );
  620 +}
  621 +
  622 +void MqttClient::setLogLevel(log::LogLevel logLevel)
  623 +{
  624 + Log::setLogLevel( logLevel );
  625 +}
  626 +
  627 +void MqttClient::setContext(std::string context)
  628 +{
  629 + Log::setContext( context );
  630 +}