Initial commit
This commit is contained in:
commit
b7d90b9afe
16245 files changed
+3396666
No files matched your search
@@ -0,0 +1,47 @@
|
||||
/**
|
||||
* class to handle signals for ObserverObjects functions
|
||||
* $Id$
|
||||
* $HeadURL$
|
||||
* $Author$
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <QObject>
|
||||
#include <IObserverBaseEntityObjInstance.h>
|
||||
#include <IObserverEnvironmentObjectObjInstance.h>
|
||||
|
||||
#include <Common/logger.h>
|
||||
|
||||
class ObserverObjectCB : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
ObserverObjectCB(const char *loggerName = "Callbacks.Object")
|
||||
: m_logger(HighLevelArchitecture::getLogger(loggerName))
|
||||
{}
|
||||
|
||||
template<typename T>
|
||||
typename T::IObjectCallback &newObjectInstance(typename T::Object &object)
|
||||
{
|
||||
typedef typename T::ObjectCallback OBJ_CB;
|
||||
|
||||
OBJ_CB *that = dynamic_cast<OBJ_CB *>(this);
|
||||
T *cb = new T(*that); //Neues Observer-Objekt erstellen
|
||||
cb->setInterface(&object); //Merken des Objekts, falls man die get-Funktionen nutzen möchte
|
||||
emit newObjectInstance2(object); //Bekannt machen, das ein neues Objekt gemeldet wurde
|
||||
return *cb; //Hier wird der Observer für dieses Objekt zurückgegeben.
|
||||
}
|
||||
|
||||
void deleteObjectInstance(const ngs::IObserverObjectInstance &object)
|
||||
{
|
||||
emit objectInstanceDeleted(object);
|
||||
}
|
||||
Q_SIGNALS:
|
||||
void newObjectInstance(const ngs::IObserverObjectInstance &object);
|
||||
void newObjectInstance2(const ngs::IObserverObjectInstance &object);
|
||||
void objectInstanceDeleted(const ngs::IObserverObjectInstance &object);
|
||||
|
||||
protected:
|
||||
NGL::INGLLogger &m_logger;
|
||||
};
|
||||
Reference in new issue
Block a user