Go to the documentation of this file.00001 #ifndef __RMOL_COMMAND_FORECASTER_HPP
00002 #define __RMOL_COMMAND_FORECASTER_HPP
00003
00004
00005
00006
00007
00008 #include <map>
00009
00010 #include <stdair/stdair_inventory_types.hpp>
00011
00012 #include <rmol/RMOL_Types.hpp>
00013
00014
00015 namespace stdair {
00016 class FlightDate;
00017 class SegmentCabin;
00018 class GuillotineBlock;
00019 }
00020
00021 namespace RMOL {
00023 class Forecaster {
00024 public:
00028 static bool forecastUsingAdditivePickUp (stdair::FlightDate&,
00029 const stdair::DateTime_T&);
00030
00034 static bool forecastUsingMultiplicativePickUp (stdair::FlightDate&,
00035 const stdair::DateTime_T&);
00036
00037
00038 private:
00042 static bool forecastUsingAdditivePickUp (stdair::SegmentCabin&,
00043 const stdair::DCPList_T&,
00044 const stdair::Date_T&);
00045
00050 static void forecastUsingAdditivePickUp (stdair::SegmentCabin&,
00051 const BookingClassUnconstrainedDemandVectorMap_T&, const UnconstrainedDemandVector_T&, const double&);
00052
00056 static bool forecastUsingMultiplicativePickUp (stdair::SegmentCabin&,
00057 const stdair::Date_T&,
00058 const stdair::DTD_T&);
00062 static void forecastUsingMultiplicativePickUp(const stdair::SegmentCabin&,
00063 BookingClassUnconstrainedDemandVectorMap_T&,
00064 UnconstrainedDemandVector_T&,
00065 const stdair::DCP_T&,
00066 const stdair::DCP_T&,
00067 const stdair::Date_T&,
00068 const stdair::NbOfSegments_T&,
00069 const stdair::NbOfSegments_T&);
00070
00074 static void forecastUsingMultiplicativePickUp(const stdair::GuillotineBlock&,
00075 UnconstrainedDemandVector_T&,
00076 const stdair::DCP_T&,
00077 const stdair::DCP_T&,
00078 const stdair::NbOfSegments_T&,
00079 const stdair::BlockIndex_T&,
00080 const stdair::NbOfSegments_T&,
00081 const stdair::NbOfSegments_T&);
00082
00086 static void forecastUsingMultiplicativePickUp(const stdair::GuillotineBlock&,
00087 UnconstrainedDemandVector_T&,
00088 const stdair::DCP_T&,
00089 const stdair::DCP_T&,
00090 const stdair::NbOfSegments_T&,
00091 const stdair::BlockIndex_T&,
00092 const stdair::NbOfSegments_T&,
00093 const stdair::NbOfSegments_T&,
00094 const stdair::SegmentCabin&,
00095 const stdair::Date_T&);
00096
00101 static bool forecastUsingMultiplicativePickUp(stdair::SegmentCabin&,
00102 const BookingClassUnconstrainedDemandMap_T&,
00103 const stdair::NbOfRequests_T&,
00104 const double&);
00105
00109 static void setRemainingDemandForecastToZero (const stdair::SegmentCabin&);
00110 };
00111 }
00112 #endif // __RMOL_COMMAND_FORECASTER_HPP