32 #ifndef ARNSCRIPTJOBS_HPP 33 #define ARNSCRIPTJOBS_HPP 42 class ArnScriptWatchdogThread;
43 class ArnScriptWatchdogRun;
47 class ArnScriptJobThread :
public QThread
52 ArnScriptWatchdogThread* watchdogThread);
53 ~ArnScriptJobThread();
61 ArnScriptWatchdogThread* _watchdogThread;
70 ArnScriptWatchdogThread* watchdogThread);
71 ~ArnScriptJobSingle();
76 void doScheduleRequest(
int callerId);
77 void doQuitRequest(
int callerId);
78 void doScriptChanged(
int id);
85 ArnScriptWatchdogThread* _watchdogThread;
93 #ifdef ARNUSE_SCRIPTJS 94 class ArnScriptWatchdogRun :
public QObject
98 ArnScriptWatchdogRun( ArnScriptWatchdogThread& watchdogThread);
99 ~ArnScriptWatchdogRun();
102 void addWatchdog( ArnScriptWatchdog* watchdog);
103 void removeWatchdog( ArnScriptWatchdog* watchdog);
108 ArnScriptWatchdogThread* _watchdogThread = arnNullptr;
112 class ArnScriptWatchdogThread :
public QThread
116 ArnScriptWatchdogThread( QObject* parent = arnNullptr);
117 ~ArnScriptWatchdogThread();
119 void addWatchdog( ArnScriptWatchdog* watchdog);
120 void removeWatchdog( ArnScriptWatchdog* watchdog);
130 void addWatchdogNow( ArnScriptWatchdog* watchdog);
132 ArnScriptWatchdogRun* _watchdogRun = arnNullptr;
133 QList<ArnScriptWatchdog*> _wdTab;
134 bool _isReady =
false;
140 class ArnScriptWatchdogThread :
public QObject
145 ArnScriptWatchdogThread( QObject* parent = arnNullptr);
148 static void addWatchdog( ArnScriptWatchdog* watchdog);
149 static void removeWatchdog( ArnScriptWatchdog* watchdog);
175 void start( Type type = Type::Cooperative);
180 void doScheduleRequest(
int callerId);
181 void setScriptChanged(
int id);
182 void doPreemtiveStartNow();
186 ArnScriptJobThread* thread;
198 jobConfig = arnNullptr;
200 scriptChanged =
false;
203 QList<JobSlot> _jobSlots;
204 QMap<int,int> _idToSlot;
206 void doCooperativeStart();
207 void doPreemtiveStart();
208 void newScriptJob( JobSlot& jobSlot);
214 ArnScriptWatchdogThread* _watchdogThread;
217 #endif // ARNSCRIPTJOBS_HPP
Must be thread-safe as subclassed.
Is thread-safe (except doSetupJob)
Interface class to be normally used, is also Script Job interface.
#define ARNLIBSHARED_EXPORT
#define MQ_DECLARE_ENUM(EStruct)
Enums.