17 #include <tbb/mutex.h>
49 : reason(orig.reason), flags(orig.flags), metaData(orig.metaData), originalData(orig.originalData) {};
83 ScenarioSystemPair() : scenarioScript(0), systemScript(0), monitor(0), references(0), averager(0), myFrameRateMutex(new tbb::spin_mutex) {};
85 references(0), averager(0), myFrameRateMutex(new tbb::spin_mutex) {};
117 virtual void addAdditionSystemScriptDirectory(
const std::string&,
bool send =
true);
121 virtual void removeAllSystemScriptedTasksFromDirectory(
const std::string&,
bool send =
true);
124 virtual void removeAllScenarioScripts(
bool send =
true);
140 virtual void sendRequestedScripts(DtU32 responseId = 0,
141 const std::vector<std::string>& scriptIds = std::vector<std::string>(),
bool sendScripts =
false,
bool sendUiLayout =
false,
142 const std::string& language =
"",
const int scriptType = 1);
156 virtual void modifyScenarioScriptedTask(
const DtScriptedTaskMetaData&,
const std::string& sourceScriptId =
"",
bool send =
true,
157 bool keepScriptInMessage =
false,
bool keepLayoutInMessage =
false);
162 virtual bool removeScriptedTask(
const std::string&
id,
bool send =
true,
bool scenarioOnly =
true,
163 bool removeSystemScriptFromDisk =
false);
166 virtual bool loadScenarioScripts(
const DtFilename&,
bool send =
true);
167 virtual bool loadScenarioScriptsFromZipFile(
const DtFilename& scenarioZipFile,
const std::string&,
bool send =
true);
170 virtual bool loadScenarioScripts(
const std::string& str,
bool send =
true);
173 virtual bool writeScenarioScripts(
const DtFilename&);
176 virtual bool writeScenarioScripts(std::string&);
180 virtual bool removeScriptById(
const std::string& s,
bool scenarioOnly =
true,
181 bool removeSystemScriptFromDisk =
false);
185 virtual void setSimulationModelSetScriptsDirectory(
const std::string& s,
bool send =
true);
188 virtual std::string simulationModelSetScriptsDirectory()
const;
191 virtual std::vector<DtSimTaskMessageType> tasksValidFor(
const DtEntityType&,
int force)
const;
194 virtual std::vector<DtSetMessageType> setsValidFor(
const DtEntityType&,
int force)
const;
197 virtual std::vector<DtSimTaskMessageType> reactiveTasksValidFor(
const DtEntityType&,
int force)
const;
200 virtual std::vector<std::string> scriptsValidFor(
const DtEntityType&,
int scriptType,
int force)
const;
212 virtual void reportError(
const DtSetMessageType& scriptId,
const std::string&
error,
bool sendReport =
true);
213 virtual void reportError(
const std::string& scriptId,
const std::string&
error,
bool sendReport =
true);
216 virtual std::string findSystemDirectoryFor(
const std::string& scriptId)
const;
222 virtual void clearError(
const std::string& scriptId);
230 virtual void addSample(
const std::string& scriptId,
double sample);
234 virtual void monitor(
const std::string& scriptId,
bool);
238 virtual void setMonitorTime(
double);
245 virtual void addFrameRateReference(
const std::string&);
251 virtual void removeFrameRateReference(
const std::string&);
259 virtual int scriptType(
const std::string&)
const;
266 virtual std::string remapScriptId(
const std::string& scriptId)
const;
270 virtual void setDoctrines(
const std::set<std::string>&);
271 virtual void addDoctrine(
const std::string&,
bool send =
true);
274 virtual bool removeDoctrine(
const std::string&,
bool send =
true);
275 virtual const std::set<std::string>& doctrines()
const;
276 virtual void clearDoctrines(
bool send =
true);
277 virtual void loadDoctrines(
const DtFilename& f,
bool send =
true);
278 virtual void sendDoctrines();
279 virtual void sendDoctrineAssignments();
281 virtual void saveDoctrines(
const DtFilename& f)
const;
283 virtual std::string doctrineForForce(
int)
const;
284 virtual void setDoctrineForForce(
const std::string&,
int);
285 virtual void setDoctrineAssignments(
const std::map<int, std::string>&);
288 virtual void setLanguage(
const DtString&);
292 virtual bool renameDoctrine(
const std::string& from,
const std::string& to,
bool send =
true);
309 virtual void initializeDefaultScripts();
313 virtual void processRequestScriptedTasks(
DtSimMessage*);
315 virtual bool loadScenarioScripts(std::istream& ifs,
bool send);
318 static void scriptedTaskOperation(
DtSimMessage*,
void*);
319 virtual void processScriptedTaskOperation(
DtSimMessage*);
326 virtual void makeSystemScript(
const std::string&);
329 virtual void modifySystemScript(
const std::string& scriptid,
const std::string&);
332 virtual void modifySystemLayout(
const std::string& scriptid,
const std::string&);
335 virtual void modifySystemScriptedTask(
const DtScriptedTaskMetaData&,
const std::string& sourceSciptId =
"",
bool send =
true);
338 virtual void modifyScript(
const std::string&
id,
const std::string& script);
341 virtual void modifyLayout(
const std::string&
id,
const std::string& script);
347 virtual void addTaskToTaskFactory(
const std::string&
id);
350 virtual void removeTaskFromTaskFactory(
const std::string&
id);
353 virtual void addSetToSetFactory(
const std::string&
id);
356 virtual void removeSetFromSetFactory(
const std::string&
id);
359 virtual void signalNewScriptedTask(
const std::string&);
369 static void tickCallback(
void*);
373 virtual void sendMonitorInformation();
375 virtual void updateScenarioScripts(std::map<std::string, DtScriptedTaskMetaData>&,
bool send);
class DtAverager:
Definition: averager.h:26
std::map< int, std::string > DoctrinesForForce
Definition: scriptedTaskManager.h:400
std::set< std::string > myDoctrines
Definition: scriptedTaskManager.h:397
std::shared_ptr< tbb::spin_mutex > myFrameRateMutex
Definition: scriptedTaskManager.h:93
DtFilename myDoctrinesFile
Definition: scriptedTaskManager.h:398
DtSimulationServices * simulationServices() const
Definition: scriptedTaskManager.h:306
std::map< int, std::string > myDefaultTemplatesForScriptTypes
Map of script type to the name of a file that holds the default script template for that type...
Definition: scriptedTaskManager.h:411
ScenarioSystemPair(DtScriptedTaskMetaData *sc, DtScriptedTaskMetaData *sy)
Definition: scriptedTaskManager.h:84
const int DtScriptedTaskManagerCallbackInfoDoctrineChangedBase
If the doctrine has changed, this is the base for that. The reason sent minus this number will be the...
Definition: scriptedTaskManager.h:40
DtCallbackList< const DtScriptedTaskManagerCallbackInfo & > DtScriptedTaskChangedCallbackList
Definition: scriptedTaskManager.h:388
Manage scripted tasks (primarily Lua tasks) known by VR-Forces.
Definition: scriptedTaskManager.h:76
ScriptedTaskMetaDataList myScenarioScripts
Definition: scriptedTaskManager.h:382
DtAverager * averager
Definition: scriptedTaskManager.h:89
int myMonitoringScripts
Definition: scriptedTaskManager.h:394
DtScriptedTaskMetaData originalData
If the reason is update this member will be filled in. If the reason is id change, only the id will be filled in.
Definition: scriptedTaskManager.h:69
double myLastMonitorSentTime
Definition: scriptedTaskManager.h:392
DoctrinesForForce myDoctrinesForForce
Definition: scriptedTaskManager.h:401
DtScriptedTaskManagerCallbackInfo()
Definition: scriptedTaskManager.h:47
Contains the DtRwTranslatableStringObject class declaration.
DtSimulationServices * mySimulationServices
Definition: scriptedTaskManager.h:378
int myMonitoringAll
Definition: scriptedTaskManager.h:393
std::map< std::string, std::string > myScriptIdToScriptIdMap
Definition: scriptedTaskManager.h:407
DtString myLastLanguageRequested
Definition: scriptedTaskManager.h:404
const int DtScriptedTaskManagerCallbackInfoScriptChanged
Definition: scriptedTaskManager.h:35
int references
Definition: scriptedTaskManager.h:91
const int DtScriptedTaskManagerCallbackInfoScriptIdChanged
Definition: scriptedTaskManager.h:34
int reason
Definition: scriptedTaskManager.h:61
std::map< DtString, DtScriptResourceManager * > DtScriptResourceManagerMap
Definition: scriptResourceManager.h:39
const int DtScriptedTaskManagerCallbackInfoUpdated
Definition: scriptedTaskManager.h:33
std::string mySimulationModelSetScriptsDirectory
Definition: scriptedTaskManager.h:379
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
double myMonitorTime
Definition: scriptedTaskManager.h:391
DtCallbackList< const DtScriptedTaskManagerCallbackInfo & >::DtCallbackFunctionType DtScriptedTaskManagerCallbackFcn
Callback function definition for any kind of scripted task change.
Definition: scriptedTaskManager.h:73
std::map< std::string, ScenarioSystemPair > ScriptedTaskMetaDataList
Definition: scriptedTaskManager.h:96
DtScriptedTaskManagerCallbackInfo & operator=(const DtScriptedTaskManagerCallbackInfo &orig)
Definition: scriptedTaskManager.h:51
tbb::spin_rw_mutex myMutableScriptsByDoctrineMutex
Definition: scriptedTaskManager.h:385
const int DtScriptedTaskManagerCallbackInfoScriptTypeChanged
Definition: scriptedTaskManager.h:36
File: simMsg.h.
Definition: simMessage.h:35
const int DtScriptedTaskManagerCallbackInfoAdded
The scripted task manager contains information about all system level scripted tasks (loaded from the...
Definition: scriptedTaskManager.h:31
Definition: noArgumentCallbackList.h:91
const int DtScriptedTaskManagerCallbackFlagScenarioScriptExists
Flag to tell that the system script is still around.
Definition: scriptedTaskManager.h:43
Definition: asyncJobServer.h:39
int monitor
Definition: scriptedTaskManager.h:90
std::string error
Definition: scriptedTaskManager.h:92
ScenarioSystemPair()
Definition: scriptedTaskManager.h:83
Central access point of all non-object-specific the services and managers that are available for use ...
Definition: simulationServices.h:89
Definition: ifScriptedTaskOperation.h:41
DtScriptedTaskChangedCallbackList myScriptedTaskChangedCallbackList
Definition: scriptedTaskManager.h:389
Definition: scriptedTaskManager.h:45
Manages resources shared by scripts.
Definition: scriptResourceManager.h:15
tbb::mutex myMutex
Definition: scriptedTaskManager.h:413
Map is by unique id of script.
Definition: scriptedTaskManager.h:81
ScriptedTasksByDirectory mySystemScriptedTasks
Definition: scriptedTaskManager.h:381
const int DtScriptedTaskManagerCallbackInfoRemoved
Definition: scriptedTaskManager.h:32
ScriptedTaskMetaDataList myAllScriptsById
Definition: scriptedTaskManager.h:383
DtScriptedTaskMetaData metaData
If reason is delete the meta data will only contain the script id.
Definition: scriptedTaskManager.h:65
std::map< std::string, ScriptedTaskMetaDataList > ScriptedTasksByDirectory
Definition: scriptedTaskManager.h:97
std::vector< std::string > myScriptPaths
Definition: scriptedTaskManager.h:403
bool mySendMonitorMessage
Definition: scriptedTaskManager.h:395
DtScriptResourceManagerMap myScriptResourceManagers
Definition: scriptedTaskManager.h:406
DtScriptedTaskManagerCallbackInfo(const DtScriptedTaskManagerCallbackInfo &orig)
Definition: scriptedTaskManager.h:48
std::map< std::string, ScriptedTaskMetaDataList > myMutableScriptsByDoctrine
Definition: scriptedTaskManager.h:386
DtScriptedTaskMetaData * systemScript
Definition: scriptedTaskManager.h:88
int flags
Definition: scriptedTaskManager.h:62