77 lines
1.6 KiB
C++
Executable File
77 lines
1.6 KiB
C++
Executable File
/**
|
|
* CES Plugin Interface
|
|
* $Id$
|
|
* $HeadURL$
|
|
* $Author$
|
|
* Created by Gerlinde Rudolphus, SLTE, 2016-04-14
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <QObject>
|
|
#include <QString>
|
|
#include <memory>
|
|
#include <unordered_map>
|
|
#include <DDS/DDSConnector/dds_connector.h>
|
|
#include <CentralEffectSimulation/ces_db.h>
|
|
#include <ngldb/db_service_handler.h>
|
|
|
|
namespace NGL
|
|
{
|
|
class Settings;
|
|
}
|
|
|
|
namespace NGLDB
|
|
{
|
|
template <typename DB> class DbServiceHandler;
|
|
}
|
|
|
|
namespace CentralEffectSimulation
|
|
{
|
|
using DbHandler = NGLDB::DbServiceHandler<DatabaseInterface>;
|
|
|
|
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<Interface> createInterface(DataProvider *pdp,
|
|
const std::shared_ptr<DDSConnector::DdsConnector> &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")
|