Go to the documentation of this file.00001 #ifndef __TRADEMGEN_CMD_DEMANDMANAGER_HPP
00002 #define __TRADEMGEN_CMD_DEMANDMANAGER_HPP
00003
00004
00005
00006
00007
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
00014 #include <trademgen/TRADEMGEN_Types.hpp>
00015 #include <trademgen/basic/DemandCharacteristicsTypes.hpp>
00016 #include <trademgen/bom/DemandStreamKey.hpp>
00017
00018
00019 namespace stdair {
00020 class EventQueue;
00021 struct ProgressStatusSet;
00022 struct TravelSolutionStruct;
00023 }
00024
00025 namespace TRADEMGEN {
00026
00027
00028 struct DemandDistribution;
00029 struct DemandStruct;
00030 class DemandStream;
00031 namespace DemandParserHelper {
00032 struct doEndDemand;
00033 }
00034
00038 class DemandManager : public stdair::CmdAbstract {
00039 friend struct DemandParserHelper::doEndDemand;
00040 friend class TRADEMGEN_Service;
00041
00042 private:
00043
00123 static void buildSampleBomStd (stdair::EventQueue&, stdair::RandomGeneration&,
00124 const POSProbabilityMass_T&);
00125
00126
00127 static void buildSampleBom (stdair::EventQueue&, stdair::RandomGeneration&,
00128 const POSProbabilityMass_T&);
00129
00137 static void createDemandCharacteristics (stdair::EventQueue&,
00138 stdair::RandomGeneration&,
00139 const POSProbabilityMass_T&,
00140 const DemandStruct&);
00141
00149 static stdair::RandomSeed_T generateSeed (stdair::RandomGeneration&);
00150
00172 static DemandStream&
00173 createDemandStream (stdair::EventQueue&,
00174 const DemandStreamKey&,
00175 const ArrivalPatternCumulativeDistribution_T&,
00176 const POSProbabilityMassFunction_T&,
00177 const ChannelProbabilityMassFunction_T&,
00178 const TripTypeProbabilityMassFunction_T&,
00179 const StayDurationProbabilityMassFunction_T&,
00180 const FrequentFlyerProbabilityMassFunction_T&,
00181 const PreferredDepartureTimeContinuousDistribution_T&,
00182 const stdair::WTP_T&,
00183 const ValueOfTimeContinuousDistribution_T&,
00184 const DemandDistribution&, stdair::BaseGenerator_T&,
00185 const stdair::RandomSeed_T&,
00186 const stdair::RandomSeed_T&,
00187 const POSProbabilityMass_T&);
00188
00205 static const bool
00206 stillHavingRequestsToBeGenerated (const stdair::EventQueue&,
00207 const stdair::DemandStreamKeyStr_T&,
00208 stdair::ProgressStatusSet&,
00209 const stdair::DemandGenerationMethod&);
00210
00225 static stdair::Count_T generateFirstRequests (stdair::EventQueue&,
00226 stdair::RandomGeneration&,
00227 const stdair::DemandGenerationMethod&);
00228
00249 static stdair::BookingRequestPtr_T
00250 generateNextRequest (stdair::EventQueue&, stdair::RandomGeneration&,
00251 const stdair::DemandStreamKeyStr_T&,
00252 const stdair::DemandGenerationMethod&);
00253
00262 static void reset (stdair::EventQueue&, stdair::BaseGenerator_T&);
00263
00267 static bool generateCancellation (stdair::EventQueue&,
00268 stdair::RandomGeneration&,
00269 const stdair::TravelSolutionStruct&,
00270 const stdair::PartySize_T&,
00271 const stdair::DateTime_T&,
00272 const stdair::Date_T&);
00273 };
00274
00275 }
00276 #endif // __TRADEMGEN_CMD_DEMANDMANAGER_HPP