#pragma once #include #include #include #include #include #include #include #include #ifndef ISMDATAPLUGININTERFACE_EXPORT # ifdef BUILD_STATIC_LIBRARIES # define ISMDATAPLUGININTERFACE_EXPORT # else # if defined(MAKE_ISMDATAPLUGININTERFACE_LIB) # define ISMDATAPLUGININTERFACE_EXPORT Q_DECL_EXPORT # else # define ISMDATAPLUGININTERFACE_EXPORT Q_DECL_IMPORT # endif # endif #endif namespace InfrastructureManagement { class ForeignDataInterface; class MountingPoint; // Forward declaration for MainSchedule from ParticipantManagement using ParticipantManagement::MainSchedule; class ISMDATAPLUGININTERFACE_EXPORT DataInterface : public DataPluginBase::Interface { public: using DataPluginBase::Interface::Interface; virtual std::shared_ptr getDtc() = 0; virtual std::shared_ptr getFtc() = 0; virtual std::shared_ptr getForeignDataInterface() = 0; }; class ISMDATAPLUGININTERFACE_EXPORT ForeignDataInterface : public QObject { Q_OBJECT public: ForeignDataInterface() = default; virtual ~ForeignDataInterface() = default; virtual bool mountingPoints(const std::function &cb) = 0; virtual bool mountingPoints(const std::function &cb) = 0; virtual QHash mountingPoints() const = 0; virtual MountingPoint mountingPoint(int32_t mountingPointId) const = 0; virtual MainSchedule mainSchedule(int32_t scheduleId) = 0; virtual void setScheduleId(int32_t scheduleId) = 0; virtual int32_t scheduleId() const = 0; virtual QSet buildingsInCurrentExercise() = 0; virtual const QSet& buildingsInCurrentExercise() const = 0; virtual bool isBuildingsInCurrentExercise(int buildingId) const = 0; Q_SIGNALS: void mountingPointChanged(const InfrastructureManagement::MountingPoint &data, ParticipantManagement::DataModification modType); void scheduleIdChanged(int32_t newScheduleId); void buildingsInCurrentExerciseChanged(); }; }