Go to the documentation of this file.00001
00002
00003
00004
00005 #include <assert.h>
00006
00007 #include <sstream>
00008 #include <limits>
00009
00010 #include <rmol/service/Logger.hpp>
00011 #include <rmol/bom/StatAggregatorStruct.hpp>
00012 #include <rmol/bom/StudyStatManager.hpp>
00013
00014 namespace RMOL {
00015
00016
00017 StudyStatManager::StudyStatManager () {
00018 }
00019
00020
00021 StudyStatManager::~StudyStatManager () {
00022 }
00023
00024
00025 const std::string StudyStatManager::describe() const {
00026 std::ostringstream ostr;
00027
00028 for (StatAggregatorStructList_T::const_iterator itStatAggregatorStruct =
00029 _statAggregatorStructList.begin();
00030 itStatAggregatorStruct != _statAggregatorStructList.end();
00031 ++itStatAggregatorStruct) {
00032 const StatAggregatorStruct_T& lStatAggregatorStruct =
00033 itStatAggregatorStruct->second;
00034
00035 ostr << lStatAggregatorStruct.describeCurrentSimu() << std::endl;
00036 }
00037
00038 return ostr.str();
00039 }
00040
00041
00042 void StudyStatManager::display() const {
00043
00044
00045 std::ostringstream ostr;
00046
00047 std::ios::fmtflags oldFlags = ostr.flags();
00048
00049 for (StatAggregatorStructList_T::const_iterator itStatAggregatorStruct =
00050 _statAggregatorStructList.begin();
00051 itStatAggregatorStruct != _statAggregatorStructList.end();
00052 ++itStatAggregatorStruct) {
00053 const StatAggregatorStruct_T& lStatAggregatorStruct =
00054 itStatAggregatorStruct->second;
00055
00056 ostr << lStatAggregatorStruct.describeCurrentSimu() << std::endl;
00057 }
00058
00059
00060 ostr.flags (oldFlags);
00061
00062 RMOL_LOG_DEBUG (ostr.str());
00063 }
00064
00065
00066 StatAggregatorStruct_T& StudyStatManager::
00067 getStatAggregator(const std::string& iStatAggregatorName) {
00068 StatAggregatorStructList_T::iterator itAggregatorStruct =
00069 _statAggregatorStructList.find (iStatAggregatorName);
00070
00071
00072 if (itAggregatorStruct == _statAggregatorStructList.end()) {
00073 StatAggregatorStruct_T lStatAggregatorStruct (*this, iStatAggregatorName);
00074 _statAggregatorStructList.
00075 insert (StatAggregatorStructList_T::
00076 value_type (lStatAggregatorStruct.describeKey(),
00077 lStatAggregatorStruct));
00078 itAggregatorStruct =
00079 _statAggregatorStructList.find (iStatAggregatorName);
00080 }
00081
00082 return itAggregatorStruct->second;
00083 }
00084
00085
00086 void StudyStatManager::addMeasure (const std::string iStatAggregatorName,
00087 const double iMeasureValue) {
00088
00089 StatAggregatorStruct_T& lStatAggregator =
00090 getStatAggregator(iStatAggregatorName);
00091
00092
00093 lStatAggregator.addMeasure(iMeasureValue);
00094 }
00095
00096
00097
00098 const std::string StudyStatManager::describeShortKey() const {
00099 std::ostringstream oStr;
00100 return oStr.str();
00101 }
00102
00103
00104 const std::string StudyStatManager::describeKey() const {
00105 return describeShortKey();
00106 }
00107
00108
00109 std::string StudyStatManager::toString() const {
00110 std::ostringstream oStr;
00111 return oStr.str();
00112 }
00113
00114
00115 void StudyStatManager::toStream (std::ostream& ioOut) const {
00116 ioOut << toString();
00117 }
00118
00119
00120 void StudyStatManager::fromStream (std::istream& ioIn) {
00121 }
00122
00123
00124 }