00001 #ifndef __RMOL_BOM_HISTORICALBOOKINGHOLDER_HPP 00002 #define __RMOL_BOM_HISTORICALBOOKINGHOLDER_HPP 00003 00004 // ////////////////////////////////////////////////////////////////////// 00005 // Import section 00006 // ////////////////////////////////////////////////////////////////////// 00007 // STL 00008 #include <iostream> 00009 #include <vector> 00010 // StdAir 00011 #include <stdair/stdair_basic_types.hpp> 00012 #include <stdair/basic/StructAbstract.hpp> 00013 00014 namespace RMOL { 00016 struct HistoricalBooking; 00017 00019 typedef std::vector<HistoricalBooking> HistoricalBookingVector_T; 00020 00023 struct HistoricalBookingHolder : public stdair::StructAbstract { 00024 00025 public: 00026 // ////// Getters ////// 00028 const short getNbOfFlights () const; 00029 00031 const short getNbOfUncensoredData () const; 00032 00034 const stdair::NbOfBookings_T getNbOfUncensoredBookings () const; 00035 00037 const double getUncensoredStandardDeviation 00038 (const double& iMeanOfUncensoredBookings, 00039 const short iNbOfUncensoredData) const; 00040 00042 const double getDemandMean () const; 00043 00045 const double getStandardDeviation (const double) const; 00046 00048 const std::vector<bool> getListOfToBeUnconstrainedFlags() const; 00049 00051 const stdair::NbOfBookings_T& getHistoricalBooking (const short i) const; 00052 00054 const stdair::NbOfBookings_T& getUnconstrainedDemand (const short i) const; 00055 00057 const stdair::Flag_T& getCensorshipFlag (const short i) const; 00058 00060 const stdair::NbOfBookings_T& getUnconstrainedDemandOnFirstElement() const { 00061 return getUnconstrainedDemand (0); 00062 } 00063 00065 const stdair::NbOfBookings_T calculateExpectedDemand (const double, 00066 const double, 00067 const short, 00068 const stdair::NbOfBookings_T) const; 00069 00071 void setUnconstrainedDemand (const stdair::NbOfBookings_T& iExpectedDemand, 00072 const short i); 00073 00075 void addHistoricalBooking (const HistoricalBooking& iHistoricalBooking); 00076 00080 void toStream (std::ostream& ioOut) const; 00081 00082 // ///////// Display Methods ////////// 00084 const std::string describe() const; 00085 00087 void display () const; 00088 00090 virtual ~HistoricalBookingHolder(); 00091 00092 public: 00095 HistoricalBookingHolder (); 00096 00097 private: 00099 HistoricalBookingVector_T _historicalBookingVector; 00100 00101 protected: 00102 }; 00103 } 00104 #endif // __RMOL_BOM_HISTORICALBOOKINGHOLDER_HPP 00105