#ifndef REGISTRY_H
#define REGISTRY_H
#include <QDebug>
#include <QString>
#include "DoricExport.h"
#include "utils/DoricObjectFactory.h"
class DoricLibrary;
class DORIC_EXPORT DoricRegistry {
private:
static DoricRegistry *local_instance;
~DoricRegistry() { qDebug() << "DoricRegistry destructor"; }
public:
static DoricRegistry *getInstance() {
static DoricRegistry instance;
return &instance;
}
QSet<DoricLibrary *> doricLibraries;
DoricObjectFactory plugins;
DoricObjectFactory nodes;
DoricRegistry();
template <typename T> void registerNativePlugin(QString name) {
plugins.registerClass<T>(name);
template <typename T> void registerViewNode(QString name) {
nodes.registerClass<T>(name);
bool acquirePluginInfo(QString name);
bool acquireNodeInfo(QString name);
void registerLibrary(DoricLibrary *doricLibrary);
};
#endif // REGISTRY_H