WSF
WsfTaskManager.hpp
Go to the documentation of this file.
1// ****************************************************************************
2// CUI
3//
4// The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
5//
6// Copyright 2003-2015 The Boeing Company. All rights reserved.
7//
8// The use, dissemination or disclosure of data in this file is subject to
9// limitation or restriction. See accompanying README and LICENSE for details.
10// ****************************************************************************
11// ****************************************************************************
12// Updated by Infoscitex, a DCS Company
13// ****************************************************************************
14
15#ifndef WSFTASKMANAGER_HPP
16#define WSFTASKMANAGER_HPP
17
18#include <list>
19#include <map>
20#include <memory>
21#include <set>
22
23#include "UtCallback.hpp"
24#include "UtCallbackHolder.hpp"
25class UtInput;
27#include "wsf_export.h"
28
29#include "WsfEvent.hpp"
30class WsfLocalTrack;
31class WsfMessage;
32class WsfPlatform;
34#include "WsfRandomVariable.hpp"
36class WsfSensor;
38#include "WsfTask.hpp"
43#include "WsfTimeDelayQueue.hpp"
44class WsfTrack;
46#include "WsfTrackId.hpp"
47class WsfTrackManager;
48class WsfTrackMessage;
49
55{
56public:
58
59 virtual void Update(double aSimTime) {}
60 virtual void PlatformDeleted(WsfPlatform* aPlatformPtr) {}
61 virtual bool AcquireResource(double aSimTime, WsfTask& aTask, const WsfTrack& aTrack, bool& aStatusOk)
62 {
63 return false;
64 }
65 virtual bool ReleaseResource(double aSimTime, WsfTask& aTask) { return false; }
66
67 virtual void TaskCorrelated(double aSimTime, WsfTask& aTask) {}
68 virtual void TaskCanceled(double aSimTime, WsfTask& aTask) {}
69 virtual void TaskCompleted(double aSimTime, WsfTask& aTask) {}
70
71 virtual bool AssignTask(double aSimTime, const WsfTrack& aTrack, const WsfTask& aTask, bool aLockTrack = true)
72 {
73 return false;
74 }
75
76 virtual void PurgeReceivedTask(double aSimTime, WsfTask& aTask) {}
77 virtual void PurgeTransmittedTask(double aSimTime, WsfTask& aTask) {}
78
79 virtual void TrackDropped(double aSimTime, const WsfTrackId& aTrackId) {}
80
81 virtual bool ProcessAssociationMessage(double aSimTime, const WsfAssociationMessage& aMessage) { return true; }
82 virtual bool ProcessTaskStatusMessage(double aSimTime, const WsfTaskStatusMessage& aMessage) { return true; }
84};
85
87
88
98{
99public:
102
108
109 using TaskList = std::list<WsfTask>;
110
116 {
117 public:
118 PendingMessage(double aSimTime,
119 WsfTaskManager* aManagerPtr,
120 const WsfMessage& aMessage,
121 size_t aReceipientIndex,
122 WsfStringId aCommName,
123 int aRetryAttempts);
124 PendingMessage(const PendingMessage& aSrc);
127
128 double mTimeSent;
133 // See the constructor in the source code as to what this is for...
135 };
136 using PendingMessageList = std::list<PendingMessage>;
137
150 using TrackList = std::list<ActiveTrack>;
151 using TrackListIter = std::list<ActiveTrack>::iterator;
152
165 using SensorRequestList = std::list<SensorRequest>;
166
167 WsfTaskManager(WsfScenario& aScenario, const std::string& aClassName = "WsfTaskManager");
169 ~WsfTaskManager() override = default;
170
171 const char* GetScriptClassName() const override;
172
174
175 WsfProcessor* Clone() const override;
176 const int* GetComponentRoles() const override;
177 void* QueryInterface(int aRole) override;
178
179 bool PreInitialize(double aSimTime) override;
180 bool Initialize(double aSimTime) override;
181 bool Initialize2(double aSimTime) override;
182 bool ProcessInput(UtInput& aInput) override;
183
184 void PlatformDeleted(WsfPlatform* aPlatformPtr) override;
185 bool ProcessMessage(double aSimTime, const WsfMessage& aMessage) override;
186 bool ReceiveMessage(double aSimTime, const WsfMessage& aMessage) override;
187 void TurnOff(double aSimTime) override;
188 void TurnOn(double aSimTime) override;
189 void Update(double aSimTime) override;
191
193
194 virtual bool AssignTask(double aSimTime, const WsfTrack& aTrack, const WsfTask& aTask, bool aLockTrack = true);
195
196 virtual bool AssignTask(double aSimTime,
197 const WsfTrack& aTrack,
198 WsfStringId aTaskType,
199 const WsfTaskResource& aResource,
200 WsfPlatform* aAssigneePtr,
201 WsfStringId aCommName);
202
203 virtual bool CancelTask(double aSimTime, unsigned int aTaskId);
204
205 virtual void CancelTask(double aSimTime, WsfTask& aTask, bool aSendCancelMessage);
206
207 virtual bool CancelTask(double aSimTime,
208 const WsfTrackId& aTrackId,
209 WsfStringId aTaskType,
210 const WsfTaskResource& aResource,
211 size_t aAssigneeIndex);
212
213 virtual bool CreateDelayTask(double aSimTime, double aDelayTime, const WsfTrack& aTrack, WsfStringId aTaskType);
214
215 virtual bool
216 ChangeOperatingLevel(double aSimTime, WsfStringId aName, int aLevel, WsfPlatform* aAssigneePtr, WsfStringId aCommName);
218
221
222 virtual bool ReportTaskComplete(double aSimTime,
223 const WsfTrackId& aTrackId,
224 WsfStringId aTaskType,
225 WsfStringId aResourceName,
226 WsfStringId aSubStatus);
227
228 virtual bool ReportTaskProgress(double aSimTime,
229 const WsfTrackId& aTrackId,
230 WsfStringId aTaskType,
231 WsfStringId aResourceName,
232 WsfStringId aSubStatus);
234
236
237 void AssigneesForTask(const WsfTrackId& aTrackId, WsfStringId aTaskType, std::vector<size_t>& aAssignees) const;
238 size_t AssigneeForTask(const WsfTrackId& aTrackId, WsfStringId aTaskType, WsfStringId aResourceName) const;
239 int OperatingLevelFor(WsfStringId aConditionName) const;
240 int TasksAssignedTo(size_t aAssigneeIndex, const WsfTrackId& aTrackId, WsfStringId aTaskType, WsfStringId aResourceName) const;
241 int TasksAssignedFor(const WsfTrackId& aTrackId, WsfStringId aTaskType, WsfStringId aResourceName) const;
242 int TasksReceivedFor(const WsfTrackId& aTrackId, WsfStringId aTaskType, WsfStringId aResourceName) const;
243 double TimeTaskAssigned(const WsfTrackId& aTrackId, WsfStringId aTaskType, size_t aAssigneeIndex) const;
244
247
250
251 static TaskList::iterator FindTask(TaskList& aTaskList,
252 size_t aAssigneeIndex,
253 const WsfTrackId& aTrackId,
254 WsfStringId aTaskType,
255 WsfStringId aResourceName);
256
257 static TaskList::iterator FindTask(TaskList& aTaskList, unsigned int aTaskId);
258
259 static TaskList::iterator FindTask(TaskList& aTaskList, unsigned int aTaskId, size_t aAssigneeIndex);
260
264
268
270
273
274
275 UtCallbackListN<void(double, WsfTask&, const WsfTrack&)> OnTaskAssigned;
276
278 UtCallbackListN<void(double, WsfTask&)> OnTaskCanceled;
279
281 UtCallbackListN<void(double, WsfTask&)> OnTaskCompleted;
282
284 UtCallbackListN<void(double, WsfTask&, const WsfTrack&)> OnTaskAssignSent;
285
287 UtCallbackListN<void(double, WsfTask&, WsfStringId)> OnTaskCompleteSent;
288
290 UtCallbackListN<void(double, WsfTask&)> OnTaskCancelSent;
292
295
296 void CheckMessageAcknowledged(double aSimTime, unsigned int aSerialNumber);
297
298 bool SendTaskMessage(double aSimTime, const WsfMessage& aMessage, size_t aRecipientIndex, WsfStringId aCommName, bool aReliable);
299
300 double SendTrackUpdate(double aSimTime, unsigned int aTaskId);
301
302 WsfStringId SelectCommDevice(WsfPlatform* aAssigneePtr, WsfStringId aCommName);
304
306 const TrackList& ActiveTrackList() const { return mActiveTrackList; }
307
308 bool ShowTaskMessages() const { return mShowTaskMessages; }
309
313
314
317 {
318 public:
319 EventBase(double aSimTime, WsfTaskManager* aManagerPtr);
320 EventDisposition Execute() override;
321 virtual EventDisposition ExecuteEvent(WsfTaskManager* aTaskManagerPtr) = 0;
322
323 private:
324 WsfTaskManager* mManagerPtr;
325 size_t mPlatformIndex;
326 };
327
330 {
331 public:
332 TaskCompleteEvent(double aSimTime,
333 WsfTaskManager* aManagerPtr,
334 WsfTrackId aTrackId,
335 WsfStringId aTaskType,
336 WsfStringId aResourceName,
337 WsfStringId aSubStatus);
338
339 EventDisposition ExecuteEvent(WsfTaskManager* aManagerPtr) override;
340
341 private:
342 WsfTrackId mTrackId;
343 WsfStringId mTaskType;
344 WsfStringId mResourceName;
345 WsfStringId mSubStatus;
346 };
347
350 {
351 public:
352 TrackUpdateEvent(double aSimTime, WsfTaskManager* aManagerPtr, unsigned int aTaskId);
353
354 EventDisposition ExecuteEvent(WsfTaskManager* aManagerPtr) override;
355
356 private:
357 unsigned int mTaskId;
358 };
359
360
361protected:
362 WsfTaskManager(const WsfTaskManager& aSrc);
363
364 virtual bool AcquireResource(double aSimTime, WsfTask& aTask, const WsfTrack& aTrack);
365
366 virtual bool ReleaseResource(double aSimTime, WsfTask& aTask);
367
368 virtual void TaskCanceled(double aSimTime, WsfTask& aTask);
369
370 virtual void TaskCompleted(double aSimTime, WsfTask& aTask);
371
372 virtual void TaskAssignSent(double aSimTime, const WsfTrack& aTrack, WsfTask& aTask);
373
374 virtual void TaskAssigned(double aSimTime, const WsfTrack& aTrack, WsfTask& aTask);
375
376 virtual void TaskCorrelated(double aSimTime, WsfTask& aTask);
377
378 virtual void OperatingLevelChanged(double aSimTime, std::string aLevel);
379
380 virtual void TrackDropped(double aSimTime, const WsfTrackId& aTrackId);
381
382 bool DropFromPurgedTaskList(TaskList& aPurgedTaskList, size_t aAssignerIndex, unsigned int aTaskId);
383
384 bool GetMessageSender(const WsfMessage& aMessage, size_t& aSenderIndex, WsfStringId& aRcvrCommName);
385
386 void MessageAcknowledged(unsigned int aSerialNumber);
387
389
390 virtual bool ProcessAssociationMessage(double aSimTime, const WsfAssociationMessage& aMessage);
391
392 virtual bool ProcessTaskAssignMessage(double aSimTime, const WsfTaskAssignMessage& aMessage);
393
394 virtual bool ProcessTaskCancelMessage(double aSimTime, const WsfTaskCancelMessage& aMessage);
395
396 virtual bool ProcessTaskControlMessage(double aSimTime, const WsfTaskControlMessage& aMessage);
397
398 virtual bool ProcessTaskStatusMessage(double aSimTime, const WsfTaskStatusMessage& aMessage);
399
401 virtual bool ProcessTrackDropMessage(double aSimTime, const WsfTrackDropMessage& aMessage);
402
403 virtual bool ProcessTrackMessage(double aSimTime, const WsfTrackMessage& aMessage);
405
408
410 std::unique_ptr<WsfTimeDelayQueue> mThinkerPtr;
411
415
420 std::map<WsfStringId, int> mOperatingLevels;
421
423 std::set<WsfSensor*> mSensorsTurnedOn;
424
426
427 UtCallbackHolder mCallbacks;
428
431
438
441
448
450 std::set<WsfTrackId> mPendingRcvdTasks;
451
454
458
461
464
467
469 unsigned int mNextTaskId;
470
473
476
479
482
485
486private:
487 virtual void PurgeReceivedTask(double aSimTime, WsfTask& aTask);
488
489 virtual void PurgeTransmittedTask(double aSimTime, WsfTask& aTask);
490
491 void UpdatePendingReceivedTasks(double aSimTime, const WsfLocalTrack* aLocalTrackPtr);
492
493 void UpdateSensorRequestList(double aSimTime,
494 const WsfTrackId& aTrackId,
495 WsfSensor* aSensorPtr,
496 WsfStringId aModeNameId,
497 bool aAddEntry);
498
499 virtual void UpdateTaskCorrelation(double aSimTime, WsfTask& aTask);
500
502
503
505 virtual void LocalTrackDropped(double aSimTime, const WsfLocalTrack* aLocalTrackPtr);
506
507 virtual void LocalTrackInitiated(double aSimTime, const WsfLocalTrack* aLocalTrackPtr, const WsfTrack* aRawTrackPtr);
508
509 virtual void LocalTrackUpdated(double aSimTime, const WsfLocalTrack* aLocalTrackPtr, const WsfTrack* aRawTrackPtr);
510
511 void TrackManagerChanged(double aSimTime, WsfTrackManager* aNewManagerPtr);
512
514
516
517 UtScript* mOnTaskAssignScriptPtr;
518 UtScript* mOnTaskCancelScriptPtr;
519 UtScript* mOnTaskCompleteScriptPtr;
520 UtScript* mOnTaskCompleteSentScriptPtr;
521 UtScript* mOnTaskAssignSentScriptPtr;
522 UtScript* mOnTaskCancelSentScriptPtr;
523 UtScript* mOnOperatingLevelChangeScriptPtr;
524 UtScriptData* mTrackVarPtr;
525 UtScriptClass* mTaskClassPtr;
526 UtScriptClass* mTrackClassPtr;
528};
529
531
532#endif
#define WSF_DECLARE_COMPONENT_ROLE_TYPE(TYPE, ROLE)
Definition WsfComponentRoles.hpp:44
@ cWSF_COMPONENT_TASK_MANAGER
An extension to WsfTaskManager.
Definition WsfComponentRoles.hpp:145
@ cWSF_COMPONENT_TASK_MANAGER_COMPONENT
A Component on a WsfTaskManager.
Definition WsfComponentRoles.hpp:146
ut::script::Data UtScriptData
Definition WsfScriptContext.hpp:47
aObjectPtr Update(simTime)
UtStringId WsfStringId
WsfStringId – the same thing as UtStringId.
Definition WsfStringId.hpp:23
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
Definition WsfAssociationMessage.hpp:43
Definition WsfComponentList.hpp:197
WsfEvent()=default
EventDisposition
Definition WsfEvent.hpp:37
Definition WsfLocalTrack.hpp:32
A base class for messages sent among simulation communication objects, processors and sensors.
Definition WsfMessage.hpp:33
Platforms represent a entity within the simulation.
Definition WsfPlatform.hpp:115
Definition WsfProcessorComponent.hpp:30
WsfProcessor(const WsfScenario &aScenario)
Definition WsfProcessor.cpp:25
Definition WsfRandomVariable.hpp:33
Contains the data required to create a simulation, and acts as the entry point for input file process...
Definition WsfScenario.hpp:111
WsfScriptProcessor(const WsfScenario &aScenario)
Definition WsfScriptProcessor.cpp:30
Definition WsfSensor.hpp:92
A 'status message' provides status about an operation.
Definition WsfStatusMessage.hpp:29
Definition WsfTaskAssignMessage.hpp:45
Definition WsfTaskCancelMessage.hpp:32
Definition WsfTaskControlMessage.hpp:36
Definition WsfTaskManager.hpp:55
virtual void Update(double aSimTime)
Definition WsfTaskManager.hpp:59
virtual void TaskCompleted(double aSimTime, WsfTask &aTask)
Definition WsfTaskManager.hpp:69
virtual void PlatformDeleted(WsfPlatform *aPlatformPtr)
Definition WsfTaskManager.hpp:60
virtual bool ReleaseResource(double aSimTime, WsfTask &aTask)
Definition WsfTaskManager.hpp:65
virtual void TaskCorrelated(double aSimTime, WsfTask &aTask)
Definition WsfTaskManager.hpp:67
virtual bool AcquireResource(double aSimTime, WsfTask &aTask, const WsfTrack &aTrack, bool &aStatusOk)
Definition WsfTaskManager.hpp:61
virtual void TaskCanceled(double aSimTime, WsfTask &aTask)
Definition WsfTaskManager.hpp:68
virtual bool AssignTask(double aSimTime, const WsfTrack &aTrack, const WsfTask &aTask, bool aLockTrack=true)
Definition WsfTaskManager.hpp:71
virtual void TrackDropped(double aSimTime, const WsfTrackId &aTrackId)
Definition WsfTaskManager.hpp:79
virtual bool ProcessTaskStatusMessage(double aSimTime, const WsfTaskStatusMessage &aMessage)
Definition WsfTaskManager.hpp:82
virtual void PurgeReceivedTask(double aSimTime, WsfTask &aTask)
Definition WsfTaskManager.hpp:76
virtual void PurgeTransmittedTask(double aSimTime, WsfTask &aTask)
Definition WsfTaskManager.hpp:77
virtual bool ProcessAssociationMessage(double aSimTime, const WsfAssociationMessage &aMessage)
Definition WsfTaskManager.hpp:81
Definition WsfTaskManager.hpp:317
EventDisposition Execute() override
Definition WsfTaskManager.cpp:2910
EventBase(double aSimTime, WsfTaskManager *aManagerPtr)
Definition WsfTaskManager.cpp:2903
virtual EventDisposition ExecuteEvent(WsfTaskManager *aTaskManagerPtr)=0
TaskCompleteEvent(double aSimTime, WsfTaskManager *aManagerPtr, WsfTrackId aTrackId, WsfStringId aTaskType, WsfStringId aResourceName, WsfStringId aSubStatus)
Definition WsfTaskManager.cpp:2923
EventDisposition ExecuteEvent(WsfTaskManager *aManagerPtr) override
Definition WsfTaskManager.cpp:2937
TrackUpdateEvent(double aSimTime, WsfTaskManager *aManagerPtr, unsigned int aTaskId)
Definition WsfTaskManager.cpp:2945
EventDisposition ExecuteEvent(WsfTaskManager *aManagerPtr) override
Definition WsfTaskManager.cpp:2951
Definition WsfTaskManager.hpp:98
virtual void TaskAssigned(double aSimTime, const WsfTrack &aTrack, WsfTask &aTask)
Definition WsfTaskManager.cpp:1009
size_t AssigneeForTask(const WsfTrackId &aTrackId, WsfStringId aTaskType, WsfStringId aResourceName) const
Definition WsfTaskManager.cpp:1440
void AssigneesForTask(const WsfTrackId &aTrackId, WsfStringId aTaskType, std::vector< size_t > &aAssignees) const
Definition WsfTaskManager.cpp:1417
void MessageAcknowledged(unsigned int aSerialNumber)
Definition WsfTaskManager.cpp:1670
void TurnOff(double aSimTime) override
Definition WsfTaskManager.cpp:623
bool ReceiveMessage(double aSimTime, const WsfMessage &aMessage) override
Definition WsfTaskManager.cpp:519
std::list< SensorRequest > SensorRequestList
Definition WsfTaskManager.hpp:165
bool ProcessMessage(double aSimTime, const WsfMessage &aMessage) override
Definition WsfTaskManager.cpp:480
WsfTaskManager & operator=(const WsfTaskManager &)=delete
bool GetMessageSender(const WsfMessage &aMessage, size_t &aSenderIndex, WsfStringId &aRcvrCommName)
Given a message, get the platform index of the sender and the local device on which the message was r...
Definition WsfTaskManager.cpp:1619
WsfScenario * mScenarioPtr
Definition WsfTaskManager.hpp:425
virtual void TaskCorrelated(double aSimTime, WsfTask &aTask)
Called when a task has been correlated with a local track.
Definition WsfTaskManager.cpp:2593
virtual bool ChangeOperatingLevel(double aSimTime, WsfStringId aName, int aLevel, WsfPlatform *aAssigneePtr, WsfStringId aCommName)
Change the operating level for a given subordinate.
Definition WsfTaskManager.cpp:1252
void PlatformDeleted(WsfPlatform *aPlatformPtr) override
Definition WsfTaskManager.cpp:440
WsfRandomVariable mTimeToRecognizeMessage
The amount of time it takes to recognize a message.
Definition WsfTaskManager.hpp:460
WsfComponentList::RoleIterator< WsfTaskManagerComponent > RoleIterator
typedef to simplify iteration for calling WsfTaskManagerComponent methods.
Definition WsfTaskManager.hpp:101
SensorRequestList mSensorRequestList
Definition WsfTaskManager.hpp:414
unsigned int mNextTaskId
The next task ID to be assigned.
Definition WsfTaskManager.hpp:469
WsfTrackManager * mTrackManagerPtr
The track manager that owns the tracks.
Definition WsfTaskManager.hpp:407
std::set< WsfTrackId > mPendingRcvdTasks
The set of assigned track ID's that are awaiting correlation with local track ID's.
Definition WsfTaskManager.hpp:450
virtual bool ProcessTaskAssignMessage(double aSimTime, const WsfTaskAssignMessage &aMessage)
Definition WsfTaskManager.cpp:2021
virtual bool AcquireResource(double aSimTime, WsfTask &aTask, const WsfTrack &aTrack)
Definition WsfTaskManager.cpp:792
virtual void TaskAssignSent(double aSimTime, const WsfTrack &aTrack, WsfTask &aTask)
Definition WsfTaskManager.cpp:994
UtCallbackHolder mCallbacks
Definition WsfTaskManager.hpp:427
virtual bool ReleaseResource(double aSimTime, WsfTask &aTask)
Definition WsfTaskManager.cpp:873
TrackUpdateStrategy
Definition WsfTaskManager.hpp:104
@ cBATCH
Definition WsfTaskManager.hpp:106
@ cDEFAULT
Definition WsfTaskManager.hpp:105
WsfStringId SelectCommDevice(WsfPlatform *aAssigneePtr, WsfStringId aCommName)
Definition WsfTaskManager.cpp:1805
UtCallbackListN< void(double, WsfTask &, const WsfTrack &)> OnTaskAssignSent
Executes when a task assignment is sent.
Definition WsfTaskManager.hpp:284
int TasksAssignedTo(size_t aAssigneeIndex, const WsfTrackId &aTrackId, WsfStringId aTaskType, WsfStringId aResourceName) const
Definition WsfTaskManager.cpp:1478
void CheckMessageAcknowledged(double aSimTime, unsigned int aSerialNumber)
Definition WsfTaskManager.cpp:1680
PendingMessageList mPendingMessageList
Definition WsfTaskManager.hpp:412
std::set< WsfSensor * > mSensorsTurnedOn
The sensors that have been implicitly turned on.
Definition WsfTaskManager.hpp:423
double mTimeLastTaskAssigned
The time a task was last sent.
Definition WsfTaskManager.hpp:481
bool mShowTaskMessages
True if task related messages are to be displayed.
Definition WsfTaskManager.hpp:472
std::list< WsfTask > TaskList
Definition WsfTaskManager.hpp:109
virtual bool ProcessTrackDropMessage(double aSimTime, const WsfTrackDropMessage &aMessage)
any sensor tasks for the dropped track will be reported complete/successful
Definition WsfTaskManager.cpp:2398
std::list< PendingMessage > PendingMessageList
Definition WsfTaskManager.hpp:136
bool SendTaskMessage(double aSimTime, const WsfMessage &aMessage, size_t aRecipientIndex, WsfStringId aCommName, bool aReliable)
Definition WsfTaskManager.cpp:1836
virtual bool ProcessTaskStatusMessage(double aSimTime, const WsfTaskStatusMessage &aMessage)
Definition WsfTaskManager.cpp:2263
int OperatingLevelFor(WsfStringId aConditionName) const
Return the current operating level for the specified condition name or status.
Definition WsfTaskManager.cpp:1457
std::list< ActiveTrack > TrackList
Definition WsfTaskManager.hpp:150
virtual bool CreateDelayTask(double aSimTime, double aDelayTime, const WsfTrack &aTrack, WsfStringId aTaskType)
Definition WsfTaskManager.cpp:1226
const char * GetScriptClassName() const override
Definition WsfTaskManager.cpp:244
void TurnOn(double aSimTime) override
Definition WsfTaskManager.cpp:631
WsfProcessor * Clone() const override
A virtual copy constructor.
Definition WsfTaskManager.cpp:252
TaskList mPurgedXmtdTaskList
Definition WsfTaskManager.hpp:437
double TimeTaskAssigned(const WsfTrackId &aTrackId, WsfStringId aTaskType, size_t aAssigneeIndex) const
Return the simulation time when a task was assigned.
Definition WsfTaskManager.cpp:1553
UtCallbackListN< void(double, WsfTask &)> OnTaskCompleted
Executes when an task complete is received.
Definition WsfTaskManager.hpp:281
UtCallbackListN< void(double, WsfTask &, const WsfTrack &)> OnTaskAssigned
Executes when an assigned task is accepted (by this processor).
Definition WsfTaskManager.hpp:275
bool DropFromPurgedTaskList(TaskList &aPurgedTaskList, size_t aAssignerIndex, unsigned int aTaskId)
Definition WsfTaskManager.cpp:1055
TrackList mActiveTrackList
Definition WsfTaskManager.hpp:413
TaskList mXmtdTaskList
Tasks I have sent to others.
Definition WsfTaskManager.hpp:430
virtual bool CancelTask(double aSimTime, unsigned int aTaskId)
Definition WsfTaskManager.cpp:1107
TaskList mRcvdTaskList
Tasks I have received from others.
Definition WsfTaskManager.hpp:440
bool Initialize(double aSimTime) override
Definition WsfTaskManager.cpp:285
virtual bool ProcessTrackMessage(double aSimTime, const WsfTrackMessage &aMessage)
Definition WsfTaskManager.cpp:2442
UtCallbackListN< void(double, WsfTask &, WsfStringId)> OnTaskCompleteSent
Executes when a task complete is sent.
Definition WsfTaskManager.hpp:287
~WsfTaskManager() override=default
bool ProcessInput(UtInput &aInput) override
Definition WsfTaskManager.cpp:362
std::list< ActiveTrack >::iterator TrackListIter
Definition WsfTaskManager.hpp:151
bool Initialize2(double aSimTime) override
Definition WsfTaskManager.cpp:296
TaskList mPurgedRcvdTaskList
Definition WsfTaskManager.hpp:447
TaskList & AssignedTaskList()
Return the list of tasks this TaskManager has assigned.
Definition WsfTaskManager.hpp:246
std::unique_ptr< WsfTimeDelayQueue > mThinkerPtr
The pointer to the 'thinker'.
Definition WsfTaskManager.hpp:410
virtual void TaskCompleted(double aSimTime, WsfTask &aTask)
Definition WsfTaskManager.cpp:974
bool ShowTaskMessages() const
Definition WsfTaskManager.hpp:308
UtCallbackListN< void(double, WsfTask &)> OnTaskCancelSent
Executes when a task cancel is sent.
Definition WsfTaskManager.hpp:290
const TrackList & ActiveTrackList() const
Return the list of tasks this TaskManager has active.
Definition WsfTaskManager.hpp:306
double mCommRetryInterval
The amount of time between attempts to retry failed communications.
Definition WsfTaskManager.hpp:463
int TasksAssignedFor(const WsfTrackId &aTrackId, WsfStringId aTaskType, WsfStringId aResourceName) const
Definition WsfTaskManager.cpp:1513
std::map< WsfStringId, int > mOperatingLevels
Definition WsfTaskManager.hpp:420
virtual void TrackDropped(double aSimTime, const WsfTrackId &aTrackId)
Definition WsfTaskManager.cpp:1037
double mTrackUpdateInterval
Definition WsfTaskManager.hpp:457
UtCallbackListN< void(double, WsfTask &)> OnTaskCanceled
Executes when a task cancel message is processed.
Definition WsfTaskManager.hpp:278
virtual bool ProcessTaskCancelMessage(double aSimTime, const WsfTaskCancelMessage &aMessage)
Definition WsfTaskManager.cpp:2181
virtual void TaskCanceled(double aSimTime, WsfTask &aTask)
Definition WsfTaskManager.cpp:954
const int * GetComponentRoles() const override
Definition WsfTaskManager.cpp:257
double SendTrackUpdate(double aSimTime, unsigned int aTaskId)
Definition WsfTaskManager.cpp:1754
int TasksReceivedFor(const WsfTrackId &aTrackId, WsfStringId aTaskType, WsfStringId aResourceName) const
Definition WsfTaskManager.cpp:1536
virtual bool ProcessAssociationMessage(double aSimTime, const WsfAssociationMessage &aMessage)
Definition WsfTaskManager.cpp:1976
double TimeLastTaskAssigned() const
Definition WsfTaskManager.hpp:263
TaskList & ReceivedTaskList()
Return the list of tasks this TaskManager has received.
Definition WsfTaskManager.hpp:249
virtual bool ProcessTaskControlMessage(double aSimTime, const WsfTaskControlMessage &aMessage)
Definition WsfTaskManager.cpp:2235
double TimeLastTaskReceived() const
Definition WsfTaskManager.hpp:267
virtual bool ReportTaskProgress(double aSimTime, const WsfTrackId &aTrackId, WsfStringId aTaskType, WsfStringId aResourceName, WsfStringId aSubStatus)
Definition WsfTaskManager.cpp:1363
WsfTaskManager(WsfScenario &aScenario, const std::string &aClassName="WsfTaskManager")
Constructor.
Definition WsfTaskManager.cpp:146
bool PreInitialize(double aSimTime) override
Definition WsfTaskManager.cpp:277
virtual bool ReportTaskComplete(double aSimTime, const WsfTrackId &aTrackId, WsfStringId aTaskType, WsfStringId aResourceName, WsfStringId aSubStatus)
Definition WsfTaskManager.cpp:1283
virtual bool AssignTask(double aSimTime, const WsfTrack &aTrack, const WsfTask &aTask, bool aLockTrack=true)
Definition WsfTaskManager.cpp:655
virtual void OperatingLevelChanged(double aSimTime, std::string aLevel)
Definition WsfTaskManager.cpp:1024
WsfStringId mTrackProcessorName
The name of the track processor whose track manager is the source of tracks.
Definition WsfTaskManager.hpp:453
double mTimeLastTaskReceived
The time a task was last received.
Definition WsfTaskManager.hpp:484
TrackUpdateStrategy mTrackUpdateStrategy
Determine how track updates are sent.
Definition WsfTaskManager.hpp:478
bool mShowUncompletedTasks
True if leak termination data is to be shown.
Definition WsfTaskManager.hpp:475
void * QueryInterface(int aRole) override
Definition WsfTaskManager.cpp:266
int mCommRetryAttempts
The number of attempts to retry failed communications.
Definition WsfTaskManager.hpp:466
Attributes of a task-able resource.
Definition WsfTaskResource.hpp:30
Definition WsfTaskStatusMessage.hpp:42
A class that defines a task to be performed.
Definition WsfTask.hpp:28
A specialization of WsfMessage that represents the message generated to indicate that a track has bee...
Definition WsfTrackDropMessage.hpp:31
Definition WsfTrackId.hpp:33
Definition WsfTrackManager.hpp:62
Definition WsfTrackMessage.hpp:28
An object that represents an 'track' (perception) of something.
Definition WsfTrack.hpp:120
Definition WsfTaskManager.hpp:142
WsfTrackId mSensorTrackId
The sensor track that is being generated as a result of the tracking task.
Definition WsfTaskManager.hpp:148
WsfStringId mSensorName
The name of the sensor that is generating the track.
Definition WsfTaskManager.hpp:146
WsfTrackId mTaskTrackId
The track ID of the track that was supplied to WsfSensor::StartTracking.
Definition WsfTaskManager.hpp:144
WsfStringId mCommName
Definition WsfTaskManager.hpp:131
bool mSuppressTimeoutMessage
Definition WsfTaskManager.hpp:134
size_t mRecipientIndex
Definition WsfTaskManager.hpp:130
PendingMessage(double aSimTime, WsfTaskManager *aManagerPtr, const WsfMessage &aMessage, size_t aReceipientIndex, WsfStringId aCommName, int aRetryAttempts)
Definition WsfTaskManager.cpp:2815
double mTimeSent
Definition WsfTaskManager.hpp:128
PendingMessage & operator=(const PendingMessage &aRhs)
Definition WsfTaskManager.cpp:2880
int mRetryAttempts
Definition WsfTaskManager.hpp:132
WsfMessage * mMessagePtr
Definition WsfTaskManager.hpp:129
Definition WsfTaskManager.hpp:157
WsfTrackId mSensorTrackId
The track ID.
Definition WsfTaskManager.hpp:159
WsfStringId mModeNameId
The mode for the sensor.
Definition WsfTaskManager.hpp:163
WsfSensor * mSensorPtr
The pointer to the sensor.
Definition WsfTaskManager.hpp:161
Copyrights Multiple, All Rights Reserved