VR-Forces 4.5 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
rollUpManager.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 2013 MaK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 
8 
9 #pragma once
10 
16 
17 #include <boost/function.hpp>
18 #include <set>
19 
20 class DtFilename;
21 class DtRwPropertiesMap;
22 class DtReaderWriter;
24 
25 namespace makVrv
26 {
27  class DtDe;
28 }
29 
31 {
32 public:
33 
36 
37  virtual ~DtRollUpManager();
38 
39  virtual bool loadDataFiles(const DtFilename&);
40 
42  virtual bool loadAdditionalDataFiles(const DtFilename&);
43 
45  static DtRollUpManager& instance(makVrv::DtDe&);
46 
48  static void registerInstance(makVrv::DtDe&, DtRollUpManager*);
49 
50  virtual std::map<std::string, std::string> ammunition() const;
51  virtual std::map<std::string, std::string> equipment() const;
52  virtual std::map<std::string, std::string> variables() const;
53  virtual std::map<std::string, std::string> weapons() const;
54  virtual std::map<std::string, std::string> assemblies() const;
55 
57  virtual std::map<std::string, std::string> combinedAmmunition() const;
58  virtual std::map<std::string, std::string> combinedEquipment() const;
59  virtual std::map<std::string, std::string> combinedWeapons() const;
60  virtual std::map<std::string, std::string> combinedAssemblies() const;
61  virtual std::map<std::string, std::string> combinedVariables() const;
62 
63  const DtAssembliesReaderWriter& assembliesReaderWriter() const
64  {
65  return myAssembliesReaderWriter;
66  }
67 
68  DtAssembliesReaderWriter& assembliesReaderWriter()
69  {
70  return myAssembliesReaderWriter;
71  }
72 
73  DtRollUpManager* additionalData()
74  {
75  return myAdditionalData;
76  }
77 
78  const DtRollUpManager* additionalData() const
79  {
80  return myAdditionalData;
81  }
82 
83  const DtRwKeywordValuePairsReader& keywordValuePairs() const
84  {
85  return myKeywordValuePairsReaderWriter;
86  }
87 
88  typedef boost::function<void (const DtRwPropertiesMap*, const DtObjectType&, const DtAssembliesReaderWriter::RwRootNode&,
89  const std::set<DtString>& validElements)> RollUpFunction;
90 
93  virtual void rollUpAndReselect(const std::vector<DtObjectType>&);
94 
96  virtual void rollUp(std::vector<DtObjectType>, bool reselect = false);
97 
99  virtual void rollUp(const DtObjectType&);
100 
102  virtual std::set<DtString> resetRollUpVariables(const DtObjectType&, const DtRwPropertiesMap* assemblies);
103 
104  virtual void resetRollUpVariables(const DtObjectType&, const DtAssembliesReaderWriter::RwRootNode&, std::set<DtString>&);
105 
108  virtual void resetRollUpVariable(const DtObjectType&, const std::string&, std::set<DtString>&);
109 
112  virtual void addMappedElementsFromAssembly(const DtObjectType&, DtRwPropertiesMap*, int, const DtAssembliesReaderWriter::RwRootNode&);
113 
115  virtual void addSystemsFromAssembly(const DtObjectType&, int, const DtAssembliesReaderWriter::RwRootNode&);
116  virtual void addSystem(const DtObjectType&, const DtFilename& systemFilename,
118 
120  virtual void addRollUpFunction(const std::string& function, RollUpFunction);
121 
123  virtual const std::set<DtString>& availableVariables();
124 
126  virtual const std::set<DtString>& availableSystems();
127 
129  virtual void resetSystems(const DtObjectType&);
130 
132  virtual void rollUpAll();
133 
135  virtual bool hasRollUpItems() const;
136 
138  virtual void clear();
139 
141  virtual void combinedRollUpRules(DtAssembliesReaderWriter::RwRootNode&) const;
142 
144  virtual DtAssembliesReaderWriter::RwRootNode* rootNodeFor(const std::string&) const;
145  virtual DtAssembliesReaderWriter::RwRootNode* rootNodeFor(const std::string& type, const std::string&) const;
146  virtual DtAssembliesReaderWriter::RwRootNode* rootNodeFor(const DtAssembliesReaderWriter&, const std::string& type, const std::string&) const;
147  virtual DtAssembliesReaderWriter::RwRootNode* assemblyNodeFor(const std::string&) const;
148 
149 protected:
150  virtual void collect(const DtRwPropertiesMap*, const DtObjectType&, const DtAssembliesReaderWriter::RwRootNode& itemsToCollect,
151  const std::set<DtString>& validElements);
152 
153  typedef boost::function<void (double, double, DtReaderWriter*)> CollectionFunction;
154 
155  virtual void sum(double count, double value, DtReaderWriter*);
156  virtual void sumFunction(const DtRwPropertiesMap*, const DtObjectType&, const DtAssembliesReaderWriter::RwRootNode& itemsToSum,
157  const std::set<DtString>& validElements);
158 
159  virtual void minimum(double count, double value, DtReaderWriter*);
160  virtual void minimumFunction(const DtRwPropertiesMap*, const DtObjectType&, const DtAssembliesReaderWriter::RwRootNode& itemsToSum,
161  const std::set<DtString>& validElements);
162 
163  virtual void maximum(double count, double value, DtReaderWriter*);
164  virtual void maximumFunction(const DtRwPropertiesMap*, const DtObjectType&, const DtAssembliesReaderWriter::RwRootNode& itemsToSum,
165  const std::set<DtString>& validElements);
166 
167  virtual void averageFunction(const DtRwPropertiesMap*, const DtObjectType&, const DtAssembliesReaderWriter::RwRootNode& itemsToSum,
168  const std::set<DtString>& validElements);
169  virtual void calculateAverage(const DtRwPropertiesMap*, const DtObjectType&,
170  const std::string& propertyToAverage, const DtAssembliesReaderWriter::RwRootNode& itemsToSum, const std::set<DtString>& validElements);
171 
172  virtual void singleValueRollUp(const DtRwPropertiesMap*, const DtObjectType&, const DtAssembliesReaderWriter::RwRootNode&,
173  const std::set<DtString>& validElements, CollectionFunction func);
174 
175  virtual void extractVariables(DtReaderWriter*, std::set<DtString>& vars) const;
176 
177  virtual std::string valueForVariable(const DtAssembliesReaderWriter::RwRootNode& variables, const std::string& keyword) const;
178 
179  virtual std::map<std::string, std::string> combine(const std::map<std::string, std::string>& base,
180  const std::map<std::string, std::string>& takeFrom) const;
181 
182 private:
184  DtRollUpManager& operator=(const DtRollUpManager&);
185 
186 protected:
189 
190  typedef std::map<std::string, RollUpFunction> RollUpFunctions;
192 
194  std::set<DtString> myAvailableVariables;
195  std::set<DtString> myAvailableSystems;
196 
199 };

Document ID: Generated on Thu Mar 23 18:54:12 EDT 2017 from SVN revision 174804
Copyright © 2005-2017 VT MÄK. All Rights Reserved (www.mak.com)