VR-Forces 4.1 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 
18 #include <vrvCore/DtUniqueID.h>
20 
23 
24 #include <boost/signal.hpp>
25 #include "vrftasks/radioMsgTypes.h"
26 
27 namespace makVrv
28 {
29  class DtDe;
30  class DtSimEntry;
31  class DtSimObjectEntry;
32 }
33 
34 class DtSimMessage;
37 
38 namespace makVrf
39 {
41  {
42  public:
44  {
45  };
46 
48  mySupportedTasks(orig.mySupportedTasks), mySupportedSets(orig.mySupportedSets)
49  {
50  };
51 
52  std::vector<DtSimTaskMessageType> mySupportedTasks;
53  std::vector<DtSetMessageType> mySupportedSets;
54  };
55 
57  {
58  public:
59  std::vector<DtString> mySupportedAppearances;
61  };
62 
65  {
66  public:
67  typedef std::map<int, std::vector<DtSimTaskMessageType> > DtTaskMap;
68  typedef std::map<int, std::vector<DtSetMessageType> > DtSetMap;
69  typedef std::vector<makVrv::DtSimEntry*> SimEntries;
70 
71  public:
73  virtual ~DtVrfTaskSetManager();
74 
76  static DtVrfTaskSetManager& instance(makVrv::DtDe& de);
77 
78  public:
80  virtual void requestInformationFor(const std::string& name, makVrv::DtUniqueID id);
81  virtual void requestInformationFor(const std::vector<std::pair<DtString, makVrv::DtUniqueID> >& names);
82 
84  virtual void updateAvailableTaskSetInformation(const makVrv::DtSimEntry* type);
85  virtual void updateAvailableTaskSetInformation(const SimEntries&);
86  virtual void updateAvailableTaskSetInformation(const std::string& name);
87  virtual void updateAvailableTaskSetInformation(makVrv::DtElementID id);
88 
90  virtual bool hasTaskSetInformationFor(const makVrv::DtUniqueID&) const;
91 
94  virtual bool hasTaskSetInformationFor(const std::string&) const;
95 
96  virtual void setSupportedTasks(const makVrv::DtUniqueID&, const std::vector<DtSimTaskMessageType>&, bool signal = true);
97  virtual void setSupportedSets(const makVrv::DtUniqueID&, const std::vector<DtSetMessageType>&, bool signal = true);
98 
99  virtual void availableTasks(const makVrv::DtSelectionManager::IdSet&, std::vector<int>& available);
100  virtual void availableSets(const makVrv::DtSelectionManager::IdSet&, std::vector<int>& available);
101  virtual void available(const makVrv::DtSelectionManager::IdSet&, std::vector<int>& available);
102  virtual std::vector<int> supportedMenuTasks() const;
103  virtual std::vector<int> supportedMenuSets() const;
104 
105  boost::signal<void (makVrv::DtUniqueID)> signal_supportedTaskInformationChanged;
106  boost::signal<void (makVrv::DtUniqueID)> signal_supportedSetInformationChanged;
107  boost::signal<void (makVrv::DtUniqueID)> signal_supportedDiGuyAnimationsInformationChanged;
108  boost::signal<void (makVrv::DtUniqueID)> signal_supportedDiGuyAppearanceInformationChanged;
109 
111  boost::signal<void ()> signal_allPendingRequestsResolved;
112 
114  virtual bool hasPendingRequests() const;
115 
117  virtual bool isAvailableTaskMenuItem(int) const;
118  virtual bool isAvailableVrfTaskItem(const DtSimTaskMessageType&) const;
119 
121  virtual bool isAvailableSetMenuItem(int) const;
122  virtual bool isAvailableVrfSetItem(const DtSetMessageType&) const;
123 
124  virtual bool hasDIGuyInformationFor(const makVrv::DtUniqueID&) const;
125  virtual DtDIGuyAppearancesAndAnimations* diGuyInformationFor(const makVrv::DtUniqueID&);
126 
127  virtual void setDIGuyAppearances(const makVrv::DtUniqueID&, const std::vector<DtString>&, bool signal = true);
128  virtual void setDIGuyAnimations(const makVrv::DtUniqueID&, const AlternateNamesList&, bool signal = true);
129  virtual void setDIGuyAppearancesAndAnimations(const makVrv::DtUniqueID&,
130  const std::vector<DtString>&, const AlternateNamesList&, bool signal = true);
131 
133  virtual void clearAllInformation();
134 
135  virtual DtTasksAndSets* informationFor(const makVrv::DtUniqueID&);
136 
138  virtual void addAvailableSet(int menuItem, const DtSetMessageType& setType);
139  virtual void addAvailableTask(int menuItem, const DtSimTaskMessageType& taskType);
140 
142  virtual void removeAvailableSet(int menuItem, const DtSetMessageType& setType);
143  virtual void removeAvailableTask(int menuItem, const DtSimTaskMessageType& taskType);
144 
145  virtual void requestDIGuyAppearancesAndAnimations(const std::string& name);
146  virtual void requestDIGuyAppearancesAndAnimations(const std::vector<DtString>& name);
147 
149  virtual int nextAvailableId() const;
150 
151  protected:
153  virtual void requestTaskSetInformationFor(const std::string&);
154  virtual void requestTaskSetInformationFor(const std::vector<DtString>&);
155  virtual void processTaskAndSetResponse(DtSimMessage*);
156 
158  virtual void processDIGuyResponse(DtSimMessage*);
159 
161  virtual void initMenuMappings();
162 
163  virtual bool isAvailableMenuItem(int menu, const DtTaskMap&) const;
164  virtual bool isAvailableMenuItem(int menu, const DtSetMap& m) const;
165  virtual bool isAvailableVrfItem(const DtSimTaskMessageType& item, const DtTaskMap&) const;
166  virtual bool isAvailableVrfItem(const DtSetMessageType& item, const DtSetMap&) const;
167 
169  virtual void mergeMenuItems(const std::vector<DtSimTaskMessageType>& entityItems, const DtTaskMap& menuMap,
170  std::vector<int>& results);
171 
172  virtual void mergeMenuItems(const std::vector<DtSetMessageType>& entityItems, const DtSetMap& menuMap,
173  std::vector<int>& results);
174 
175  protected:
176  virtual void slot_postInitialize(makVrv::DtDe& de);
177  virtual void slot_objectRemoved(makVrv::DtSimObjectEntry&);
178  virtual void requestNextSetOfNames();
179 
180  protected:
181  std::map<makVrv::DtUniqueID, DtTasksAndSets> myTaskSetInformation;
182  std::map<makVrv::DtUniqueID, DtDIGuyAppearancesAndAnimations*> myDIGuyTaskSetCharacterInfo;
183  std::map<std::string, makVrv::DtUniqueID> myPendingRequests;
184  std::map<std::string, makVrv::DtUniqueID> myPendingDIGuyRequests;
185  std::map<DtString, bool> myRequestingNames;
186 
188 
192  };
193 }

Document ID: Generated on Tue Jan 29 18:21:16 EST 2013 from SVN revision 123193
Copyright © 2005-2013 VT MÄK Inc. All Rights Reserved (www.mak.com)