VR-Forces 4.2 Class Documentation
DtVrfCurrentTaskManager.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 
15 #include <vrvUtil/DtVirtualBaseClass.h>
16 #include <vrvCore/DtStateView.h>
17 #include <vrvCore/DtEntityState.h>
18 
19 #include <vrftasks/simTask.h>
21 
22 #include <boost/signal.hpp>
23 #include <boost/function.hpp>
24 
25 class DtVrfObjectMessage;
26 
27 namespace makVrv
28 {
29  class DtDe;
30  class DtSimObjectEntry;
31 }
32 
33 namespace makVrf
34 {
35  class DT_DLL_VRFGUICORE DtVrfCurrentTaskManager : public makVrv::DtVirtualBaseClass
36  {
37  public:
38  typedef DtBoost::shared_ptr<DtSimTask> DtSimTaskSharedPtr;
39  typedef std::vector<DtSimTaskMessageType> Conflicting;
40 
42  {
44  std::vector<TaskInformation> subtasks;
45  int status;
48  };
49 
50  typedef std::vector<TaskInformation> EntityTaskInformation;
51 
52  public:
53  DtVrfCurrentTaskManager(makVrv::DtDe&);
54  virtual ~DtVrfCurrentTaskManager();
55 
57  static DtVrfCurrentTaskManager& instance(makVrv::DtDe& de);
58 
59  public:
60  boost::signal<void (const std::string& entityName)> signal_currentTaskChanged;
61 
64  boost::signal<void ()> signal_allRequestsReceived;
65 
66  virtual void subscribeForTaskInformation(const makVrv::DtUniqueID& simId);
67  virtual void unsubscribeForTaskInformation(const makVrv::DtUniqueID& simId, bool all = false);
68 
71  typedef boost::function<void (std::string, const EntityTaskInformation&)> DtRequestTaskCallbackFcn;
72 
73  virtual void requestCurrentTasksFor(const makVrv::DtUniqueID& simId, DtRequestTaskCallbackFcn);
74 
76  virtual void requestCurrentTasksFor(const std::vector<makVrv::DtUniqueID>& simIds);
77  virtual void requestCurrentTasksFor(const std::vector<makVrv::DtSimEntry*>&);
78 
80  virtual void defaultReceivedTaskCallback(std::string, const EntityTaskInformation&);
81 
84  virtual const EntityTaskInformation* tasksFor(const makVrv::DtUniqueID& simId) const;
85 
86  protected:
87  virtual void slot_simObjectEntryAboutToBeRemoved(makVrv::DtSimObjectEntry& entry);
88  virtual void processEntityCurrentTaskCallback(const DtVrfObjectMessage* msg);
89 
90  virtual makVrv::DtUniqueID isMonitoring(const std::string& e) const;
91  virtual makVrv::DtUniqueID isRequesting(const std::string& e) const;
92 
94  virtual void convertTaskList(const DtCurrentTasksAdminContent::DtTaskList&, EntityTaskInformation&) const;
95 
97  virtual TaskInformation convertDataToTaskInformation(const DtCurrentTaskData& data) const;
98 
100  virtual void convertMessageToInformation(const DtCurrentTasksAdminContent*, EntityTaskInformation&) const;
101 
102  protected:
103  makVrv::DtDe& myDe;
104 
105  typedef std::pair<EntityTaskInformation, int> EntityTasks;
106 
107  typedef std::map<makVrv::DtUniqueID, EntityTasks> DtEntityTaskMap;
109 
110  typedef std::vector<DtRequestTaskCallbackFcn> DtRequestCallbackVector;
111  typedef std::map<makVrv::DtUniqueID, DtRequestCallbackVector> DtRequestCallbackMap;
112 
114  };
115 }

Document ID: Generated on Sun Nov 24 19:49:21 EST 2013 from SVN revision 133924
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)