VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
taskControllerComponent.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2007 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
11 
12 
13 #pragma once
14 
17 #include "vrftasks/simTaskState.h"
21 
22 
23 class DtSimManager;
24 class DtTaskMessage;
25 class DtSimMessage;
27 
28 typedef void (*DtTaskMessageCallbackFcn)(DtSimMessage * msg, void * usr,
30 
32 {
34  void* myUserData;
36 
50 {
51 
52 public:
53 
59  DtTaskControllerComponent(const DtString& name, DtVrfObject* owner,
60  DtSimManager* simManager,
61  DtComponentDescriptor* compDesc = 0,
62  DtReaderWriterRegistry* parentRegistry = 0);
63 
65  virtual ~DtTaskControllerComponent();
66 
68  virtual const char* type() const = 0;
69 
74  virtual void postTick();
75 
84  virtual bool beginProcessingTask(const DtTaskMessage& task,
85  DtSimTaskStatePtr taskState);
86 
89  virtual void taskNotify(const DtSimTask & task) {};
90 
92 
93 
94  virtual void setTasked(bool tasked);
95  virtual bool tasked() const;
97 
103  virtual bool showCurrentTaskInGui() const;
104 
106  virtual void setRadio(DtSimRadio * radio);
107 
108  virtual void registerTaskMsgCallbacks();
109 
121  virtual void addTaskProcessorCallback(const DtSimTaskMessageType& taskType, DtTaskMessageCallbackFcn fcn, void* usr);
122 
125  virtual void addTaskProcessorCallback(const DtSimTaskMessageType& taskType, DtMessageCallbackFcn fcn, void* usr);
126 
127 
129  virtual void removeTaskProcessorCallback(const DtSimTaskMessageType& taskType, DtMessageCallbackFcn fcn, void* usr);
130 
133  virtual void removeTaskProcessorCallback(const DtSimTaskMessageType& taskType, DtTaskMessageCallbackFcn fcn, void* usr);
134 
138  static void deprecatedTaskProcessorCallbackAdapter(DtSimMessage * msg, void * usr,
139  DtSimTaskStatePtr taskState);
140 
142  virtual bool taskActive(int taskId) const = 0;
143 
146  virtual bool clearTopLevelTasks() = 0;
147 
150  virtual void clearConflictingTopLevelTasks(const DtSimTaskMessageType& conflictType) = 0;
151 
153  virtual void clearTasksByType(const DtSimTaskMessageType& taskType) = 0;
154 
156  virtual void clearTaskById(int taskId) = 0;
157 
158  virtual DtSuspendedTaskInfo* suspendTaskById(int taskId) = 0;
159 
162  virtual std::list<DtTaskMessage*> currentTaskMessages() const = 0;
163 
166  virtual DtTaskWithTaskStateListPtr topLevelTasks() const = 0;
167 
169  virtual void enable();
170 
174  virtual void disable();
175 
177  virtual void sendTaskCanceled(DtTaskMessage* taskMsg);
178 
180  DtTaskVisualizationMap& taskVisualizations();
181 
182 protected:
183 
186  virtual void suspendSubtasksOfTask(int taskId, DtSuspendedTaskInfo* suspendInfo);
187 
190  virtual void updateTaskVisualizations() {};
191 
194  virtual void destroyTaskVisualizations();
195 
196  double calculateNextTaskVisTickTime() const;
197 
198 protected:
199 
202  typedef std::pair<DtTaskMessageCallbackFcn, void*> DtTaskCallbackMapPair;
203  typedef std::map<DtSimTaskMessageType, DtTaskCallbackMapPair> DtTaskCallbackMap;
205 
208  std::list<DtTaskProcessorCallbackInfo*> myTaskProcessorCallbackInfoList;
209 
212 
215 
216 private:
220 
223 
226  orig);
227 };
228 

Document ID: Generated on Tue Mar 8 22:13:38 EST 2016 from SVN revision 162938
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)