VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
trueAggregateRollUpHelper.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2014 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
10 
11 #pragma once
12 
13 #include "vrfutil/vrfutilDefines.h"
16 
17 #include <boost/function.hpp>
18 
19 typedef boost::function<bool (const DtReaderWriter* source, DtReaderWriter* destination,
20  const DtMergePath& path, const std::map<std::string, std::string>& attributes)> DtRollUpFunction;
21 
25 {
26 public:
27  typedef std::map<std::string, DtRollUpFunction> RollUpRules;
28 
30  virtual ~DtTrueAggregateRollUpHelper();
31 
33  virtual void installCustomRules();
34 
37  virtual void addRollUpFunction(const std::string&, DtRollUpFunction);
38  const RollUpRules& rollUpRules() const
39  {
40  return myRollUpRules;
41  }
42 
44  {
45  return myRollUpRules;
46  }
47 
48  virtual bool sumFunction(const DtReaderWriter* source, DtReaderWriter* destination, const DtMergePath& path,
49  const std::map<std::string, std::string>&);
50  virtual bool minimumFunction(const DtReaderWriter* source, DtReaderWriter* destination, const DtMergePath& path,
51  const std::map<std::string, std::string>&);
52  virtual bool maximumFunction(const DtReaderWriter* source, DtReaderWriter* destination, const DtMergePath& path,
53  const std::map<std::string, std::string>&);
54  virtual bool averageFunction(const DtReaderWriter* source, DtReaderWriter* destination, const DtMergePath& path,
55  const std::map<std::string, std::string>&);
56  virtual bool moppLevelFunction(const DtReaderWriter* source, DtReaderWriter* destination, const DtMergePath& path,
57  const std::map<std::string, std::string>&);
58  virtual bool stringFunction(const DtReaderWriter* source, DtReaderWriter* destination, const DtMergePath& path);
59 
61 
63  virtual void rollUp(const std::vector<DtRwProperties*>&, DtRwProperties& result, const std::set<DtString>& ignore = std::set<DtString>()) const;
64 
66  virtual void setRollUpRules(const DtAssembliesReaderWriter::RwRootNode&);
67 
69  virtual bool loadRollUpRules(const DtFilename&);
70 
71  virtual void updateAverages(DtRwProperties&, int totalContributors) const;
72 
75  virtual void restore();
76 
77 protected:
78 
80  virtual bool rollUpValues(const DtReaderWriter* source, DtReaderWriter* destination, const DtMergePath& path);
81 
82  virtual double averageContributionFrom(const DtReaderWriter* item, const DtMergePath& path,
83  const std::map<std::string, std::string>& atr) const;
84 
85 protected:
89 
90  struct AverageItem
91  {
92  AverageItem() : total(0) {};
93  AverageItem(double t, const DtString& w) : total(t), weight(w) {};
94  AverageItem(const AverageItem& orig) : total(orig.total), weight(orig.weight) {};
95 
96  double total;
98  };
99 
100  typedef std::map<std::string, AverageItem> AverageItems;
101 
103  mutable std::set<DtString> myAverageTotals;
104 
106 };
DtAssembliesReaderWriter myAssemblyReaderWriter
Definition: trueAggregateRollUpHelper.h:105
const RollUpRules & rollUpRules() const
Definition: trueAggregateRollUpHelper.h:38
Definition: trueAggregateRollUpHelper.h:90
boost::function< bool(const DtReaderWriter *source, DtReaderWriter *destination, const DtMergePath &path)> DtPropertyRollUpFunction
Definition: readerWriterFactory.h:170
RollUpRules & rollUpRules()
Definition: trueAggregateRollUpHelper.h:43
Definition: readerWriter.h:85
Definition: assembliesReaderWriter.h:31
This class contains helper functions and methods that can be used to roll up property data based on t...
Definition: trueAggregateRollUpHelper.h:24
DtPropertyRollUpFunction myOriginalDefaultRule
Definition: trueAggregateRollUpHelper.h:87
std::set< DtString > myAverageTotals
Definition: trueAggregateRollUpHelper.h:103
RollUpRules myRollUpRules
Definition: trueAggregateRollUpHelper.h:86
boost::function< bool(const DtReaderWriter *source, DtReaderWriter *destination, const DtMergePath &path, const std::map< std::string, std::string > &attributes)> DtRollUpFunction
Contains makVrf::DtAggregateRollUpManager class.
Definition: aggregateRollUpManager.h:25
DtString weight
Definition: trueAggregateRollUpHelper.h:97
std::vector< DtMergePathStruct > DtMergePath
Definition: readerWriterFactory.h:167
const char * source
Definition: lz4.h:436
AverageItem()
Definition: trueAggregateRollUpHelper.h:92
std::map< DtString, DtPropertyRollUpFunction > RollUpRules
Definition: readerWriterFactory.h:176
AverageItems myAverageItems
Definition: trueAggregateRollUpHelper.h:102
std::map< std::string, DtRollUpFunction > RollUpRules
Definition: trueAggregateRollUpHelper.h:27
AverageItem(double t, const DtString &w)
Definition: trueAggregateRollUpHelper.h:93
std::map< std::string, AverageItem > AverageItems
Definition: trueAggregateRollUpHelper.h:100
#define DT_DLL_vrfutil
This file is used to determine how to build Disable inconsistent dll linkage warning Visual Studio 6...
Definition: vrfutilDefines.h:34
A list of properties.
Definition: rwProperties.h:126
This class will read ammunition, entity, weapons and assemblies and provide information about them...
Definition: assembliesReaderWriter.h:24
DtReaderWriterPropertyFactory::RollUpRules myOriginalRollUpRules
Definition: trueAggregateRollUpHelper.h:88

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)