VR-Forces 5.0.1 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
vrfCurrentTaskManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2009 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
10 
11 #pragma once
12 
13 #include <vrfGuiCore/vrfGuiCore.h>
14 
16 #include <vrvCore/DtStateView.h>
17 #include <vrvCore/DtEntityState.h>
18 
19 #include <vrftasks/simTask.h>
21 #include <vrfutil/rwUUID.h>
22 
23 
24 #include <boost/function.hpp>
25 
26 class DtVrfObjectMessage;
27 
28 namespace makVrv
29 {
30  class DtDe;
31  class DtSimObjectEntry;
32 }
33 
34 namespace makVrf
35 {
36 
42  {
43  public:
44  typedef DtBoost::shared_ptr<DtSimTask> DtSimTaskSharedPtr;
45  typedef DtBoost::shared_ptr<DtSetDataRequest> DtSetDataRequestSharedPtr;
46  typedef std::vector<DtSimTaskMessageType> Conflicting;
47 
51  {
54  std::vector<TaskInformation> subtasks;
55  int status;
58  };
59 
60  typedef std::vector<TaskInformation> EntityTaskInformation;
61 
62  public:
64  virtual ~DtVrfCurrentTaskManager();
65 
67  static DtVrfCurrentTaskManager& instance(makVrv::DtDe& de);
68 
69  public:
70  boost::signals2::signal<void (const DtUUID&)> signal_currentTaskChanged;
71 
74  boost::signals2::signal<void ()> signal_allRequestsReceived;
75 
76  virtual void subscribeForTaskInformation(const makVrv::DtUniqueID& simId);
77  virtual void unsubscribeForTaskInformation(const makVrv::DtUniqueID& simId, bool all = false);
78 
81  typedef boost::function<void (DtUUID, const EntityTaskInformation&)> DtRequestTaskCallbackFcn;
82 
83  virtual void requestCurrentTasksFor(const makVrv::DtUniqueID& simId, DtRequestTaskCallbackFcn);
84 
86  virtual void requestCurrentTasksFor(const std::vector<makVrv::DtUniqueID>& simIds);
87  virtual void requestCurrentTasksFor(const std::vector<makVrv::DtSimEntry*>&);
88 
90  virtual void defaultReceivedTaskCallback(const DtUUID&, const EntityTaskInformation&);
91 
94  virtual const EntityTaskInformation* tasksFor(const makVrv::DtUniqueID& simId) const;
95 
96  protected:
97  virtual void slot_simObjectEntryAboutToBeRemoved(makVrv::DtSimObjectEntry& entry);
98  virtual void processEntityCurrentTaskCallback(const DtVrfObjectMessage* msg);
99 
100  virtual makVrv::DtUniqueID isMonitoring(const DtUUID&) const;
101  virtual makVrv::DtUniqueID isRequesting(const DtUUID&) const;
102 
104  virtual void convertTaskList(const DtCurrentTasksAdminContent::DtTaskList&, EntityTaskInformation&) const;
105 
107  virtual void convertScriptedSetList(const DtCurrentTasksAdminContent::DtScriptedSetList&, EntityTaskInformation&) const;
108 
110  virtual TaskInformation convertDataToTaskInformation(const DtCurrentTaskData& data) const;
111 
113  virtual TaskInformation convertDataToScriptedSetInformation(const DtCurrentScriptedSetData& data) const;
114 
116  virtual void convertMessageToInformation(const DtCurrentTasksAdminContent*, EntityTaskInformation&) const;
117 
118  protected:
120 
121  typedef std::pair<EntityTaskInformation, int> EntityTasks;
122 
123  typedef std::map<makVrv::DtUniqueID, EntityTasks> DtEntityTaskMap;
125 
126  typedef std::vector<DtRequestTaskCallbackFcn> DtRequestCallbackVector;
127  typedef std::map<makVrv::DtUniqueID, DtRequestCallbackVector> DtRequestCallbackMap;
128 
131  };
132 }
boost::signals2::signal< void(const DtUUID &)> signal_currentTaskChanged
Definition: vrfCurrentTaskManager.h:70
UUID is a unique ID wrapper class.
Definition: rwUUID.h:226
makVrv::DtDe & myDe
Definition: vrfCurrentTaskManager.h:119
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
DtSimTaskSharedPtr task
Definition: vrfCurrentTaskManager.h:52
Note, check task or set. Since scripted sets are now running as part of the scripted task manager...
Definition: vrfCurrentTaskManager.h:50
std::vector< DtSimTaskMessageType > Conflicting
Definition: vrfCurrentTaskManager.h:46
std::map< makVrv::DtUniqueID, DtRequestCallbackVector > DtRequestCallbackMap
Definition: vrfCurrentTaskManager.h:127
std::vector< DtRequestTaskCallbackFcn > DtRequestCallbackVector
Definition: vrfCurrentTaskManager.h:126
Contains makVrv::DtStateView class.
Structure holding the current task information for one of the current tasks for an entity...
Definition: currentTasksAdminContent.h:25
Contains the DtUUID class declaration.
class DtVrfCurrentTaskManager
Definition: vrfCurrentTaskManager.h:41
boost::signals2::signal< void()> signal_allRequestsReceived
When all immediately requested tasks are received (via the requestCurrentTasksFor) this signal is sen...
Definition: vrfCurrentTaskManager.h:74
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
std::pair< EntityTaskInformation, int > EntityTasks
Definition: vrfCurrentTaskManager.h:121
DtString controller
Definition: vrfCurrentTaskManager.h:56
DtSetDataRequestSharedPtr set
Definition: vrfCurrentTaskManager.h:53
boost::function< void(DtUUID, const EntityTaskInformation &)> DtRequestTaskCallbackFcn
Request current tasks. Will return a structure, that, when released will also free memory for tasks...
Definition: vrfCurrentTaskManager.h:81
int status
Definition: vrfCurrentTaskManager.h:55
Contains makVrv::DtVirtualBaseClass class.
A DtSimObjectEntry is an entry for a persistent simulation object like an entity. ...
Definition: DtSimObjectEntry.h:22
std::map< makVrv::DtUniqueID, EntityTasks > DtEntityTaskMap
Definition: vrfCurrentTaskManager.h:123
Contains makVrv::DtVrlinkSimulatedEntityState class.
DtBoost::shared_ptr< DtSetDataRequest > DtSetDataRequestSharedPtr
Definition: vrfCurrentTaskManager.h:45
The base class for all messages to/from a specific DtVrfObject. Various subclasses of this class will...
Definition: vrfObjectMessage.h:30
std::list< DtCurrentTaskData > DtTaskList
Definition: currentTasksAdminContent.h:116
Admin content that is used to send the current tasks status from a specific entity. This message is sent in response to a DtRequstCurrentTasksAdminContent or a subscription to the current task status using the same message. The current task status is a list of all the currently executing top level tasks that an entity has.
Definition: currentTasksAdminContent.h:113
std::vector< TaskInformation > subtasks
Definition: vrfCurrentTaskManager.h:54
DtEntityTaskMap myTasks
Definition: vrfCurrentTaskManager.h:124
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:70
Structure holding the current set information for one of the current scripted sets for an entity...
Definition: currentTasksAdminContent.h:51
DtRequestCallbackMap myTaskRequestCallbacks
Definition: vrfCurrentTaskManager.h:129
std::vector< TaskInformation > EntityTaskInformation
Definition: vrfCurrentTaskManager.h:60
bool myConnectedToReceiveTasks
Definition: vrfCurrentTaskManager.h:130
DtBoost::shared_ptr< DtSimTask > DtSimTaskSharedPtr
Definition: vrfCurrentTaskManager.h:44
std::list< DtCurrentScriptedSetData > DtScriptedSetList
Definition: currentTasksAdminContent.h:117
Conflicting conflictingTasks
Definition: vrfCurrentTaskManager.h:57

Document ID: Generated on Mon Jun 20 00:38:30 EDT 2022 from SVN revision 244029
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)