RMOL Logo  0.25.2
C++ library of Revenue Management and Optimisation classes and functions
Detruncator.hpp
Go to the documentation of this file.
00001 #ifndef __RMOL_COMMAND_DETRUNCATOR_HPP
00002 #define __RMOL_COMMAND_DETRUNCATOR_HPP
00003 
00004 // //////////////////////////////////////////////////////////////////////
00005 // Import section
00006 // //////////////////////////////////////////////////////////////////////
00007 // StdAir
00008 #include <stdair/stdair_inventory_types.hpp>
00009 // RMOL
00010 #include <rmol/RMOL_Types.hpp>
00011 
00012 // Forward declarations.
00013 namespace stdair {
00014   class GuillotineBlock;
00015   class SegmentCabin;
00016 }
00017 
00018 namespace RMOL {
00019   // Forward declarations.
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