/** * CES Plugin Interface * $Id$ * $HeadURL$ * $Author$ * Created by Gerlinde Rudolphus, SLTE, 2016-04-14 */ #pragma once #include #include #include #include #include #include #include namespace NGL { class Settings; } namespace NGLDB { template class DbServiceHandler; } namespace CentralEffectSimulation { using DbHandler = NGLDB::DbServiceHandler; class MainHandler; class DdsHandler; //class DbHandler; class DatabaseInterface; class HandlerParticipant; class HandlerBuildingData; namespace Plugin { class Interface; class DataProvider { public: DataProvider() = default; virtual ~DataProvider() = default; }; class Plugin { public: Plugin() = default; virtual ~Plugin() = default; virtual std::shared_ptr createInterface(DataProvider *pdp, const std::shared_ptr &dDSConnector, NGL::Settings *settings, MainHandler *mainHandler) = 0; }; class Interface: public QObject { Q_OBJECT public: Interface() = default; virtual ~Interface() = default; virtual bool init(int domainId, int exerciseId) = 0; virtual const char *name() const = 0; virtual QString echo(const QString &message) = 0; }; } // namespace Plugin } // namespace CentralEffectSimulation Q_DECLARE_INTERFACE(CentralEffectSimulation::Plugin::Plugin, "special:3:ces")