diff --git a/libnymea-core/experiences/experiencemanager.cpp b/libnymea-core/experiences/experiencemanager.cpp index 8b0fb746..b969f985 100644 --- a/libnymea-core/experiences/experiencemanager.cpp +++ b/libnymea-core/experiences/experiencemanager.cpp @@ -26,7 +26,7 @@ #include "experiences/experienceplugin.h" #include "servermanager.h" -#include "jsonrpc/jsonrpcserverimplementation.h" +#include "jsonrpc/jsonrpcserver.h" #include "loggingcategories.h" #include @@ -36,11 +36,12 @@ namespace nymeaserver { -ExperienceManager::ExperienceManager(ThingManager *thingManager, JsonRPCServer *jsonRpcServer, ServerManager *serverManager, QObject *parent) : +ExperienceManager::ExperienceManager(ThingManager *thingManager, JsonRPCServer *jsonRpcServer, ServerManager *serverManager, LogEngine *logEngine, QObject *parent) : QObject{parent}, m_thingManager{thingManager}, m_jsonRpcServer{jsonRpcServer}, - m_serverManager{serverManager} + m_serverManager{serverManager}, + m_logEngine{logEngine} { staticMetaObject.invokeMethod(this, "loadPlugins", Qt::QueuedConnection); @@ -124,7 +125,7 @@ void ExperienceManager::loadExperiencePlugin(const QString &file) qCDebug(dcExperiences()) << "Loaded experience plugin:" << loader.fileName(); m_plugins.append(plugin); plugin->setParent(this); - plugin->initPlugin(m_thingManager, m_jsonRpcServer); + plugin->initPlugin(m_thingManager, m_jsonRpcServer, m_logEngine); if (plugin->webServerResource()) { m_serverManager->registerWebServerResource(plugin->webServerResource()); @@ -136,7 +137,7 @@ void ExperienceManager::loadExperiencePlugin(ExperiencePlugin *experiencePlugin) qCDebug(dcExperiences()) << "Adding experience plugin:" << experiencePlugin; m_plugins.append(experiencePlugin); experiencePlugin->setParent(this); - experiencePlugin->initPlugin(m_thingManager, m_jsonRpcServer); + experiencePlugin->initPlugin(m_thingManager, m_jsonRpcServer, m_logEngine); if (experiencePlugin->webServerResource()) { m_serverManager->registerWebServerResource(experiencePlugin->webServerResource()); diff --git a/libnymea-core/experiences/experiencemanager.h b/libnymea-core/experiences/experiencemanager.h index 47eb3439..530bbece 100644 --- a/libnymea-core/experiences/experiencemanager.h +++ b/libnymea-core/experiences/experiencemanager.h @@ -29,6 +29,7 @@ class ExperiencePlugin; class JsonRPCServer; +class LogEngine; class ThingManager; namespace nymeaserver { @@ -39,7 +40,7 @@ class ExperienceManager : public QObject { Q_OBJECT public: - explicit ExperienceManager(ThingManager *thingManager, JsonRPCServer *jsonRpcServer, ServerManager *serverManager, QObject *parent = nullptr); + explicit ExperienceManager(ThingManager *thingManager, JsonRPCServer *jsonRpcServer, ServerManager *serverManager, LogEngine *logEngine = nullptr, QObject *parent = nullptr); QList plugins() const; @@ -53,6 +54,7 @@ private: ThingManager *m_thingManager = nullptr; JsonRPCServer *m_jsonRpcServer = nullptr; ServerManager *m_serverManager = nullptr; + LogEngine *m_logEngine = nullptr; QList m_plugins; diff --git a/libnymea-core/nymeacore.cpp b/libnymea-core/nymeacore.cpp index 30d1191d..3c67cac3 100644 --- a/libnymea-core/nymeacore.cpp +++ b/libnymea-core/nymeacore.cpp @@ -159,7 +159,7 @@ void NymeaCore::init(const QStringList &additionalInterfaces, bool disableLogEng m_serverManager->jsonServer()->registerHandler(new DebugHandler(m_serverManager->jsonServer())); qCDebug(dcCore()) << "Loading experiences"; - m_experienceManager = new ExperienceManager(m_thingManager, m_serverManager->jsonServer(), m_serverManager, this); + m_experienceManager = new ExperienceManager(m_thingManager, m_serverManager->jsonServer(), m_serverManager, m_logEngine, this); connect(m_configuration, &NymeaConfiguration::serverNameChanged, m_serverManager, &ServerManager::setServerName); connect(m_thingManager, &ThingManagerImplementation::loaded, this, &NymeaCore::thingManagerLoaded); diff --git a/libnymea/experiences/experienceplugin.cpp b/libnymea/experiences/experienceplugin.cpp index 504fb166..c9a7786a 100644 --- a/libnymea/experiences/experienceplugin.cpp +++ b/libnymea/experiences/experienceplugin.cpp @@ -55,11 +55,16 @@ JsonRPCServer *ExperiencePlugin::jsonRpcServer() return m_jsonRpcServer; } +LogEngine *ExperiencePlugin::logEngine() +{ + return m_logEngine; +} -void ExperiencePlugin::initPlugin(ThingManager *deviceManager, JsonRPCServer *jsonRPCServer) +void ExperiencePlugin::initPlugin(ThingManager *deviceManager, JsonRPCServer *jsonRPCServer, LogEngine *logEngine) { m_thingManager = deviceManager; m_jsonRpcServer = jsonRPCServer; + m_logEngine = logEngine; init(); } diff --git a/libnymea/experiences/experienceplugin.h b/libnymea/experiences/experienceplugin.h index a4b4ee79..7b27b29b 100644 --- a/libnymea/experiences/experienceplugin.h +++ b/libnymea/experiences/experienceplugin.h @@ -27,6 +27,7 @@ #include +class LogEngine; class ThingManager; class JsonRPCServer; class WebServerResource; @@ -49,13 +50,15 @@ public: protected: ThingManager *thingManager(); JsonRPCServer *jsonRpcServer(); + LogEngine *logEngine(); private: friend class nymeaserver::ExperienceManager; - void initPlugin(ThingManager *thingManager, JsonRPCServer *jsonRPCServer); + void initPlugin(ThingManager *thingManager, JsonRPCServer *jsonRPCServer, LogEngine *logEngine = nullptr); ThingManager *m_thingManager = nullptr; JsonRPCServer *m_jsonRpcServer = nullptr; + LogEngine *m_logEngine = nullptr; };