#ifndef CONTEXTMANAGER_H #define CONTEXTMANAGER_H #include #include "context.h" class ContextManager { private: static ContextManager *local_instance; ContextManager() { qDebug() << "ContextManager create"; } ~ContextManager() { qDebug() << "ContextManager destroy"; } QAtomicInt *counter = new QAtomicInt(); QMap *contextMap = new QMap(); public: static ContextManager *getInstance() { static ContextManager instance; return &instance; } Context *createContext(QString script, QString source, QString extra) { int contextId = counter->fetchAndAddOrdered(1); Context *context = new Context(QString::number(contextId), source, extra); contextMap->insert(QString::number(contextId), context); context->getDriver()->createContext(QString::number(contextId), script, source); return context; } }; #endif // CONTEXTMANAGER_H