VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
singleTaskControllerComponent.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2010 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
10 
11 #pragma once
12 
14 
16 
17 
23 {
24 
25 public:
26 
33  DtSimulationServices* simServices,
34  DtComponentDescriptor* compDesc = nullptr,
35  DtReaderWriterRegistry* parentRegistry = nullptr);
36 
39 
44  virtual void postTick() override;
45 
54  virtual bool beginProcessingTask(const DtTaskMessage& task,
55  DtSimTaskStatePtr taskState) override;
56 
59  virtual void taskNotify(const DtSimTask & task) override;
60 
61 
66  virtual void taskComplete(bool success = true);
67 
71  virtual void clearTask() override;
72 
75  virtual void suspendTask();
76 
80  virtual int sendSubtask(DtSimTask& task);
81 
85  virtual void clearSubtask(int subtaskId);
86 
90  virtual void addPendingSubtaskId(int subtaskId);
91 
96  virtual bool findPendingSubtaskId(int subtaskId);
97 
99  virtual bool isSubtasked() const;
100 
105  virtual void removePendingSubtaskId(int subtaskId);
106 
109  virtual void removeAllPendingSubtaskIds();
110 
112  virtual std::vector<int> currentPendingSubstaskIds() const;
113 
115  virtual DtSubtaskStatusEntry* subtaskStatus(int subtaskId);
116 
119  //virtual DtTaskMessage* pendingSubtask(int subtaskId, DtString& controller) const;
120 
122  virtual void clearCurrentTaskMessage();
123 
125  virtual DtTaskMessage * currentTaskMessage() const;
126 
132  virtual DtSimTaskStatePtr currentTaskState() const;
133 
143  virtual bool decideToGiveUpTask() const;
144 
148  virtual void giveUpTask();
149 
151  virtual bool taskActive(int taskId) const override;
152 
154  virtual bool clearTopLevelTasks() override;
155 
157  virtual void clearConflictingTopLevelTasks(const DtSimTaskMessageType& conflictType) override;
158 
160  virtual void clearTasksByType(const DtSimTaskMessageType& taskType) override;
161 
163  virtual void clearTaskById(int taskId) override;
164 
165  virtual DtSuspendedTaskInfo* suspendTaskById(int taskId) override;
166 
167  virtual DtSuspendedTaskInfo* suspendSubtaskById(int taskId, int subtaskId) override;
168 
170  virtual std::list<DtTaskMessage*> currentTaskMessages() const;
171 
173  virtual DtTaskWithTaskStateListPtr topLevelTasks() const override;
174 
176  virtual void disable() override;
177 
178 protected:
181  virtual void clearPendingSubtasks();
182 
186  virtual void clearSubtasksByType(const DtSimTaskMessageType& taskType);
187 
191  virtual void cleanupInactiveSubtaskStatus();
192 };
virtual std::list< DtTaskMessage * > currentTaskMessages() const =0
This is a DtReaderWriter subclass which holds the status of a subtask that was issues by another task...
Definition: taskStatusEntry.h:28
virtual bool beginProcessingTask(const DtTaskMessage &task, DtSimTaskStatePtr taskState)
Called by the task manager when this controller should start executing the specified task...
All the information about a single suspended task. This information should be sufficient to resume th...
Definition: suspendedTaskInfo.h:23
virtual void clearTask()
Called when you want to clear out this component&#39;s task state. Base class implementation does nothing...
This class provides a base class for all controllers that are capable of executing a DtSimTask...
Definition: singleTaskControllerComponent.h:22
virtual DtTaskWithTaskStateListPtr topLevelTasks() const =0
A readable, writable type whose name is the name of a component and that has a list of component name...
Definition: componentDescriptor.h:49
End User Description: DtTaskControllerComponent is the base class for all controllers that respond to...
Definition: taskControllerComponent.h:48
Definition: readerWriterRegistry.h:39
virtual bool clearTopLevelTasks()=0
If this controller has any top level tasks (not subtasks), they are cleared.
DtBoost::shared_ptr< DtSimTaskState > DtSimTaskStatePtr
Definition: taskAndTaskStateDefines.h:18
virtual void taskNotify(const DtSimTask &task) override
This is called to let us know when some other component receives a task In the case of this component...
Definition: taskControllerComponent.h:106
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 disable() override
Overridden to 1) remove any task message callbacks registered by this controller 2) call clear task...
virtual void clearConflictingTopLevelTasks(const DtSimTaskMessageType &conflictType)=0
Clears any top level tasks on this controller that conflict with the conflict task type...
virtual DtSuspendedTaskInfo * suspendTaskById(int taskId)=0
DtBoost::shared_ptr< DtTaskWithTaskStateList > DtTaskWithTaskStateListPtr
Definition: taskAndTaskStateDefines.h:27
virtual bool taskActive(int taskId) const =0
Central access point of all non-object-specific the services and managers that are available for use ...
Definition: simulationServices.h:94
virtual void clearTaskById(int taskId)=0
Clears any task of the specified ID running in this controller.
DtSimTask is an abstract base class from which real tasks can derive. It manages the read/write capab...
Definition: simTask.h:30
A DtTaskMsg is a DtRadioMsg with a pointer to a task. The type of the taskMsg is just the type of the...
Definition: taskMessage.h:21
virtual void postTick()
This function is called immediately after tick() is called. Implementation in this class just ticks t...
A locally simulated VRF object. Holds all internal and external data for the object, and provides access to both the current frame and next frame state data for the object. All current frame data is read-only, and next-frame data can be written to. No thread safety guarantees are made on this object during the simulation frame and it should only be accessed by the thread that is simulating the object.
Definition: localObject.h:86

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)