$treeview $search $mathjax
TraDemGen Logo  1.00.0
$projectbrief
$projectbrief
$searchbox

DemandManager.hpp

Go to the documentation of this file.
00001 #ifndef __TRADEMGEN_CMD_DEMANDMANAGER_HPP
00002 #define __TRADEMGEN_CMD_DEMANDMANAGER_HPP
00003 
00004 // //////////////////////////////////////////////////////////////////////
00005 // Import section
00006 // //////////////////////////////////////////////////////////////////////
00007 // StdAir
00008 #include <stdair/stdair_basic_types.hpp>
00009 #include <stdair/basic/RandomGeneration.hpp>
00010 #include <stdair/basic/DemandGenerationMethod.hpp>
00011 #include <stdair/bom/BookingRequestTypes.hpp>
00012 #include <stdair/command/CmdAbstract.hpp>
00013 // SEvMgr
00014 #include <sevmgr/SEVMGR_Types.hpp>
00015 // TraDemGen
00016 #include <trademgen/TRADEMGEN_Types.hpp>
00017 #include <trademgen/basic/DemandCharacteristicsTypes.hpp>
00018 #include <trademgen/bom/DemandStreamKey.hpp>
00019 
00020 // Forward declarations
00021 namespace stdair {
00022   class EventStruct;
00023   struct ProgressStatusSet;
00024   struct TravelSolutionStruct;
00025 }
00026 
00027 namespace TRADEMGEN {
00028 
00029   // Forward declarations
00030   struct DemandDistribution;
00031   struct DemandStruct;
00032   class DemandStream;
00033   namespace DemandParserHelper {
00034     struct doEndDemand;
00035   }
00036 
00040   class DemandManager : public stdair::CmdAbstract {
00041     friend struct DemandParserHelper::doEndDemand;
00042     friend class TRADEMGEN_Service;
00043     
00044   private:
00045     // //////// Business methodes //////////
00125     static void buildSampleBomStd (SEVMGR::SEVMGR_ServicePtr_T,
00126                                    stdair::RandomGeneration&,
00127                                    const POSProbabilityMass_T&);
00128 
00129     // Demand sample bom for partnerships study.
00130     static void buildSampleBom (SEVMGR::SEVMGR_ServicePtr_T,
00131                                 stdair::RandomGeneration&,
00132                                 const POSProbabilityMass_T&);
00133 
00143     static void createDemandCharacteristics (SEVMGR::SEVMGR_ServicePtr_T,
00144                                              stdair::RandomGeneration&,
00145                                              const POSProbabilityMass_T&,
00146                                              const DemandStruct&);
00147 
00155     static stdair::RandomSeed_T generateSeed (stdair::RandomGeneration&);
00156 
00177     static DemandStream&
00178     createDemandStream (SEVMGR::SEVMGR_ServicePtr_T,
00179                         const DemandStreamKey&,
00180                         const ArrivalPatternCumulativeDistribution_T&,
00181                         const POSProbabilityMassFunction_T&,
00182                         const ChannelProbabilityMassFunction_T&,
00183                         const TripTypeProbabilityMassFunction_T&,
00184                         const StayDurationProbabilityMassFunction_T&,
00185                         const FrequentFlyerProbabilityMassFunction_T&,
00186                         const stdair::ChangeFeesRatio_T&,
00187                         const stdair::Disutility_T&,
00188                         const stdair::NonRefundableRatio_T&,
00189                         const stdair::Disutility_T&,
00190                         const PreferredDepartureTimeContinuousDistribution_T&,
00191                         const stdair::WTP_T&,
00192                         const ValueOfTimeContinuousDistribution_T&,
00193                         const DemandDistribution&, stdair::BaseGenerator_T&,
00194                         const stdair::RandomSeed_T&,
00195                         const stdair::RandomSeed_T&,
00196                         const POSProbabilityMass_T&);
00197 
00215     static const bool
00216     stillHavingRequestsToBeGenerated (SEVMGR::SEVMGR_ServicePtr_T,
00217                                       const stdair::DemandStreamKeyStr_T&,
00218                                       stdair::ProgressStatusSet&,
00219                                       const stdair::DemandGenerationMethod&);
00220 
00236     static stdair::Count_T generateFirstRequests (SEVMGR::SEVMGR_ServicePtr_T,
00237                                                   stdair::RandomGeneration&,
00238                                                   const stdair::DemandGenerationMethod&);
00239 
00268     static stdair::BookingRequestPtr_T
00269     generateNextRequest (SEVMGR::SEVMGR_ServicePtr_T, stdair::RandomGeneration&,
00270                          const stdair::DemandStreamKeyStr_T&,
00271                          const stdair::DemandGenerationMethod&);
00272 
00282     static void reset (SEVMGR::SEVMGR_ServicePtr_T, stdair::BaseGenerator_T&);
00283 
00287     static bool generateCancellation (stdair::RandomGeneration&,
00288                                       const stdair::TravelSolutionStruct&,
00289                                       const stdair::PartySize_T&,
00290                                       const stdair::DateTime_T&,
00291                                       const stdair::Date_T&,
00292                                       stdair::EventStruct& ioEventStruct);
00293   };
00294 
00295 }
00296 #endif // __TRADEMGEN_CMD_DEMANDMANAGER_HPP