blob: 85e26ddd5b80747c8345f96052c11a30d743e5bd (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
#include "agent.h"
#include <debugout.h>
#include <QTimer>
#include <QScriptEngine>
BluemonkeyAgent::BluemonkeyAgent(QScriptEngine *engine)
:QScriptEngineAgent(engine)
{
}
void BluemonkeyAgent::scriptLoad(qint64 id, const QString &program, const QString &fileName, int baseLineNumber)
{
DebugOut()<<"executing script"<<endl;
QTimer *timer = new QTimer();
timer->setSingleShot(true);
timer->connect(timer, SIGNAL(timeout()), this, SLOT(timeout()));
timer->start(5000);
timerIdMap[timer] = id;
}
void BluemonkeyAgent::timeout()
{
quint64 id = timerIdMap[sender()];
if(idList.contains(id))
{
DebugOut()<<"script aborted evaluation. timed out."<<endl;
engine()->abortEvaluation();
}
timerIdMap.remove(sender());
sender()->deleteLater();
}
void BluemonkeyAgent::scriptUnload(qint64 id)
{
idList.removeAll(id);
}
|