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);
146 virtual void sendRequestedScriptChecksums(DtU32 responseId = 0,
147 const std::vector<std::string>& scriptIds = std::vector<std::string>());
161 virtual void modifyScenarioScriptedTask(
const DtScriptedTaskMetaData&,
const std::string& sourceScriptId =
"",
bool send =
true,
162 bool keepScriptInMessage =
false,
bool keepLayoutInMessage =
false);
167 virtual bool removeScriptedTask(
const std::string&
id,
bool send =
true,
bool scenarioOnly =
true,
168 bool removeSystemScriptFromDisk =
false);
171 virtual bool loadScenarioScripts(
const DtFilename&,
bool send =
true);
172 virtual bool loadScenarioScriptsFromZipFile(
const DtFilename& scenarioZipFile,
const std::string&,
bool send =
true);
175 virtual bool loadScenarioScripts(
const std::string& str,
bool send =
true);
178 virtual bool writeScenarioScripts(
const DtFilename&);
181 virtual bool writeScenarioScripts(std::string&);
185 virtual bool removeScriptById(
const std::string& s,
bool scenarioOnly =
true,
186 bool removeSystemScriptFromDisk =
false);
190 virtual void setSimulationModelSetScriptsDirectory(
const std::string& s,
bool send =
true);
193 virtual std::string simulationModelSetScriptsDirectory()
const;
196 virtual std::vector<DtSimTaskMessageType> tasksValidFor(
const DtEntityType&,
int force)
const;
199 virtual std::vector<DtSetMessageType> setsValidFor(
const DtEntityType&,
int force)
const;
202 virtual std::vector<DtSimTaskMessageType> reactiveTasksValidFor(
const DtEntityType&,
int force)
const;
205 virtual std::vector<std::string> scriptsValidFor(
const DtEntityType&,
int scriptType,
int force)
const;
217 virtual void reportError(
const DtSetMessageType& scriptId,
const std::string&
error,
bool sendReport =
true);
218 virtual void reportError(
const std::string& scriptId,
const std::string&
error,
bool sendReport =
true);
221 virtual std::string findSystemDirectoryFor(
const std::string& scriptId)
const;
227 virtual void clearError(
const std::string& scriptId);
235 virtual void addSample(
const std::string& scriptId,
double sample);
239 virtual void monitor(
const std::string& scriptId,
bool);
243 virtual void setMonitorTime(
double);
250 virtual void addFrameRateReference(
const std::string&);
256 virtual void removeFrameRateReference(
const std::string&);
264 virtual int scriptType(
const std::string&)
const;
271 virtual std::string remapScriptId(
const std::string& scriptId)
const;
275 virtual void setDoctrines(
const std::set<std::string>&);
276 virtual void addDoctrine(
const std::string&,
bool send =
true);
279 virtual bool removeDoctrine(
const std::string&,
bool send =
true);
280 virtual const std::set<std::string>& doctrines()
const;
281 virtual void clearDoctrines(
bool send =
true);
282 virtual void loadDoctrines(
const DtFilename& f,
bool send =
true);
283 virtual void sendDoctrines();
284 virtual void sendDoctrineAssignments();
286 virtual void saveDoctrines(
const DtFilename& f)
const;
288 virtual std::string doctrineForForce(
int)
const;
289 virtual void setDoctrineForForce(
const std::string&,
int);
290 virtual void setDoctrineAssignments(
const std::map<int, std::string>&);
293 virtual void setLanguage(
const DtString&);
297 virtual bool renameDoctrine(
const std::string& from,
const std::string& to,
bool send =
true);
314 virtual void initializeDefaultScripts();
318 virtual void processRequestScriptedTasks(
DtSimMessage*);
320 virtual bool loadScenarioScripts(std::istream& ifs,
bool send);
323 static void scriptedTaskOperation(
DtSimMessage*,
void*);
324 virtual void processScriptedTaskOperation(
DtSimMessage*);
331 virtual void makeSystemScript(
const std::string&);
334 virtual void modifySystemScript(
const std::string& scriptid,
const std::string&);
337 virtual void modifySystemLayout(
const std::string& scriptid,
const std::string&);
340 virtual void modifySystemScriptedTask(
const DtScriptedTaskMetaData&,
const std::string& sourceSciptId =
"",
bool send =
true);
343 virtual void modifyScript(
const std::string&
id,
const std::string& script);
346 virtual void modifyLayout(
const std::string&
id,
const std::string& script);
352 virtual void addTaskToTaskFactory(
const std::string&
id);
355 virtual void removeTaskFromTaskFactory(
const std::string&
id);
358 virtual void addSetToSetFactory(
const std::string&
id);
361 virtual void removeSetFromSetFactory(
const std::string&
id);
364 virtual void signalNewScriptedTask(
const std::string&);
374 static void tickCallback(
void*);
378 virtual void sendMonitorInformation();
380 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:405
std::set< std::string > myDoctrines
Definition: scriptedTaskManager.h:402
std::shared_ptr< tbb::spin_mutex > myFrameRateMutex
Definition: scriptedTaskManager.h:93
DtFilename myDoctrinesFile
Definition: scriptedTaskManager.h:403
DtSimulationServices * simulationServices() const
Definition: scriptedTaskManager.h:311
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:416
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:393
Manage scripted tasks (primarily Lua tasks) known by VR-Forces.
Definition: scriptedTaskManager.h:76
ScriptedTaskMetaDataList myScenarioScripts
Definition: scriptedTaskManager.h:387
DtAverager * averager
Definition: scriptedTaskManager.h:89
int myMonitoringScripts
Definition: scriptedTaskManager.h:399
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:397
DoctrinesForForce myDoctrinesForForce
Definition: scriptedTaskManager.h:406
DtScriptedTaskManagerCallbackInfo()
Definition: scriptedTaskManager.h:47
Contains the DtRwTranslatableStringObject class declaration.
DtSimulationServices * mySimulationServices
Definition: scriptedTaskManager.h:383
int myMonitoringAll
Definition: scriptedTaskManager.h:398
std::map< std::string, std::string > myScriptIdToScriptIdMap
Definition: scriptedTaskManager.h:412
DtString myLastLanguageRequested
Definition: scriptedTaskManager.h:409
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:384
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
double myMonitorTime
Definition: scriptedTaskManager.h:396
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:390
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:90
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:96
Definition: ifScriptedTaskOperation.h:41
DtScriptedTaskChangedCallbackList myScriptedTaskChangedCallbackList
Definition: scriptedTaskManager.h:394
Definition: scriptedTaskManager.h:45
Manages resources shared by scripts.
Definition: scriptResourceManager.h:15
tbb::mutex myMutex
Definition: scriptedTaskManager.h:418
Map is by unique id of script.
Definition: scriptedTaskManager.h:81
ScriptedTasksByDirectory mySystemScriptedTasks
Definition: scriptedTaskManager.h:386
const int DtScriptedTaskManagerCallbackInfoRemoved
Definition: scriptedTaskManager.h:32
ScriptedTaskMetaDataList myAllScriptsById
Definition: scriptedTaskManager.h:388
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:408
bool mySendMonitorMessage
Definition: scriptedTaskManager.h:400
DtScriptResourceManagerMap myScriptResourceManagers
Definition: scriptedTaskManager.h:411
DtScriptedTaskManagerCallbackInfo(const DtScriptedTaskManagerCallbackInfo &orig)
Definition: scriptedTaskManager.h:48
std::map< std::string, ScriptedTaskMetaDataList > myMutableScriptsByDoctrine
Definition: scriptedTaskManager.h:391
DtScriptedTaskMetaData * systemScript
Definition: scriptedTaskManager.h:88
int flags
Definition: scriptedTaskManager.h:62