mirror of https://github.com/nymea/nymea.git
ExperienceManager: Make LogEngine available to experience plugins
parent
ab9df2711a
commit
9a34f40372
|
|
@ -26,7 +26,7 @@
|
|||
#include "experiences/experienceplugin.h"
|
||||
#include "servermanager.h"
|
||||
|
||||
#include "jsonrpc/jsonrpcserverimplementation.h"
|
||||
#include "jsonrpc/jsonrpcserver.h"
|
||||
#include "loggingcategories.h"
|
||||
|
||||
#include <QCoreApplication>
|
||||
|
|
@ -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());
|
||||
|
|
|
|||
|
|
@ -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<ExperiencePlugin *> plugins() const;
|
||||
|
||||
|
|
@ -53,6 +54,7 @@ private:
|
|||
ThingManager *m_thingManager = nullptr;
|
||||
JsonRPCServer *m_jsonRpcServer = nullptr;
|
||||
ServerManager *m_serverManager = nullptr;
|
||||
LogEngine *m_logEngine = nullptr;
|
||||
|
||||
QList<ExperiencePlugin *> m_plugins;
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,6 +27,7 @@
|
|||
|
||||
#include <QObject>
|
||||
|
||||
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;
|
||||
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue