| 26 |
|
|
| 27 |
|
const int numThreads; |
| 28 |
|
QThreadPool myThreadPool; |
| 29 |
– |
QMutex mutexIsAvailable; |
| 29 |
|
|
| 30 |
|
struct jsCustomCodeEngine{ |
| 31 |
+ |
/* No need to delete these... They will stay alive until program quits. */ |
| 32 |
|
QScriptEngine* scriptEngine; |
| 33 |
|
QScriptValue* jsFunction; |
| 34 |
|
QScriptValue* getXmlDataFunction; |
| 35 |
|
QScriptValue* setXmlDataFunction; |
| 36 |
< |
bool isAvailable; |
| 36 |
> |
QMutex *mutexForEngine; |
| 37 |
|
}; |
| 38 |
|
|
| 39 |
|
QVector<jsCustomCodeEngine> jsScriptEngines; |
| 43 |
|
XmlCustomCode& operator=(XmlCustomCode const&); // assignment operator is private |
| 44 |
|
|
| 45 |
|
void displayJsException(QScriptEngine &engine, QScriptValue &engineResult); |
| 46 |
– |
jsCustomCodeEngine& getAvailableJsEngine(); |
| 46 |
|
|
| 47 |
|
__attribute__((always_inline)) inline void customCodeUnwinding(const QString &fileName, QString &currXmlFileString, |
| 48 |
< |
QScriptEngine &engine, clock_t &begin, double elapsed_secs, QScriptValue &engineResult, QScriptValue &jsFunction, |
| 49 |
< |
QScriptValue &getXmlDataFunction, QScriptValue &setXmlDataFunction, const bool &backupsEnabled, const bool &verboseEnabled){ |
| 48 |
> |
QScriptEngine &engine, clock_t &begin, double elapsed_secs, QScriptValue &engineResult, QScriptValue &jsFunction, |
| 49 |
> |
QScriptValue &getXmlDataFunction, QScriptValue &setXmlDataFunction, const bool &backupsEnabled, const bool &verboseEnabled){ |
| 50 |
|
if(backupsEnabled){ |
| 51 |
|
UtilXmlTools::backupFile(fileName, verboseEnabled); |
| 52 |
|
} |