1 #ifndef __TRADEMGEN_BOM_DEMANDSTREAM_HPP
2 #define __TRADEMGEN_BOM_DEMANDSTREAM_HPP
8 #include <stdair/bom/BomAbstract.hpp>
9 #include <stdair/bom/BookingRequestTypes.hpp>
10 #include <stdair/basic/RandomGeneration.hpp>
11 #include <stdair/basic/DemandGenerationMethod.hpp>
22 template <
typename BOM>
class FacBom;
148 const stdair::ChangeFeesRatio_T& iChangeFeeProb,
149 const stdair::Disutility_T& iChangeFeeDisutility,
150 const stdair::NonRefundableRatio_T& iNonRefundableProb,
151 const stdair::Disutility_T& iNonRefundableDisutility,
153 const stdair::WTP_T& iMinWTP,
157 iChannelProbMass, iTripTypeProbMass,
158 iStayDurationProbMass, iFrequentFlyerProbMass,
159 iChangeFeeProb, iChangeFeeDisutility,
160 iNonRefundableProb, iNonRefundableDisutility,
161 iPreferredDepartureTimeContinuousDistribution,
162 iMinWTP, iValueOfTimeContinuousDistribution);
197 const stdair::ChangeFeesRatio_T&,
198 const stdair::Disutility_T&,
199 const stdair::NonRefundableRatio_T&,
200 const stdair::Disutility_T&,
202 const stdair::WTP_T&,
205 stdair::BaseGenerator_T& ioSharedGenerator,
206 const stdair::RandomSeed_T& iRequestDateTimeSeed,
207 const stdair::RandomSeed_T& iDemandCharacteristicsSeed,
215 _firstDateTimeRequest = iFirstDateTimeRequest;
260 const stdair::WTP_T
generateWTP (stdair::RandomGeneration&,
261 const stdair::Date_T&,
262 const stdair::DateTime_T&,
263 const stdair::DayDuration_T&);
278 stdair::BookingRequestPtr_T
280 const stdair::DemandGenerationMethod&);
283 void reset (stdair::BaseGenerator_T& ioSharedGenerator);
338 void init (stdair::BaseGenerator_T& ioSharedGenerator);
395 bool _stillHavingRequestsToBeGenerated;
396 bool _firstDateTimeRequest;
397 stdair::FloatDuration_T _dateTimeLastRequest;
401 #endif // __TRADEMGEN_BOM_DEMANDSTREAM_HPP
const std::string describeKey() const
ChannelProbabilityMass_T::ProbabilityMassFunction_T ChannelProbabilityMassFunction_T
void incrementGeneratedRequestsCounter()
RandomGenerationContext _randomGenerationContext
void setDemandCharacteristicsRandomGeneratorSeed(const stdair::RandomSeed_T &iSeed)
const stdair::NonRefundable_T generateNonRefundable()
PreferredDepartureTimeCumulativeDistribution_T::ContinuousDistribution_T PreferredDepartureTimeContinuousDistribution_T
const stdair::PriceValue_T generateValueOfTime()
stdair::RandomGeneration _demandCharacteristicsRandomGenerator
const stdair::Duration_T convertFloatIntoDuration(const stdair::FloatDuration_T)
const stdair::ChangeFees_T generateChangeFees()
const stdair::Disutility_T & getNonRefundableDisutility() const
const stdair::Date_T & getPreferredDepartureDate() const
const stdair::AirportCode_T generatePOS()
const stdair::AirportCode_T & getDestination() const
POSProbabilityMass_T _posProMass
const stdair::AirportCode_T & getOrigin() const
DemandCharacteristics _demandCharacteristics
const stdair::CabinCode_T & getPreferredCabin() const
void reset(stdair::BaseGenerator_T &ioSharedGenerator)
const stdair::CabinCode_T & getPreferredCabin() const
const stdair::DateTime_T generateTimeOfRequestStatisticsOrder()
const stdair::HolderMap_T & getHolderMap() const
const stdair::Disutility_T & getChangeFeeDisutility() const
std::string display() const
Class modeling the distribution of a demand type.
const stdair::FrequentFlyer_T generateFrequentFlyer()
const DemandDistribution & getDemandDistribution() const
stdair::Disutility_T _changeFeeDisutility
const stdair::ChannelLabel_T generateChannel()
FrequentFlyerProbabilityMass_T::ProbabilityMassFunction_T FrequentFlyerProbabilityMassFunction_T
ContinuousFloatDuration_T::ContinuousDistribution_T ArrivalPatternCumulativeDistribution_T
void setAll(const ArrivalPatternCumulativeDistribution_T &, const POSProbabilityMassFunction_T &, const ChannelProbabilityMassFunction_T &, const TripTypeProbabilityMassFunction_T &, const StayDurationProbabilityMassFunction_T &, const FrequentFlyerProbabilityMassFunction_T &, const stdair::ChangeFeesRatio_T &, const stdair::Disutility_T &, const stdair::NonRefundableRatio_T &, const stdair::Disutility_T &, const PreferredDepartureTimeContinuousDistribution_T &, const stdair::WTP_T &, const ValueOfTimeContinuousDistribution_T &, const DemandDistribution &, stdair::BaseGenerator_T &ioSharedGenerator, const stdair::RandomSeed_T &iRequestDateTimeSeed, const stdair::RandomSeed_T &iDemandCharacteristicsSeed, const POSProbabilityMass_T &)
void setDemandDistribution(const DemandDistribution &iDemandDistribution)
const stdair::StdDevValue_T & getStdDevNumberOfRequests() const
const stdair::AirportCode_T & getOrigin() const
TripTypeProbabilityMass_T::ProbabilityMassFunction_T TripTypeProbabilityMassFunction_T
const bool stillHavingRequestsToBeGenerated(const stdair::DemandGenerationMethod &iDemandGenerationMethod) const
void setDemandCharacteristics(const ArrivalPatternCumulativeDistribution_T &iArrivalPattern, const POSProbabilityMassFunction_T &iPOSProbMass, const ChannelProbabilityMassFunction_T &iChannelProbMass, const TripTypeProbabilityMassFunction_T &iTripTypeProbMass, const StayDurationProbabilityMassFunction_T &iStayDurationProbMass, const FrequentFlyerProbabilityMassFunction_T &iFrequentFlyerProbMass, const stdair::ChangeFeesRatio_T &iChangeFeeProb, const stdair::Disutility_T &iChangeFeeDisutility, const stdair::NonRefundableRatio_T &iNonRefundableProb, const stdair::Disutility_T &iNonRefundableDisutility, const PreferredDepartureTimeContinuousDistribution_T &iPreferredDepartureTimeContinuousDistribution, const stdair::WTP_T &iMinWTP, const ValueOfTimeContinuousDistribution_T &iValueOfTimeContinuousDistribution)
friend class stdair::FacBomManager
void setRequestDateTimeRandomGeneratorSeed(const stdair::RandomSeed_T &iSeed)
void setBoolFirstDateTimeRequest(const bool &iFirstDateTimeRequest)
ValueOfTimeCumulativeDistribution_T::ContinuousDistribution_T ValueOfTimeContinuousDistribution_T
void setNumberOfRequestsGeneratedSoFar(const stdair::Count_T &iCount)
const stdair::AirportCode_T & getDestination() const
Class modeling a demand stream.
stdair::HolderMap_T _holderMap
const stdair::Count_T & getNumberOfRequestsGeneratedSoFar() const
const Key_T & getKey() const
const stdair::Count_T & getNumberOfRequestsGeneratedSoFar() const
Class modeling the characteristics of a demand type.
void setNumberOfRequestsGeneratedSoFar(const stdair::Count_T &iCount)
void incrementGeneratedRequestsCounter()
const stdair::TripType_T generateTripType()
const stdair::NbOfRequests_T & getMeanNumberOfRequests() const
stdair::BookingRequestPtr_T generateNextRequest(stdair::RandomGeneration &, const stdair::DemandGenerationMethod &)
void setTotalNumberOfRequestsToBeGenerated(const stdair::NbOfRequests_T &iNbOfRequests)
const stdair::WTP_T generateWTP(stdair::RandomGeneration &, const stdair::Date_T &, const stdair::DateTime_T &, const stdair::DayDuration_T &)
void setPOSProbabilityMass(const POSProbabilityMass_T &iProbMass)
const stdair::DayDuration_T generateStayDuration()
stdair::StdDevValue_T _stdDevNumberOfRequests
BomAbstract *const getParent() const
const POSProbabilityMass_T & getPOSProbabilityMass() const
stdair::Disutility_T _nonRefundableDisutility
void fromStream(std::istream &ioIn)
void toStream(std::ostream &ioOut) const
std::string toString() const
stdair::NbOfRequests_T _totalNumberOfRequestsToBeGenerated
const stdair::Date_T & getPreferredDepartureDate() const
const stdair::Duration_T generatePreferredDepartureTime()
stdair::NbOfRequests_T _meanNumberOfRequests
const stdair::NbOfRequests_T & getTotalNumberOfRequestsToBeGenerated() const
POSProbabilityMass_T::ProbabilityMassFunction_T POSProbabilityMassFunction_T
StayDurationProbabilityMass_T::ProbabilityMassFunction_T StayDurationProbabilityMassFunction_T
const DemandCharacteristics & getDemandCharacteristics() const
const stdair::DateTime_T generateTimeOfRequestPoissonProcess()
stdair::RandomGeneration _requestDateTimeRandomGenerator
const std::string toString() const
DemandDistribution _demandDistribution