StdAir Logo  1.00.12
C++ Standard Airline IT Object Library
FFDisutilityCurveHolderStruct.cpp
Go to the documentation of this file.
1// //////////////////////////////////////////////////////////////////////
2// Import section
3// //////////////////////////////////////////////////////////////////////
4// STL
5#include <cassert>
6#include <sstream>
7// StdAir
10
11namespace stdair {
12
13 // ////////////////////////////////////////////////////////////////////
15 }
16
17 // ////////////////////////////////////////////////////////////////////
20 : _disutilityCurveHolder (iHolder._disutilityCurveHolder) {
21 }
22
23 // ////////////////////////////////////////////////////////////////////
25 }
26
27 // ////////////////////////////////////////////////////////////////////
29 getFFDisutilityCurve (const std::string& iKey) const {
30 FFDisutilityCurveHolder_T::const_iterator itCurve = _disutilityCurveHolder.find (iKey);
31 if (itCurve == _disutilityCurveHolder.end()) {
32 STDAIR_LOG_DEBUG ("Cannot find the FFDisutility curve correponding to the "
33 << "given key: " << iKey);
34 assert (false);
35 }
36
37 return itCurve->second;
38 }
39
40 // ////////////////////////////////////////////////////////////////////
42 addCurve (const std::string& iKey, const FFDisutilityCurve_T& iCurve) {
43 bool insert = _disutilityCurveHolder.insert (FFDisutilityCurveHolder_T::value_type(iKey, iCurve)).second;
44 if (insert == false) {
45 STDAIR_LOG_DEBUG ("Cannot add the FFDisutility curve correponding to the "
46 << "given key: " << iKey
47 << ", the key may already exist.");
48 assert (false);
49 }
50 }
51
52 // ////////////////////////////////////////////////////////////////////
53 void FFDisutilityCurveHolderStruct::toStream (std::ostream& ioOut) const {
54 ioOut << describe();
55 }
56
57 // ////////////////////////////////////////////////////////////////////
59 }
60
61 // ////////////////////////////////////////////////////////////////////
62 const std::string FFDisutilityCurveHolderStruct::describe() const {
63 std::ostringstream oStr;
64 for (FFDisutilityCurveHolder_T::const_iterator itCurve = _disutilityCurveHolder.begin();
65 itCurve != _disutilityCurveHolder.end(); ++itCurve) {
66 const std::string& lKey = itCurve->first;
67 const FFDisutilityCurve_T& lCurve = itCurve->second;
68 oStr << lKey << "; ";
69 for (FFDisutilityCurve_T::const_reverse_iterator itFFDisutility =
70 lCurve.rbegin();itFFDisutility != lCurve.rend(); ++itFFDisutility){
71 const DTD_T& lDTD = itFFDisutility->first;
72 const double& lFFDisutility = itFFDisutility->second;
73 oStr << lDTD << ":" << lFFDisutility << ";";
74 }
75 oStr << std::endl;
76 }
77 return oStr.str();
78 }
79
80}
#define STDAIR_LOG_DEBUG(iToBeLogged)
Definition: Logger.hpp:32
Handle on the StdAir library context.
std::map< const DTD_T, double > FFDisutilityCurve_T
const FFDisutilityCurve_T & getFFDisutilityCurve(const std::string &) const
void addCurve(const std::string &, const FFDisutilityCurve_T &)