TraDemGen Logo  1.00.2
C++ Simulated Travel Demand Generation Library
TRADEMGEN::DemandStream Class Reference

Class modeling a demand stream. More...

#include <trademgen/bom/DemandStream.hpp>

+ Inheritance diagram for TRADEMGEN::DemandStream:

Public Types

typedef DemandStreamKey Key_T
 

Public Member Functions

const Key_TgetKey () const
 
BomAbstract *const getParent () const
 
const stdair::AirportCode_T & getOrigin () const
 
const stdair::AirportCode_T & getDestination () const
 
const stdair::Date_T & getPreferredDepartureDate () const
 
const stdair::CabinCode_T & getPreferredCabin () const
 
const stdair::HolderMap_T & getHolderMap () const
 
const DemandCharacteristicsgetDemandCharacteristics () const
 
const DemandDistributiongetDemandDistribution () const
 
const stdair::NbOfRequests_T & getTotalNumberOfRequestsToBeGenerated () const
 
const stdair::NbOfRequests_T & getMeanNumberOfRequests () const
 
const stdair::StdDevValue_T & getStdDevNumberOfRequests () const
 
const stdair::Count_T & getNumberOfRequestsGeneratedSoFar () const
 
const stdair::Disutility_T & getChangeFeeDisutility () const
 
const stdair::Disutility_T & getNonRefundableDisutility () const
 
const POSProbabilityMass_TgetPOSProbabilityMass () const
 
void setNumberOfRequestsGeneratedSoFar (const stdair::Count_T &iCount)
 
void setDemandDistribution (const DemandDistribution &iDemandDistribution)
 
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)
 
void setTotalNumberOfRequestsToBeGenerated (const stdair::NbOfRequests_T &iNbOfRequests)
 
void setRequestDateTimeRandomGeneratorSeed (const stdair::RandomSeed_T &iSeed)
 
void setDemandCharacteristicsRandomGeneratorSeed (const stdair::RandomSeed_T &iSeed)
 
void setPOSProbabilityMass (const POSProbabilityMass_T &iProbMass)
 
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 setBoolFirstDateTimeRequest (const bool &iFirstDateTimeRequest)
 
void incrementGeneratedRequestsCounter ()
 
const bool stillHavingRequestsToBeGenerated (const stdair::DemandGenerationMethod &iDemandGenerationMethod) const
 
const stdair::DateTime_T generateTimeOfRequestPoissonProcess ()
 
const stdair::DateTime_T generateTimeOfRequestStatisticsOrder ()
 
const stdair::AirportCode_T generatePOS ()
 
const stdair::ChannelLabel_T generateChannel ()
 
const stdair::TripType_T generateTripType ()
 
const stdair::DayDuration_T generateStayDuration ()
 
const stdair::FrequentFlyer_T generateFrequentFlyer ()
 
const stdair::ChangeFees_T generateChangeFees ()
 
const stdair::NonRefundable_T generateNonRefundable ()
 
const stdair::Duration_T generatePreferredDepartureTime ()
 
const stdair::WTP_T generateWTP (stdair::RandomGeneration &, const stdair::Date_T &, const stdair::DateTime_T &, const stdair::DayDuration_T &)
 
const stdair::PriceValue_T generateValueOfTime ()
 
stdair::BookingRequestPtr_T generateNextRequest (stdair::RandomGeneration &, const stdair::DemandGenerationMethod &)
 
void reset (stdair::BaseGenerator_T &ioSharedGenerator)
 
void toStream (std::ostream &ioOut) const
 
void fromStream (std::istream &ioIn)
 
std::string toString () const
 
const std::string describeKey () const
 
std::string display () const
 
const stdair::Duration_T convertFloatIntoDuration (const stdair::FloatDuration_T)
 

Protected Member Functions

 DemandStream (const Key_T &)
 
virtual ~DemandStream ()
 

Protected Attributes

Key_T _key
 
BomAbstract * _parent
 
stdair::HolderMap_T _holderMap
 
DemandCharacteristics _demandCharacteristics
 
DemandDistribution _demandDistribution
 
stdair::NbOfRequests_T _totalNumberOfRequestsToBeGenerated
 
RandomGenerationContext _randomGenerationContext
 
stdair::RandomGeneration _requestDateTimeRandomGenerator
 
stdair::RandomGeneration _demandCharacteristicsRandomGenerator
 
POSProbabilityMass_T _posProMass
 

Friends

template<typename BOM >
class stdair::FacBom
 
class stdair::FacBomManager
 

Detailed Description

Class modeling a demand stream.

Definition at line 30 of file DemandStream.hpp.

Member Typedef Documentation

Definition allowing to retrieve the associated BOM key type.

Definition at line 39 of file DemandStream.hpp.

Constructor & Destructor Documentation

TRADEMGEN::DemandStream::DemandStream ( const Key_T iKey)
protected

Main constructor.

Definition at line 64 of file DemandStream.cpp.

TRADEMGEN::DemandStream::~DemandStream ( )
protectedvirtual

Destructor.

Definition at line 69 of file DemandStream.cpp.

Member Function Documentation

const Key_T& TRADEMGEN::DemandStream::getKey ( ) const
inline

Get the key

Definition at line 45 of file DemandStream.hpp.

BomAbstract* const TRADEMGEN::DemandStream::getParent ( ) const
inline

Get the parent object (EventQueue).

Definition at line 50 of file DemandStream.hpp.

const stdair::AirportCode_T& TRADEMGEN::DemandStream::getOrigin ( ) const
inline

Get the origin (part of the primary key).

Definition at line 55 of file DemandStream.hpp.

const stdair::AirportCode_T& TRADEMGEN::DemandStream::getDestination ( ) const
inline

Get the destination (part of the primary key).

Definition at line 60 of file DemandStream.hpp.

const stdair::Date_T& TRADEMGEN::DemandStream::getPreferredDepartureDate ( ) const
inline

Get the preferred departure date (part of the primary key).

Definition at line 65 of file DemandStream.hpp.

const stdair::CabinCode_T& TRADEMGEN::DemandStream::getPreferredCabin ( ) const
inline

Get the preferred cabin (part of the primary key).

Definition at line 70 of file DemandStream.hpp.

const stdair::HolderMap_T& TRADEMGEN::DemandStream::getHolderMap ( ) const
inline

Get the map of children holders.

Definition at line 75 of file DemandStream.hpp.

const DemandCharacteristics& TRADEMGEN::DemandStream::getDemandCharacteristics ( ) const
inline

Get the demand characteristics.

Definition at line 80 of file DemandStream.hpp.

const DemandDistribution& TRADEMGEN::DemandStream::getDemandDistribution ( ) const
inline

Get the demand distribution.

Definition at line 85 of file DemandStream.hpp.

const stdair::NbOfRequests_T& TRADEMGEN::DemandStream::getTotalNumberOfRequestsToBeGenerated ( ) const
inline

Get the total number of requests to be generated.

Definition at line 90 of file DemandStream.hpp.

const stdair::NbOfRequests_T& TRADEMGEN::DemandStream::getMeanNumberOfRequests ( ) const
inline

Get the mean (expected) number of requests.

Definition at line 95 of file DemandStream.hpp.

const stdair::StdDevValue_T& TRADEMGEN::DemandStream::getStdDevNumberOfRequests ( ) const
inline

Get the standard deviation of number of requests.

Definition at line 100 of file DemandStream.hpp.

const stdair::Count_T& TRADEMGEN::DemandStream::getNumberOfRequestsGeneratedSoFar ( ) const
inline

Get the number of requests generated so far.

Definition at line 105 of file DemandStream.hpp.

const stdair::Disutility_T& TRADEMGEN::DemandStream::getChangeFeeDisutility ( ) const
inline

Get the change fee disutility.

Definition at line 110 of file DemandStream.hpp.

const stdair::Disutility_T& TRADEMGEN::DemandStream::getNonRefundableDisutility ( ) const
inline

Get the non refundable disutility.

Definition at line 115 of file DemandStream.hpp.

const POSProbabilityMass_T& TRADEMGEN::DemandStream::getPOSProbabilityMass ( ) const
inline

Get the default POS probablity mass, used when "row" (rest of the world) is drawn.

Definition at line 123 of file DemandStream.hpp.

void TRADEMGEN::DemandStream::setNumberOfRequestsGeneratedSoFar ( const stdair::Count_T &  iCount)
inline

Set the number of requests generated so far.

Definition at line 131 of file DemandStream.hpp.

void TRADEMGEN::DemandStream::setDemandDistribution ( const DemandDistribution iDemandDistribution)
inline

Set the demand distribution.

Definition at line 136 of file DemandStream.hpp.

Referenced by setAll().

void TRADEMGEN::DemandStream::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 
)
inline

Set the demand characteristics.

Definition at line 142 of file DemandStream.hpp.

Referenced by setAll().

void TRADEMGEN::DemandStream::setTotalNumberOfRequestsToBeGenerated ( const stdair::NbOfRequests_T &  iNbOfRequests)
inline

Set the total number of requests to be generated.

Definition at line 166 of file DemandStream.hpp.

Referenced by setAll().

void TRADEMGEN::DemandStream::setRequestDateTimeRandomGeneratorSeed ( const stdair::RandomSeed_T &  iSeed)
inline

Set the seed of the random generator for the request datetime.

Definition at line 171 of file DemandStream.hpp.

Referenced by setAll().

void TRADEMGEN::DemandStream::setDemandCharacteristicsRandomGeneratorSeed ( const stdair::RandomSeed_T &  iSeed)
inline

Set the seed of the random generator for the demand characteristics.

Definition at line 176 of file DemandStream.hpp.

Referenced by setAll().

void TRADEMGEN::DemandStream::setPOSProbabilityMass ( const POSProbabilityMass_T iProbMass)
inline

Set the default POS probablity mass, used when "row" (rest of the world) is drawn.

Definition at line 184 of file DemandStream.hpp.

Referenced by setAll().

void TRADEMGEN::DemandStream::setAll ( 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,
const DemandDistribution iDemandDistribution,
stdair::BaseGenerator_T &  ioSharedGenerator,
const stdair::RandomSeed_T &  iRequestDateTimeSeed,
const stdair::RandomSeed_T &  iDemandCharacteristicsSeed,
const POSProbabilityMass_T iDefaultPOSProbablityMass 
)
void TRADEMGEN::DemandStream::setBoolFirstDateTimeRequest ( const bool &  iFirstDateTimeRequest)
inline

Set the boolean describing if it is the first time we generate a request for a demand stream.

Definition at line 214 of file DemandStream.hpp.

void TRADEMGEN::DemandStream::incrementGeneratedRequestsCounter ( )
inline

Increment counter of requests generated so far

Definition at line 222 of file DemandStream.hpp.

Referenced by generateTimeOfRequestPoissonProcess(), and generateTimeOfRequestStatisticsOrder().

const bool TRADEMGEN::DemandStream::stillHavingRequestsToBeGenerated ( const stdair::DemandGenerationMethod &  iDemandGenerationMethod) const

Check whether enough requests have already been generated.

Definition at line 172 of file DemandStream.cpp.

References _randomGenerationContext, _totalNumberOfRequestsToBeGenerated, and TRADEMGEN::RandomGenerationContext::getNumberOfRequestsGeneratedSoFar().

Referenced by display().

const stdair::AirportCode_T TRADEMGEN::DemandStream::generatePOS ( )
const stdair::ChannelLabel_T TRADEMGEN::DemandStream::generateChannel ( )
const stdair::TripType_T TRADEMGEN::DemandStream::generateTripType ( )
const stdair::DayDuration_T TRADEMGEN::DemandStream::generateStayDuration ( )
const stdair::FrequentFlyer_T TRADEMGEN::DemandStream::generateFrequentFlyer ( )
const stdair::ChangeFees_T TRADEMGEN::DemandStream::generateChangeFees ( )

Generate the change fee acceptation.

Definition at line 476 of file DemandStream.cpp.

References TRADEMGEN::DemandCharacteristics::_changeFeeProb, _demandCharacteristics, and _demandCharacteristicsRandomGenerator.

Referenced by generateNextRequest().

const stdair::NonRefundable_T TRADEMGEN::DemandStream::generateNonRefundable ( )

Generate the non refundable acceptation.

Definition at line 487 of file DemandStream.cpp.

References _demandCharacteristics, _demandCharacteristicsRandomGenerator, and TRADEMGEN::DemandCharacteristics::_nonRefundableProb.

Referenced by generateNextRequest().

const stdair::Duration_T TRADEMGEN::DemandStream::generatePreferredDepartureTime ( )

Generate the preferred departure time.

Definition at line 498 of file DemandStream.cpp.

References _demandCharacteristics, _demandCharacteristicsRandomGenerator, and generateWTP().

Referenced by generateNextRequest().

const stdair::WTP_T TRADEMGEN::DemandStream::generateWTP ( stdair::RandomGeneration &  ioGenerator,
const stdair::Date_T &  iDepartureDate,
const stdair::DateTime_T &  iDateTimeThisRequest,
const stdair::DayDuration_T &  iDurationOfStay 
)
const stdair::PriceValue_T TRADEMGEN::DemandStream::generateValueOfTime ( )
stdair::BookingRequestPtr_T TRADEMGEN::DemandStream::generateNextRequest ( stdair::RandomGeneration &  ioGenerator,
const stdair::DemandGenerationMethod &  iDemandGenerationMethod 
)
void TRADEMGEN::DemandStream::reset ( stdair::BaseGenerator_T &  ioSharedGenerator)

Reset all the contexts of the demand stream.

Definition at line 625 of file DemandStream.cpp.

References _randomGenerationContext, and TRADEMGEN::RandomGenerationContext::reset().

void TRADEMGEN::DemandStream::toStream ( std::ostream &  ioOut) const
inline

Dump a Business Object into an output stream.

Parameters
ostream&the output stream.

Definition at line 292 of file DemandStream.hpp.

void TRADEMGEN::DemandStream::fromStream ( std::istream &  ioIn)
inline

Read a Business Object from an input stream.

Parameters
istream&the input stream.

Definition at line 300 of file DemandStream.hpp.

std::string TRADEMGEN::DemandStream::toString ( ) const

Get the serialised version of the Business Object.

Definition at line 73 of file DemandStream.cpp.

References _key, setAll(), and TRADEMGEN::DemandStreamKey::toString().

const std::string TRADEMGEN::DemandStream::describeKey ( ) const
inline

Get a string describing the key.

Definition at line 311 of file DemandStream.hpp.

Referenced by TRADEMGEN::TRADEMGEN_Service::displayDemandStream(), and generateNextRequest().

const stdair::Duration_T TRADEMGEN::DemandStream::convertFloatIntoDuration ( const stdair::FloatDuration_T  iNumberOfDays)

Friends And Related Function Documentation

template<typename BOM >
friend class stdair::FacBom
friend

Definition at line 31 of file DemandStream.hpp.

friend class stdair::FacBomManager
friend

Definition at line 32 of file DemandStream.hpp.

Member Data Documentation

Key_T TRADEMGEN::DemandStream::_key
protected

Primary key (string gathering the origin, destination, POS and date).

Definition at line 346 of file DemandStream.hpp.

Referenced by display(), generateNextRequest(), generateTimeOfRequestPoissonProcess(), generateTimeOfRequestStatisticsOrder(), and toString().

BomAbstract* TRADEMGEN::DemandStream::_parent
protected

Pointer on the parent class (EventQueue).

Definition at line 351 of file DemandStream.hpp.

stdair::HolderMap_T TRADEMGEN::DemandStream::_holderMap
protected

Map holding the children (not used for now).

Definition at line 356 of file DemandStream.hpp.

DemandDistribution TRADEMGEN::DemandStream::_demandDistribution
protected

Demand distribution.

Definition at line 366 of file DemandStream.hpp.

Referenced by display(), and generateTimeOfRequestPoissonProcess().

stdair::NbOfRequests_T TRADEMGEN::DemandStream::_totalNumberOfRequestsToBeGenerated
protected

Total number of requests to be generated.

Definition at line 371 of file DemandStream.hpp.

Referenced by display(), generateTimeOfRequestStatisticsOrder(), and stillHavingRequestsToBeGenerated().

RandomGenerationContext TRADEMGEN::DemandStream::_randomGenerationContext
protected

Random generation context.

Definition at line 376 of file DemandStream.hpp.

Referenced by display(), generateTimeOfRequestStatisticsOrder(), reset(), and stillHavingRequestsToBeGenerated().

stdair::RandomGeneration TRADEMGEN::DemandStream::_requestDateTimeRandomGenerator
protected

Random generator for request date-time.

Definition at line 381 of file DemandStream.hpp.

Referenced by display(), generateTimeOfRequestPoissonProcess(), and generateTimeOfRequestStatisticsOrder().

stdair::RandomGeneration TRADEMGEN::DemandStream::_demandCharacteristicsRandomGenerator
protected
POSProbabilityMass_T TRADEMGEN::DemandStream::_posProMass
protected

Defaut POS probablity mass, used when "row" (rest of the world) is drawn.

Definition at line 392 of file DemandStream.hpp.

Referenced by display().


The documentation for this class was generated from the following files: