76 lines
2.0 KiB
C++
Executable File
76 lines
2.0 KiB
C++
Executable File
/**
|
|
* MainHandler for Buildings
|
|
* $Id$
|
|
* $HeadURL$
|
|
* $Author$
|
|
* Created by Christian Ehrlicher, SLSE, 2016-04-14
|
|
*/
|
|
#pragma once
|
|
|
|
#include <memory>
|
|
#include <QObject>
|
|
#include "building_control_handler.h"
|
|
#include "dds_handler.h"
|
|
#include "ism_handler.h"
|
|
#include "pdm_handler.h"
|
|
#include "ppm_handler.h"
|
|
#include "relay_info_handler.h"
|
|
#include "Buildings/bld_db.h"
|
|
#include <ngldb/db_service_handler.h>
|
|
#include "web_socket_handler.h"
|
|
|
|
|
|
#include "logger.h"
|
|
|
|
namespace NGLDB
|
|
{
|
|
template <typename DB> class DbServiceHandler;
|
|
}
|
|
namespace AssetManagement
|
|
{
|
|
namespace Interface
|
|
{
|
|
class Dtc;
|
|
}
|
|
class RelayInfo;
|
|
}
|
|
|
|
namespace Buildings
|
|
{
|
|
|
|
using DbHandler = NGLDB::DbServiceHandler<DatabaseInterface>;
|
|
class MainHandler: public QObject
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
explicit MainHandler(QObject *parent = nullptr);
|
|
~MainHandler();
|
|
|
|
bool init(int domainId, int exerciseId);
|
|
int exerciseId() const;
|
|
|
|
std::shared_ptr<DdsHandler> ddsHandler() const { return m_ddsHandler; }
|
|
std::shared_ptr<PdmHandler> pdmHandler() const { return m_pdmHandler; }
|
|
std::shared_ptr<PpmHandler> ppmHandler() const { return m_ppmHandler; }
|
|
std::shared_ptr<IsmHandler> ismHandler() const { return m_ismHandler; }
|
|
std::shared_ptr<RelayInfoHandler> relayInfoHandler() const {return m_relayInfoHandler;}
|
|
std::shared_ptr<DatabaseInterface> db() const;
|
|
|
|
private slots:
|
|
// void onRelayInfoChanged(const AssetManagement::RelayInfo& info, DataModification mod);
|
|
private:
|
|
bool initInternal(int domainId, int exerciseId);
|
|
std::shared_ptr<BuildingControlHandler> m_bcHandler;
|
|
std::shared_ptr<DdsHandler> m_ddsHandler;
|
|
std::shared_ptr<DbHandler> m_dbHandler;
|
|
std::shared_ptr<IsmHandler> m_ismHandler;
|
|
std::shared_ptr<PdmHandler> m_pdmHandler;
|
|
std::shared_ptr<PpmHandler> m_ppmHandler;
|
|
std::shared_ptr<RelayInfoHandler> m_relayInfoHandler;
|
|
std::shared_ptr<AssetManagement::Interface::Dtc> m_asmDtc;
|
|
std::shared_ptr<WebSocketHandler> m_webSocketHandler;
|
|
|
|
LOGGER_T m_logger;
|
|
};
|
|
} // namespace Buildings
|