$treeview $search $mathjax
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