VR-Forces 4.1 Class Documentation
taskCtlrCmpnt.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 
15 #include "vrfobjcore/cntrlCmpnt.h"
16 #include "vrftasks/simTaskState.h"
17 #include "vrfmsgs/msgExec.h"
19 #include "vrftasks/radioMsgTypes.h"
21 
22 
23 class DtSimManager;
24 class DtTaskMessage;
25 class DtSimMessage;
26 
27 typedef void (*DtTaskMessageCallbackFcn)(DtSimMessage * msg, void * usr,
28  DtSimTaskStatePtr taskState);
29 
31 {
33  void* myUserData;
35 
49 {
50 
51 public:
52 
58  DtTaskControllerComponent(const DtString& name, DtVrfObject* owner,
59  DtSimManager* simManager,
60  DtComponentDescriptor* compDesc = 0,
61  DtReaderWriterRegistry* parentRegistry = 0);
62 
64  virtual ~DtTaskControllerComponent();
65 
67  virtual DtString type() const = 0;
68 
73  virtual void postTick();
74 
83  virtual bool beginProcessingTask(const DtTaskMessage& task,
84  DtSimTaskStatePtr taskState);
85 
88  virtual void taskNotify(const DtSimTask & task) {};
89 
91 
92 
93  virtual void setTasked(bool tasked);
94  virtual bool tasked() const;
96 
102  virtual bool showCurrentTaskInGui() const;
103 
105  virtual void setRadio(DtSimBaseRadio * radio);
106 
107  virtual void registerTaskMsgCallbacks();
108 
120  virtual void addTaskProcessorCallback(const DtSimTaskMessageType& taskType, DtTaskMessageCallbackFcn fcn, void* usr);
121 
124  virtual void addTaskProcessorCallback(const DtSimTaskMessageType& taskType, DtMessageCallbackFcn fcn, void* usr);
125 
126 
128  virtual void removeTaskProcessorCallback(const DtSimTaskMessageType& taskType, DtMessageCallbackFcn fcn, void* usr);
129 
132  virtual void removeTaskProcessorCallback(const DtSimTaskMessageType& taskType, DtTaskMessageCallbackFcn fcn, void* usr);
133 
137  static void deprecatedTaskProcessorCallbackAdapter(DtSimMessage * msg, void * usr,
138  DtSimTaskStatePtr taskState);
139 
141  virtual bool taskActive(int taskId) const = 0;
142 
145  virtual bool clearTopLevelTasks() = 0;
146 
149  virtual void clearConflictingTopLevelTasks(const DtSimTaskMessageType& conflictType) = 0;
150 
152  virtual void clearTasksByType(const DtSimTaskMessageType& taskType) = 0;
153 
155  virtual void clearTaskById(int taskId) = 0;
156 
159  virtual std::list<DtTaskMessage*> currentTaskMessages() const = 0;
160 
163  virtual DtTaskWithTaskStateListPtr topLevelTasks() const = 0;
164 
166  virtual void enable();
167 
171  virtual void disable();
172 
174  virtual void sendTaskCanceled(DtTaskMessage* taskMsg);
175 
176 protected:
177 
178 
179 
180 protected:
181 
184  typedef std::pair<DtTaskMessageCallbackFcn, void*> DtTaskCallbackMapPair;
185  typedef std::map<DtSimTaskMessageType, DtTaskCallbackMapPair> DtTaskCallbackMap;
187 
190  std::list<DtTaskProcessorCallbackInfo*> myTaskProcessorCallbackInfoList;
191 
192 private:
196 
199 
202  orig);
203 };
204 

Document ID: Generated on Tue Jan 29 18:21:16 EST 2013 from SVN revision 123193
Copyright © 2005-2013 VT MÄK Inc. All Rights Reserved (www.mak.com)