00001 #ifndef __RMOL_COMMAND_DETRUNCATOR_HPP
00002 #define __RMOL_COMMAND_DETRUNCATOR_HPP
00003
00004
00005
00006
00007
00008 #include <stdair/stdair_inventory_types.hpp>
00009
00010 #include <rmol/RMOL_Types.hpp>
00011
00012
00013 namespace stdair {
00014 class GuillotineBlock;
00015 class SegmentCabin;
00016 }
00017
00018 namespace RMOL {
00019
00020 struct HistoricalBookingHolder;
00021
00024 class Detruncator {
00025 public:
00029 static void unconstrainUsingAdditivePickUp (const stdair::SegmentCabin&,
00030 BookingClassUnconstrainedDemandVectorMap_T&,
00031 UnconstrainedDemandVector_T&,
00032 const stdair::DCP_T&, const stdair::DCP_T&,
00033 const stdair::Date_T&);
00034
00038 static void unconstrainUsingMultiplicativePickUp
00039 (const stdair::SegmentCabin&, BookingClassUnconstrainedDemandVectorMap_T&,
00040 UnconstrainedDemandVector_T&, const stdair::DCP_T&, const stdair::DCP_T&,
00041 const stdair::Date_T&, const stdair::NbOfSegments_T&);
00042
00046 static void retrieveUnconstrainedDemandForFirstDCP
00047 (const stdair::SegmentCabin&,
00048 BookingClassUnconstrainedDemandVectorMap_T&,
00049 UnconstrainedDemandVector_T&, const stdair::DCP_T&,
00050 const stdair::NbOfSegments_T&, const stdair::NbOfSegments_T&);
00051
00055 static void unconstrainUsingMultiplicativePickUp (HistoricalBookingHolder&);
00056
00057 private:
00061 static void unconstrainUsingAdditivePickUp (const stdair::GuillotineBlock&,
00062 UnconstrainedDemandVector_T&,
00063 const stdair::DCP_T&,
00064 const stdair::DCP_T&,
00065 const stdair::NbOfSegments_T&,
00066 const stdair::BlockIndex_T&);
00070 static void unconstrainUsingAdditivePickUp (const stdair::GuillotineBlock&,
00071 UnconstrainedDemandVector_T&,
00072 const stdair::DCP_T&,
00073 const stdair::DCP_T&,
00074 const stdair::NbOfSegments_T&,
00075 const stdair::BlockIndex_T&,
00076 const stdair::SegmentCabin&,
00077 const stdair::Date_T&);
00078
00082 static void unconstrainUsingMultiplicativePickUp
00083 (const stdair::GuillotineBlock&, UnconstrainedDemandVector_T&,
00084 const stdair::DCP_T&, const stdair::DCP_T&,
00085 const stdair::NbOfSegments_T&, const stdair::BlockIndex_T&,
00086 const stdair::NbOfSegments_T&);
00087
00091 static void unconstrainUsingMultiplicativePickUp
00092 (const stdair::GuillotineBlock&, UnconstrainedDemandVector_T&,
00093 const stdair::DCP_T&, const stdair::DCP_T&,
00094 const stdair::NbOfSegments_T&, const stdair::BlockIndex_T&,
00095 const stdair::NbOfSegments_T&,
00096 const stdair::SegmentCabin&, const stdair::Date_T&);
00097
00101 static void retrieveUnconstrainedDemandForFirstDCP
00102 (const stdair::GuillotineBlock&, UnconstrainedDemandVector_T&,
00103 const stdair::DCP_T&, const stdair::BlockIndex_T&,
00104 const stdair::NbOfSegments_T&, const stdair::NbOfSegments_T&);
00105 };
00106 }
00107 #endif // __RMOL_COMMAND_DETRUNCATOR_HPP
00108
00109