42 lines
1003 B
C++
42 lines
1003 B
C++
#ifndef CONTEXTMANAGER_H
|
|
#define CONTEXTMANAGER_H
|
|
|
|
#include <QDebug>
|
|
|
|
#include "context.h"
|
|
|
|
class ContextManager
|
|
{
|
|
private:
|
|
static ContextManager *local_instance;
|
|
ContextManager()
|
|
{
|
|
qDebug() << "ContextManager create";
|
|
}
|
|
|
|
~ContextManager()
|
|
{
|
|
qDebug() << "ContextManager destroy";
|
|
}
|
|
|
|
QAtomicInt *counter = new QAtomicInt();
|
|
QMap<QString, Context*> *contextMap = new QMap<QString, Context*>();
|
|
|
|
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
|