#pragma once #include "../C909_V1PubSubTypes.hpp" #include "XNCore/XNDDSInterface.h" namespace XNSim::C909::ATA04 { class GroundHandling_heartbeat_Interface : public XNDDSInterface { public: using DDSType = XNSim::C909::ATA04::GroundHandling_heartbeat; using DDSPubSubType = XNSim::C909::ATA04::GroundHandling_heartbeatPubSubType; static const std::string topic_name; GroundHandling_heartbeat_Interface(); virtual ~GroundHandling_heartbeat_Interface(); virtual void Initialize(XNFrameworkPtr framework, uint32_t modelId, uint32_t DDS_type) override; virtual void clearOutData() override; virtual void sendOutData() override; void inputDataListener(const XNSim::C909::ATA04::GroundHandling_heartbeat &input); template void getData(T *model_data) { std::lock_guard lock(dataMutex); if(model_data == nullptr) return; assign_value_get(data.groundhandling_model_heartbeat(), model_data->groundhandling_model_heartbeat); } template void setData(T *model_data) { if(model_data == nullptr) return; std::lock_guard lock(outDataMutex); clearOutData(); assign_value_set(out_data.groundhandling_model_heartbeat(), model_data->groundhandling_model_heartbeat); sendOutData(); } protected: DDSType data; DDSType out_data; }; }