Files
qt5-legatus-legacy/Lts/Proxies/Buildings/building_control_handler.h
T
2026-08-13 18:33:10 +02:00

79 lines
3.6 KiB
C++
Executable File

/**
* Handle the single building instances
* $Id$
* $HeadURL$
* $Author$
* Created by Christian Ehrlicher, SLSE, 2017-02-06
*/
#pragma once
#include <QObject>
#include <QVector>
#include "ism_handler.h"
#include "logger.h"
#include <bld_fts.h>
namespace AssetManagement {
class RelayInfo;
}
namespace Buildings
{
class MainHandler;
class BuildingProcess;
class BuildingControlHandler final : public QObject
, protected Interface::Fts::SetBuildingStatesRequestHandler
, protected Interface::Fts::SetBuildingContaminationStateRequestHandler
, protected Interface::Fts::SetFortifyFactorRequestHandler
, protected Interface::Fts::SendCesHitOnBuildingRequestHandler
, protected Interface::Fts::SendCesHit3DonBuildingRequestHandler
, protected Interface::Fts::TriggerBsmFlashRequestHandler
, protected Interface::Fts::SwitchRelayRequestHandler
{
Q_OBJECT
public:
explicit BuildingControlHandler(MainHandler *mainHandler);
~BuildingControlHandler();
bool init();
QMap<int, BuildingProcess *> getBuildings() { return m_buildings;}
public Q_SLOTS:
void onBuildingRemoved(int buildingId);
void onBuildingChanged(const BuildingInfo &buildingInfo, bool damageInit);
void setEffectStates(const int buildingId, const int assetId, const QByteArray &properties);
void onRelayInfoChanged(const AssetManagement::RelayInfo &info, const DataModification mod);
private:
void onSetBuildingContaminationStateRequest(const rti::core::SampleIdentity &cookie,
const SetBuildingContaminationStateRequest &request) override;
void onSetBuildingStatesRequest(const rti::core::SampleIdentity &cookie,
const SetBuildingStatesRequest &request) override;
void onSetFortifyFactorRequest(const rti::core::SampleIdentity &cookie,
const SetFortifyFactorRequest &request) override;
void onSendCesHitOnBuildingRequest(const rti::core::SampleIdentity &cookie,
const SendCesHitOnBuildingRequest &request) override;
void onSendCesHit3DonBuildingRequest(const rti::core::SampleIdentity &cookie,
const SendCesHit3DonBuildingRequest &request) override;
void onTriggerBsmFlashRequest(const rti::core::SampleIdentity &cookie,
const TriggerBsmFlashRequest &request) override;
void onSwitchRelayRequest(const rti::core::SampleIdentity &cookie,
const SwitchRelayRequest &request) override;
Core::FunctionReplyObject onSetBuildingContaminationStateRequestInternal(const SetBuildingContaminationStateRequest &data);
Core::FunctionReplyObject onSetBuildingStatesRequestInternal(const SetBuildingStatesRequest &data);
Core::FunctionReplyObject onSetFortifyFactorRequestInternal(const SetFortifyFactorRequest &data);
Core::FunctionReplyObject onSendCesHitOnBuildingRequestInternal(const SendCesHitOnBuildingRequest &data);
Core::FunctionReplyObject onSendCesHit3DonBuildingRequestInternal(const SendCesHit3DonBuildingRequest &data);
Core::FunctionReplyObject onTriggerBsmFlashInternal(const TriggerBsmFlashRequest &data);
Core::FunctionReplyObject onSwitchRelayInternal(const SwitchRelayRequest &data);
//bool setEffectStates(const int buildingId, const int assetId, QByteArray &properties);
private:
QMap<int, BuildingProcess *> m_buildings; // key = BuildingId
QMap<int, Buildings::HistoryState> m_historyStates; // key = BuildingId
QMap<int, AssetManagement::RelayInfo> m_relayInfos;
QString m_bcuExecutableName;
MainHandler *m_mainHandler;
LOGGER_T m_logger;
};
} // namespace Buildings