#pragma once #include #include #include namespace NGL { class INGLLogger; } namespace LtsSession { class LtsSessionDataDds; } namespace DataPluginBase { class Interface { public: virtual ~Interface() = default; }; class Plugin : public QObject { Q_OBJECT public: Plugin() = default; virtual ~Plugin() = default; virtual QString pluginName() const = 0; virtual std::shared_ptr createDataInterface(LtsSession::LtsSessionDataDds* session) = 0; virtual bool availableInPartition(IDL::PartitionType partition) const = 0; }; } // namespace DataPluginBase Q_DECLARE_INTERFACE(DataPluginBase::Plugin, "data:")