19 #include <vlutil/vlSmartPointers.h>
107 virtual std::vector<DtSimTaskMessageType> capableTaskIds()
const;
121 virtual void removeSupportingTasks(
int);
138 virtual bool executeTask(
DtTaskMessage& taskMsg,
bool clearConflictingTopLevelTasks =
true,
bool doNotAbandonPlan =
false);
139 virtual bool executeTask(
DtTaskMessage& taskMsg,
DtSimTaskStatePtr taskState,
bool clearConflictingTopLevelTasks =
true,
bool doNotAbandonPlan =
false);
144 virtual void addBackgroundProcess(
const DtString& scriptId,
int backgroundProcessId,
const DtString& controllerName);
145 virtual void removeBackgroundProcess(
const DtString& scriptId);
148 virtual void addScriptedSet(
const DtString& scriptId,
int backgroundProcessId,
const DtString& controllerName);
149 virtual void removeScriptedSet(
const DtString& scriptId);
162 virtual int suspendTasks(std::set<DtString> actionCategories);
165 virtual int suspendAllTopLevelTasks();
168 virtual int suspendSubtask(
int taskId,
int subtaskId);
175 virtual bool resumeTasks(
int suspendId);
179 virtual void addTaskCompleteCallback(DtTaskCompleteCallbackList::DtCallbackFunctionType fcn,
void* usr);
180 virtual void removeTaskCompleteCallback(DtTaskCompleteCallbackList::DtCallbackFunctionType fcn,
void* usr);
185 virtual bool taskActive(
int taskId)
const;
188 virtual void registerInterfaceMessageCallbacks();
191 virtual void registerRadioMessageCallbacks();
196 bool clearConflictingTopLevelTasks =
true);
201 virtual void skipTask(
bool fromSuperior =
false);
208 virtual void taskComplete(
const DtVrfObjectMessage & radioMsg,
bool success,
bool affectsIndependentTaskStatus =
true);
212 virtual void sendTaskCompleted(
const DtTaskMessage& taskMsg,
bool success);
216 void awaitingTask(
int taskIdJustCompleted = -1);
220 virtual void setTaskedBySuperior();
223 virtual bool requestTaskNeeded()
const;
226 virtual void setRequestTaskNeeded(
bool requestTaskNeeded);
230 virtual bool independentlyTasked()
const;
234 virtual void setIndependentlyTasked(
bool independentlyTasked);
249 virtual void setVrfObject(
DtVrfObject * vrfObject);
254 virtual void setSendSkipTaskMessages(
bool sendSkipTaskMessages);
255 virtual bool sendSkipTaskMessages();
260 virtual void addOnTaskNotifyCallback(
265 virtual void removeOnTaskNotifyCallback(
270 virtual void clearSubtask(
int subtaskId);
277 virtual bool hasTopLevelTask()
const;
287 virtual bool taskTypesAreExclusive(
const std::list<DtString>& task1Categories,
const DtSimTaskMessageType& taskType2)
const;
294 virtual void updateTaskInfo();
306 static void taskedBySuperiorRequestCallback(
DtSimMessage * msg,
void *
311 static void skipTaskCallback(
DtSimMessage * msg,
void * usr);
315 static void clearTaskCallback(
DtSimMessage * msg,
void * usr);
319 static void taskVisualizationRequestCallback(
DtSimMessage * msg,
void * usr);
324 static void objectAboutToBeRemovedCallback(
const DtVrfObject*
object,
void* usr);
328 static void subordinateRemoved(
const DtUUID& superior,
const DtUUID& subordinate,
void* usr);
340 static void addSimTaskManagerCreatorFcn(
const DtString & type,
349 virtual bool hasTopLevelTasks()
const;
352 virtual bool taskVisualizationsEnabled(
bool includeUnTimedOut)
const;
355 virtual bool taskVisualizationsActivated()
const;
365 virtual void processTaskVisualizationRequest(
DtSimMessage * msg);
370 virtual void processObjectAboutToBeRemoved(
const DtVrfObject*
object);
376 virtual bool clearAllTopLevelTasks();
392 void processSubordinateRemoved(
const DtUUID& superior,
const DtUUID& subordinate);
396 static void taskMessageCallback(
DtSimMessage* msg,
void* usr);
403 bool taskNotify,
bool clearConflictingTopLevelTasks =
true,
bool doNotAbandonPlan =
false);
408 virtual std::vector<DtSimTaskMessageType> conflictingTaskTypes(
const DtSimTaskMessageType& testTaskType)
const;
416 static void unsubscribeCurrentTasksCallback(
const DtVrfObjectMessage* msg,
void* usr);
419 virtual void sendCurrentTasks();
423 virtual void updateTaskVisualizationList();
426 virtual void sendCurrentTaskVisualizations();
429 virtual void stopCurrentTaskVisualizations();
431 static void clearTaskByTrackingNumberCallback(
const DtVrfObjectMessage* msg,
void* usr);
439 virtual void registerSetDataMessageCallbacks();
440 virtual void unregisterSetDataMessageCallbacks();
442 virtual void registerTaskMessageCallbacks();
443 virtual void unregisterTaskMessageCallbacks();
DtTime myTaskVisualizationRemovalTime
Time at which task visualizations should be removed.
Definition: simTaskManager.h:476
UUID is a unique ID wrapper class.
Definition: rwUUID.h:222
Class Description: DtControllerComponentList.
Definition: controllerComponentList.h:38
Container used in callback lists.
Definition: simTaskManager.h:44
std::map< DtString, BackgroundProcessInformation > BackgroundProcesses
Definition: simTaskManager.h:494
DtVrfObject * myVrfObject
Definition: simTaskManager.h:447
DtVrfObject is used to represent any type of simulated object (entities, aggregate, control objects) in a VR-Forces application.
Definition: vrfObject.h:215
DtBoost::shared_ptr< DtBulkEnvironmentProcessManager > myTaskVisualizationManager
Definition: simTaskManager.h:499
DtScriptReactiveTaskController * myReactiveTaskController
Definition: simTaskManager.h:480
std::vector< DtOnTaskNotifyCallbackInfo > myOnTaskNotifyCallbacks
Definition: simTaskManager.h:451
static DtSimTaskManagerFactory * theFactory
Definition: simTaskManager.h:482
All the information about a single suspended task.
Definition: suspendedTaskInfo.h:23
std::list< DtTaskVisualizationPtr > myCurrentTaskVisualizations
Updated every tick with the current task visualizations.
Definition: simTaskManager.h:504
bool mySendTasksNextTick
Set to true if the task manager should send the list of current tasks next tick.
Definition: simTaskManager.h:470
int myNumberOfTaskSubscriptions
Counter which holds the number of times the current task status has been subscribed to minus the numb...
Definition: simTaskManager.h:466
Definition: readerWriter.h:85
std::set< DtSimTaskMessageType > SupportingTasks
Definition: simTaskManager.h:62
End User Description: DtTaskControllerComponent is the base class for all controllers that respond to...
Definition: taskControllerComponent.h:48
Definition: readerWriterRegistry.h:39
DtTaskCompleteCallbackList myTaskCompleteCallbackList
Definition: simTaskManager.h:478
unsigned myNextTaskVisualizationId
Definition: simTaskManager.h:501
class DtSimTaskManagerFactory:
Definition: simTaskManagerFactory.h:33
void(* DtOnTaskNotifyCallbackFcn)(const DtSimTask &task, const DtSimComponent ¬ifier, void *usr)
Callback function definition for callbacks registered to be invoked when taskNotify() is called (when...
Definition: simTaskManager.h:40
DtBoost::shared_ptr< DtSimTaskState > DtSimTaskStatePtr
Definition: taskAndTaskStateDefines.h:18
static DtReaderWriterFactory * factory()
bool myHaveRegisteredOrgMgrCallback
Definition: simTaskManager.h:453
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
Specialized classes.
Definition: scriptedTaskTask.h:270
DtOnTaskNotifyCallbackFcn myCallbackFunction
Definition: simTaskManager.h:46
File: simMsg.h.
Definition: simMessage.h:35
void * myUserData
Definition: simTaskManager.h:47
DtTaskProcessorMap myTaskProcessorMap
Stores all the registered task processor interfaces, indexed by task type they process.
Definition: simTaskManager.h:457
bool mySendSkipTaskMessages
Determines whether processSubordinateRemoved will send a skip task message.
Definition: simTaskManager.h:461
DtSimTaskManager *(* DtSimTaskManagerCreatorFcn)(const DtString &name, DtVrfObject *vrfObject, DtReaderWriterRegistry *parentRegistry)
Definition: simTaskManagerFactory.h:23
AvailableSupportingTasks myAvailableSupportingTasks
Definition: simTaskManager.h:486
Define constants for types of tasks, sets, admin messages, reports, and sim commands (all sent via ra...
std::list< DtTaskVisualizationPtr > myCurrentInactiveTaskVisualizations
Definition: simTaskManager.h:505
The base class for all messages to/from a specific DtVrfObject.
Definition: vrfObjectMessage.h:30
DtCallbackList< const DtTaskMessage & > DtTaskCompleteCallbackList
Definition: simTaskManager.h:61
DtBoost::shared_ptr< DtTaskWithTaskStateList > DtTaskWithTaskStateListPtr
Definition: taskAndTaskStateDefines.h:27
std::set< DtSimulationAddress > myTaskVisualizationRequestors
Whether task visualizations are enabled for this object.
Definition: simTaskManager.h:473
Class Description: DtSimTaskManager manages the bookkeeping associated with starting, completing, clearing, and skipping tasks.
Definition: simTaskManager.h:54
The DtSimComponent class is the base class for the entire simulation model component hierarchy...
Definition: simComponent.h:67
Admin content that is used to send the current tasks status from a specific entity.
Definition: currentTasksAdminContent.h:113
DtSimTask is an abstract base class from which real tasks can derive.
Definition: simTask.h:33
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
BackgroundProcesses myBackgroundProcesses
Definition: simTaskManager.h:496
const DtReaderWriter & operator=(const DtReaderWriter &orig)
assignment operator
std::map< int, SupportingTasks > AvailableSupportingTasks
Definition: simTaskManager.h:63
Definition: simInterfaceContent.h:45
std::map< DtSimTaskMessageType, DtTaskControllerComponent * > DtTaskProcessorMap
Definition: simTaskManager.h:449
virtual bool isPseudoAggregate() const
Indicates whether or not the type of task manager created supports pseudo-aggregates.
Definition: simTaskManager.h:238
BackgroundProcesses myScriptedSets
Definition: simTaskManager.h:497
DtBulkEnvironmentProcessManager.
Definition: bulkEnvironmentProcessManager.h:24
A DtTaskMsg is a DtRadioMsg with a pointer to a task.
Definition: taskMessage.h:19
bool myResumingTasks
Definition: simTaskManager.h:484
READ ME!
Definition: scriptReactiveTaskController.h:52