/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Copyright 2013 - 2020, nymea GmbH * Contact: contact@nymea.io * * This file is part of nymea. * This project including source code and documentation is protected by * copyright law, and remains the property of nymea GmbH. All rights, including * reproduction, publication, editing and translation, are reserved. The use of * this project is subject to the terms of a license agreement to be concluded * with nymea GmbH in accordance with the terms of use of nymea GmbH, available * under https://nymea.io/license * * GNU General Public License Usage * Alternatively, this project may be redistributed and/or modified under the * terms of the GNU General Public License as published by the Free Software * Foundation, GNU version 3. This project is distributed in the hope that it * will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General * Public License for more details. * * You should have received a copy of the GNU General Public License along with * this project. If not, see . * * For any further details and any questions please contact us under * contact@nymea.io or see our FAQ/Licensing Information on * https://nymea.io/license/faq * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ #ifndef ENGINE_H #define ENGINE_H #include #include "thingmanager.h" #include "connection/nymeatransportinterface.h" #include "jsonrpc/jsonrpcclient.h" class RuleManager; class ScriptManager; class LogManager; class TagsManager; class NymeaConfiguration; class SystemController; class NetworkManager; class Engine : public QObject { Q_OBJECT Q_PROPERTY(ThingManager* thingManager READ thingManager CONSTANT) Q_PROPERTY(RuleManager* ruleManager READ ruleManager CONSTANT) Q_PROPERTY(ScriptManager* scriptManager READ scriptManager CONSTANT) Q_PROPERTY(TagsManager* tagsManager READ tagsManager CONSTANT) Q_PROPERTY(JsonRpcClient* jsonRpcClient READ jsonRpcClient CONSTANT) Q_PROPERTY(NymeaConfiguration* nymeaConfiguration READ nymeaConfiguration CONSTANT) Q_PROPERTY(SystemController* systemController READ systemController CONSTANT) public: explicit Engine(QObject *parent = nullptr); ThingManager *thingManager() const; RuleManager *ruleManager() const; ScriptManager *scriptManager() const; TagsManager *tagsManager() const; JsonRpcClient *jsonRpcClient() const; LogManager *logManager() const; NymeaConfiguration *nymeaConfiguration() const; SystemController *systemController() const; private: JsonRpcClient *m_jsonRpcClient; ThingManager *m_thingManager; RuleManager *m_ruleManager; ScriptManager *m_scriptManager; LogManager *m_logManager; TagsManager *m_tagsManager; NymeaConfiguration *m_nymeaConfiguration; SystemController *m_systemController; private slots: void onConnectedChanged(); void onThingManagerFetchingChanged(); }; #endif // ENGINE_H