WSF
WsfXIO_TaskService.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#ifndef WSFXIO_TASKSERVICE_HPP
13#define WSFXIO_TASKSERVICE_HPP
14
15#include "wsf_export.h"
16
17#include "WsfStringId.hpp"
18class WsfSimulation;
19class WsfTask;
21class WsfTrack;
29
31{
32public:
33 WsfXIO_TaskService(WsfXIO_Simulation& aXIO_Simulation);
34 ~WsfXIO_TaskService() override;
35
37 size_t aPlatformIndex,
38 WsfStringId& aProcessorNameId);
39
40protected:
48 typedef std::vector<SubscriptionData*> SubscriptionList;
49 typedef std::pair<size_t, WsfStringId> ProcessorId;
50 typedef std::map<ProcessorId, SubscriptionData> SubscriptionDataMap;
51
53
55
56 void UpdateCallbacks();
57
58 void SendInitial(SubscriptionData& aData);
59
60 void TaskAccepted(double aSimTime, const WsfTask* aTaskPtr, const WsfTrack* aTrackPtr);
61
62 void TaskAssigned(double aSimTime, const WsfTask* aTaskPtr, const WsfTrack* aTrackPtr);
63
64 void TaskCanceled(double aSimTime, const WsfTask* aTaskPtr);
65
66 void TaskCompleted(double aSimTime, const WsfTask* aTaskPtr, WsfStringId aStatus);
67
68 void GetProcessorIds(const WsfTask& aTask, ProcessorId& aAssigner, ProcessorId& aAssignee);
69
70 void GetSubscriptions(const WsfTask& aTask,
71 SubscriptionList& aAssignerSubscriptions,
72 SubscriptionList& aAssigneeSubscriptions);
73
74 void SubscriptionCancelled(WsfXIO_Subscription* aSubscriptionPtr) override;
75
79 UtCallbackHolder mTaskCallbacks;
80};
81
82#endif
UtStringId WsfStringId
WsfStringId – the same thing as UtStringId.
Definition WsfStringId.hpp:23
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
The main controller for a simulation.
Definition WsfSimulation.hpp:109
Definition WsfTaskProcessor.hpp:29
A class that defines a task to be performed.
Definition WsfTask.hpp:28
An object that represents an 'track' (perception) of something.
Definition WsfTrack.hpp:120
Definition WsfXIO_PacketRegistry.hpp:171
WsfXIO_Service(WsfXIO_Interface *aInterfacePtr)
Definition WsfXIO_Service.cpp:21
const SubscriptionMap GetSubscriptions() const
Definition WsfXIO_Service.hpp:61
virtual void SubscriptionCancelled(WsfXIO_Subscription *aSubscriptionPtr)
Definition WsfXIO_Service.cpp:134
Definition WsfXIO_Simulation.hpp:49
A WsfXIO_Subscription wraps information about a remote request for information.
Definition WsfXIO_Subscription.hpp:30
Requests a task manager processor to create or modify a task.
Definition WsfXIO_PacketRegistry.hpp:727
Defines current state of the task manager processor. Response to WsfXIO_TaskRequestPkt.
Definition WsfXIO_PacketRegistry.hpp:676
Definition WsfXIO_PacketRegistry.hpp:659
std::map< ProcessorId, SubscriptionData > SubscriptionDataMap
Definition WsfXIO_TaskService.hpp:50
WsfXIO_Simulation & mXIO_Simulation
Definition WsfXIO_TaskService.hpp:76
void SendInitial(SubscriptionData &aData)
Definition WsfXIO_TaskService.cpp:216
std::vector< SubscriptionData * > SubscriptionList
Definition WsfXIO_TaskService.hpp:48
std::pair< size_t, WsfStringId > ProcessorId
Definition WsfXIO_TaskService.hpp:49
UtCallbackHolder mTaskCallbacks
Definition WsfXIO_TaskService.hpp:79
void TaskAccepted(double aSimTime, const WsfTask *aTaskPtr, const WsfTrack *aTrackPtr)
Simulation observer for TaskAccepted.
Definition WsfXIO_TaskService.cpp:98
void TaskCompleted(double aSimTime, const WsfTask *aTaskPtr, WsfStringId aStatus)
Simulation observer for TaskCompleted.
Definition WsfXIO_TaskService.cpp:163
WsfSimulation & mSimulation
Definition WsfXIO_TaskService.hpp:77
static WsfTaskProcessor * FindTaskProcessor(WsfSimulation &aSimulation, size_t aPlatformIndex, WsfStringId &aProcessorNameId)
Definition WsfXIO_TaskService.cpp:331
SubscriptionDataMap mSubscriptionsInfo
Definition WsfXIO_TaskService.hpp:78
void HandleRequest(WsfXIO_TaskRequestPkt &aPkt)
Definition WsfXIO_TaskService.cpp:55
void HandleCommand(WsfXIO_TaskCommandPkt &aPkt)
Definition WsfXIO_TaskService.cpp:230
WsfXIO_TaskService(WsfXIO_Simulation &aXIO_Simulation)
Definition WsfXIO_TaskService.cpp:26
void TaskAssigned(double aSimTime, const WsfTask *aTaskPtr, const WsfTrack *aTrackPtr)
Simulation observer for TaskAssigned.
Definition WsfXIO_TaskService.cpp:117
void GetProcessorIds(const WsfTask &aTask, ProcessorId &aAssigner, ProcessorId &aAssignee)
Definition WsfXIO_TaskService.cpp:186
void UpdateCallbacks()
Definition WsfXIO_TaskService.cpp:82
void TaskCanceled(double aSimTime, const WsfTask *aTaskPtr)
Simulation observer for TaskCanceled.
Definition WsfXIO_TaskService.cpp:140
Defines a change in a task. Assignment, cancellation, or completion. Response to WsfXIO_TaskRequestPk...
Definition WsfXIO_PacketRegistry.hpp:687
Definition WsfXIO_TaskService.hpp:42
WsfXIO_Subscription * mSubscriptionPtr
Definition WsfXIO_TaskService.hpp:43
size_t mPlatformIndex
Definition WsfXIO_TaskService.hpp:44
bool mHasControl
Definition WsfXIO_TaskService.hpp:46
WsfTaskProcessor * mTaskProcessorPtr
Definition WsfXIO_TaskService.hpp:45
Copyrights Multiple, All Rights Reserved