/** * Handle the single building instances * $Id$ * $HeadURL$ * $Author$ * Created by Christian Ehrlicher, SLSE, 2017-02-06 */ #pragma once #include #include #include "ism_handler.h" #include "logger.h" #include 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 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 m_buildings; // key = BuildingId QMap m_historyStates; // key = BuildingId QMap m_relayInfos; QString m_bcuExecutableName; MainHandler *m_mainHandler; LOGGER_T m_logger; }; } // namespace Buildings