VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
multiTaskControllerComponent.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2014 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
10 
11 #pragma once
12 
20 
26 {
27 
28 public:
29 
36  DtSimManager* simManager,
37  DtComponentDescriptor* compDesc = 0,
38  DtReaderWriterRegistry* parentRegistry = 0);
39 
42 
43  virtual bool init();
44 
49  virtual void postTick();
50 
59  virtual bool beginProcessingTask(const DtTaskMessage& task,
60  DtSimTaskStatePtr taskState);
61 
67  virtual void taskComplete(int taskId, bool success);
68 
70  virtual void clearTask(int taskId);
71 
74  virtual void suspendTask(int taskId);
75 
77  virtual DtTaskMessage* currentTaskMessage(int taskId);
78 
84  virtual DtSimTaskStatePtr currentTaskState(int taskId) const;
85 
89  virtual int sendSubtask(DtSimTask& task, int taskId);
90 
98  virtual int sendTask(DtSimTask& task, const DtUUID& receiver, int taskId,
99  bool actAsSubtask = true, bool useRadio = false);
100 
105  virtual void clearSubtask(int subtaskId, int taskId);
106 
110  virtual void addPendingSubtaskId(int subtaskId, int taskId);
111 
116  virtual bool findPendingSubtaskId(int subtaskId, int taskId);
117 
119  virtual bool isSubtasked() const;
120 
125  virtual void removePendingSubtaskId(int subtaskId, int taskId);
126 
129  virtual DtSubtaskStatusEntry* subtaskStatus(int subtaskId, int taskId);
130 
135  virtual void removeAllPendingSubtaskIds(int taskId);
136 
138  virtual std::vector<int> currentPendingSubstaskIds(int taskId) const;
139 
142  virtual bool decideToGiveUpTask() const;
143 
147  virtual void giveUpTask();
148 
150  virtual bool taskActive(int taskId) const;
151 
153  virtual bool clearTopLevelTasks();
154 
156  virtual void clearConflictingTopLevelTasks(const DtSimTaskMessageType& conflictType);
157 
159  virtual void clearTasksByType(const DtSimTaskMessageType& taskType);
160 
162  virtual void clearTaskById(int taskId);
163 
164  virtual DtSuspendedTaskInfo* suspendTaskById(int taskId);
165 
166  virtual DtSuspendedTaskInfo* suspendSubtaskById(int taskId, int subtaskId);
167 
169  virtual std::list<DtTaskMessage*> currentTaskMessages() const;
170 
173 
176  virtual void setScriptTickPeriod(const DtString& scriptId, double period);
177 
179  virtual DtPointTaskVisualizationPtr pointTaskVisualization(int taskId, const DtString& name);
180 
182  virtual DtLineTaskVisualizationPtr lineTaskVisualization(int taskId, const DtString& name);
183 
185  virtual DtAreaTaskVisualizationPtr areaTaskVisualization(int taskId, const DtString& name);
186 
188  virtual DtTextTaskVisualizationPtr textTaskVisualization(int taskId, const DtString& name);
189 
191  virtual void destroyTaskVisualization(int taskId, const DtString& name);
192 
194  virtual void destroyTaskVisualizations(int taskId);
195 
196 protected:
198  virtual void addCurrentTaskMessage(const DtTaskMessage* taskMessage);
201  virtual void clearCurrentTaskMessage(int taskId);
202 
205  virtual void clearPendingSubtasks(int taskId);
206 
210  virtual void clearSubtasksByType(const DtSimTaskMessageType& taskType, int taskId);
211 
214  virtual int taskIdWhichStartedSubtask(int subtaskId);
215 
219  virtual void cleanupInactiveSubtaskStatus(int taskId);
220 };
UUID is a unique ID wrapper class.
Definition: rwUUID.h:222
virtual void destroyTaskVisualizations()
Destroys all task visualizations for this component.
virtual std::list< DtTaskMessage * > currentTaskMessages() const =0
DtVrfObject is used to represent any type of simulated object (entities, aggregate, control objects) in a VR-Forces application.
Definition: vrfObject.h:215
This is a DtReaderWriter subclass which holds the status of a subtask that was issues by another task...
Definition: taskStatusEntry.h:27
virtual DtPointTaskVisualizationPtr pointTaskVisualization(const DtString &name)
Finds an existing or creates a new point task visualization with the given name.
virtual bool beginProcessingTask(const DtTaskMessage &task, DtSimTaskStatePtr taskState)
Called by the task manager when this controller should start executing the specified task...
virtual DtLineTaskVisualizationPtr lineTaskVisualization(const DtString &name)
Finds an existing or creates a new line task visualization with the given name.
All the information about a single suspended task.
Definition: suspendedTaskInfo.h:23
virtual void clearTask()
Called when you want to clear out this component&#39;s task state.
virtual DtTaskWithTaskStateListPtr topLevelTasks() const =0
virtual void destroyTaskVisualization(const DtString &name)
Destroys an existing task visualization.
A readable, writable type whose name is the name of a component and that has a list of component name...
Definition: componentDescriptor.h:42
End User Description: DtTaskControllerComponent is the base class for all controllers that respond to...
Definition: taskControllerComponent.h:48
This class provides a base class for all controllers that are capable of executing a DtSimTask...
Definition: multiTaskControllerComponent.h:25
Definition: readerWriterRegistry.h:39
virtual bool clearTopLevelTasks()=0
If this controller has any top level tasks (not subtasks), they are cleared.
virtual bool init()
Calls setRadio()
DtBoost::shared_ptr< DtSimTaskState > DtSimTaskStatePtr
Definition: taskAndTaskStateDefines.h:18
virtual DtSuspendedTaskInfo * suspendSubtaskById(int taskId, int subtaskId)=0
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
virtual void clearTasksByType(const DtSimTaskMessageType &taskType)=0
Clears any tasks of the specified type running in this controller.
virtual void clearConflictingTopLevelTasks(const DtSimTaskMessageType &conflictType)=0
Clears any top level tasks on this controller that conflict with the conflict task type...
Define constants for types of tasks, sets, admin messages, reports, and sim commands (all sent via ra...
virtual DtSuspendedTaskInfo * suspendTaskById(int taskId)=0
DtBoost::shared_ptr< DtLineTaskVisualization > DtLineTaskVisualizationPtr
Definition: lineTaskVisualization.h:138
DtBoost::shared_ptr< DtTaskWithTaskStateList > DtTaskWithTaskStateListPtr
Definition: taskAndTaskStateDefines.h:27
virtual bool taskActive(int taskId) const =0
DtBoost::shared_ptr< DtPointTaskVisualization > DtPointTaskVisualizationPtr
Definition: pointTaskVisualization.h:75
virtual void clearTaskById(int taskId)=0
Clears any task of the specified ID running in this controller.
virtual DtAreaTaskVisualizationPtr areaTaskVisualization(const DtString &name)
Finds an existing or creates a new area task visualization with the given name.
DtSimTask is an abstract base class from which real tasks can derive.
Definition: simTask.h:31
The simulation engine is controlled by a single,top-level class called the Simulation Manager...
Definition: simManager.h:103
A DtTaskMsg is a DtRadioMsg with a pointer to a task.
Definition: taskMessage.h:19
virtual void postTick()
This function is called immediately after tick() is called.
DtBoost::shared_ptr< DtTextTaskVisualization > DtTextTaskVisualizationPtr
Definition: textTaskVisualization.h:75
DtBoost::shared_ptr< DtAreaTaskVisualization > DtAreaTaskVisualizationPtr
Definition: areaTaskVisualization.h:61
virtual DtTextTaskVisualizationPtr textTaskVisualization(const DtString &name)
Finds an existing or creates a new text task visualization with the given name.

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)