45 lines
1.1 KiB
C++
Executable File
45 lines
1.1 KiB
C++
Executable File
/**
|
|
* Object class for HandlerEffector
|
|
* $Id$
|
|
* $HeadURL$
|
|
* $Author$
|
|
*/
|
|
#pragma once
|
|
|
|
#include "logger.h"
|
|
#include <ParticipantManagement/ppm_dtc.h>
|
|
|
|
#include <QObject>
|
|
#include <QHash>
|
|
|
|
namespace AreaEffectSimulation
|
|
{
|
|
class ObjectEffector;
|
|
class MainHandler;
|
|
|
|
class HandlerEffector
|
|
: public QObject
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
explicit HandlerEffector(MainHandler *mainhandler, QObject *parent = nullptr);
|
|
|
|
bool init();
|
|
ObjectEffector* getObjectEffector (int participantId) {return m_effectors.value(participantId);};
|
|
|
|
private: // methods
|
|
void createEffector(int participantId);
|
|
void deleteEffector(int participantId);
|
|
|
|
private slots:
|
|
void onParticipantChanged(const ParticipantManagement::Participant &data, DataModification modType);
|
|
|
|
private: // attributes
|
|
MainHandler *m_mainHandler {nullptr};
|
|
std::shared_ptr<ParticipantManagement::Interface::Dtc> m_ppmDtc;
|
|
QHash<qint32, ObjectEffector*> m_effectors; // key = participantId
|
|
LOGGER_T m_logger;
|
|
}; // class HandlerEffector
|
|
} // namespace AreaEffectSimulation
|