VR-Forces 4.2 Class Documentation
DtVrfTaskSetManager.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2011 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
10 
12 
13 #pragma once
14 
15 #include <vrfGuiCore/vrfGuiCore.h>
16 
17 #include <vrvUtil/DtVirtualBaseClass.h>
18 #include <vrvCore/DtUniqueID.h>
19 #include <vrvCore/DtSelectionManager.h>
20 #include <vrvCore/DtStateView.h>
21 #include <vrvCore/DtEntityState.h>
22 
25 
26 #include <boost/signal.hpp>
27 #include "vrftasks/radioMsgTypes.h"
28 
29 namespace makVrv
30 {
31  class DtDe;
32  class DtSimEntry;
33  class DtSimObjectEntry;
34 }
35 
36 class DtSimMessage;
39 
40 namespace makVrf
41 {
43  {
44  public:
46  {
47  };
48 
50  mySupportedTasks(orig.mySupportedTasks), mySupportedSets(orig.mySupportedSets)
51  {
52  };
53 
54  std::vector<DtSimTaskMessageType> mySupportedTasks;
55  std::vector<DtSetMessageType> mySupportedSets;
56  };
57 
59  {
60  public:
61  std::vector<DtString> mySupportedAppearances;
63  };
64 
66  class DT_DLL_VRFGUICORE DtVrfTaskSetManager : public makVrv::DtVirtualBaseClass
67  {
68  public:
69  typedef std::map<int, std::vector<DtSimTaskMessageType> > DtTaskMap;
70  typedef std::map<int, std::vector<DtSetMessageType> > DtSetMap;
71  typedef std::vector<makVrv::DtSimEntry*> SimEntries;
72 
73  public:
74  DtVrfTaskSetManager(makVrv::DtDe&);
75  virtual ~DtVrfTaskSetManager();
76 
78  static DtVrfTaskSetManager& instance(makVrv::DtDe& de);
79 
80  public:
82  virtual void requestInformationFor(const std::string& name, makVrv::DtUniqueID id);
83  virtual void requestInformationFor(const std::vector<std::pair<DtString, makVrv::DtUniqueID> >& names);
84 
86  virtual void updateAvailableTaskSetInformation(const makVrv::DtSimEntry* type);
87  virtual void updateAvailableTaskSetInformation(const SimEntries&);
88  virtual void updateAvailableTaskSetInformation(const std::string& name);
89  virtual void updateAvailableTaskSetInformation(makVrv::DtElementID id);
90 
92  virtual bool hasTaskSetInformationFor(const makVrv::DtUniqueID&) const;
93 
96  virtual bool hasTaskSetInformationFor(const std::string&) const;
97 
98  virtual void setSupportedTasks(const makVrv::DtUniqueID&, const std::vector<DtSimTaskMessageType>&, bool signal = true);
99  virtual void setSupportedSets(const makVrv::DtUniqueID&, const std::vector<DtSetMessageType>&, bool signal = true);
100 
101  virtual void availableTasks(const makVrv::DtSelectionManager::IdSet&, std::vector<int>& available);
102  virtual void availableSets(const makVrv::DtSelectionManager::IdSet&, std::vector<int>& available);
103  virtual void available(const makVrv::DtSelectionManager::IdSet&, std::vector<int>& available);
104  virtual std::vector<int> supportedMenuTasks() const;
105  virtual std::vector<int> supportedMenuSets() const;
106 
107  boost::signal<void (makVrv::DtUniqueID)> signal_supportedTaskInformationChanged;
108  boost::signal<void (makVrv::DtUniqueID)> signal_supportedSetInformationChanged;
109  boost::signal<void (makVrv::DtUniqueID)> signal_supportedDiGuyAnimationsInformationChanged;
110  boost::signal<void (makVrv::DtUniqueID)> signal_supportedDiGuyAppearanceInformationChanged;
111 
113  boost::signal<void ()> signal_allPendingRequestsResolved;
114 
116  virtual bool hasPendingRequests() const;
117 
119  virtual void clearInformationForForce(int);
120 
122  virtual bool isAvailableTaskMenuItem(int) const;
123  virtual bool isAvailableVrfTaskItem(const DtSimTaskMessageType&) const;
124 
126  virtual bool isAvailableSetMenuItem(int) const;
127  virtual bool isAvailableVrfSetItem(const DtSetMessageType&) const;
128 
129  virtual bool hasDIGuyInformationFor(const makVrv::DtUniqueID&) const;
130  virtual DtDIGuyAppearancesAndAnimations* diGuyInformationFor(const makVrv::DtUniqueID&);
131 
132  virtual void setDIGuyAppearances(const makVrv::DtUniqueID&, const std::vector<DtString>&, bool signal = true);
133  virtual void setDIGuyAnimations(const makVrv::DtUniqueID&, const AlternateNamesList&, bool signal = true);
134  virtual void setDIGuyAppearancesAndAnimations(const makVrv::DtUniqueID&,
135  const std::vector<DtString>&, const AlternateNamesList&, bool signal = true);
136 
138  virtual void clearAllInformation();
139 
140  virtual DtTasksAndSets* informationFor(const makVrv::DtUniqueID&);
141 
143  virtual void addAvailableSet(int menuItem, const DtSetMessageType& setType);
144  virtual void addAvailableTask(int menuItem, const DtSimTaskMessageType& taskType);
145 
147  virtual void removeAvailableSet(int menuItem, const DtSetMessageType& setType);
148  virtual void removeAvailableTask(int menuItem, const DtSimTaskMessageType& taskType);
149 
150  virtual void requestDIGuyAppearancesAndAnimations(const std::string& name);
151  virtual void requestDIGuyAppearancesAndAnimations(const std::vector<DtString>& name);
152 
154  virtual int nextAvailableId() const;
155 
156  protected:
158  virtual void requestTaskSetInformationFor(const std::string&);
159  virtual void requestTaskSetInformationFor(const std::vector<DtString>&);
160  virtual void processTaskAndSetResponse(DtSimMessage*);
161 
163  virtual void processDIGuyResponse(DtSimMessage*);
164 
166  virtual void initMenuMappings();
167 
168  virtual bool needsUpdateForForce(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* sv);
169 
170  virtual bool isAvailableMenuItem(int menu, const DtTaskMap&) const;
171  virtual bool isAvailableMenuItem(int menu, const DtSetMap& m) const;
172  virtual bool isAvailableVrfItem(const DtSimTaskMessageType& item, const DtTaskMap&) const;
173  virtual bool isAvailableVrfItem(const DtSetMessageType& item, const DtSetMap&) const;
174 
176  virtual void mergeMenuItems(const std::vector<DtSimTaskMessageType>& entityItems, const DtTaskMap& menuMap,
177  std::vector<int>& results);
178 
179  virtual void mergeMenuItems(const std::vector<DtSetMessageType>& entityItems, const DtSetMap& menuMap,
180  std::vector<int>& results);
181 
182  protected:
183  virtual void slot_postInitialize(makVrv::DtDe& de);
184  virtual void slot_objectRemoved(makVrv::DtSimObjectEntry&);
185  virtual void requestNextSetOfNames();
186 
187  protected:
188  std::map<makVrv::DtUniqueID, int> myForceMap;
189  std::map<makVrv::DtUniqueID, DtTasksAndSets> myTaskSetInformation;
190  std::map<makVrv::DtUniqueID, DtDIGuyAppearancesAndAnimations*> myDIGuyTaskSetCharacterInfo;
191  std::map<std::string, makVrv::DtUniqueID> myPendingRequests;
192  std::map<std::string, makVrv::DtUniqueID> myPendingDIGuyRequests;
193  std::map<DtString, bool> myRequestingNames;
194 
196 
199  makVrv::DtDe& myDe;
200  };
201 }

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)