00001 // ////////////////////////////////////////////////////////////////////// 00002 // Import section 00003 // ////////////////////////////////////////////////////////////////////// 00004 // C 00005 #include <assert.h> 00006 // STL 00007 #include <sstream> 00008 #include <limits> 00009 // RMOL Common 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 // DEBUG 00045 std::ostringstream ostr; 00046 // Store current formatting flags of the stream 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 // Reset formatting flags of stream 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 // If the StatAggregatorStruct does not exist, it is created 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 // retrieve the corresponding statAggregator or create it 00089 StatAggregatorStruct_T& lStatAggregator = 00090 getStatAggregator(iStatAggregatorName); 00091 00092 // add new measure 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 }
Generated on Sat Oct 16 19:00:47 2010 for RMOL by Doxygen 1.6.2-20100208