StdAir Logo  1.00.10
C++ Standard Airline IT Object Library
BookingClass.cpp
Go to the documentation of this file.
1 // //////////////////////////////////////////////////////////////////////
2 // Import section
3 // //////////////////////////////////////////////////////////////////////
4 // STL
5 #include <cassert>
6 #include <sstream>
7 // StdAir
12 
13 namespace stdair {
14 
15  // ////////////////////////////////////////////////////////////////////
16  BookingClass::BookingClass() : _key (DEFAULT_CLASS_CODE), _parent (NULL) {
17  assert (false);
18  }
19 
20  // ////////////////////////////////////////////////////////////////////
21  BookingClass::BookingClass (const BookingClass& iBookingClass)
22  : _key (iBookingClass._key),
23  _parent (NULL),
24  _subclassCode (iBookingClass._subclassCode),
25  _cumulatedProtection (iBookingClass._cumulatedProtection),
26  _protection (iBookingClass._protection),
27  _cumulatedBookingLimit (iBookingClass._cumulatedBookingLimit),
28  _au (iBookingClass._au),
29  _nego (iBookingClass._nego),
30  _noShowPercentage (iBookingClass._noShowPercentage),
31  _cancellationPercentage (iBookingClass._cancellationPercentage),
32  _nbOfBookings (iBookingClass._nbOfBookings),
33  _groupNbOfBookings (iBookingClass._groupNbOfBookings),
34  _groupPendingNbOfBookings (iBookingClass._groupPendingNbOfBookings),
35  _staffNbOfBookings (iBookingClass._staffNbOfBookings),
36  _wlNbOfBookings (iBookingClass._wlNbOfBookings),
37  _nbOfCancellations (iBookingClass._nbOfCancellations),
38  _etb (iBookingClass._etb),
39  _netClassAvailability (iBookingClass._netClassAvailability),
40  _segmentAvailability (iBookingClass._segmentAvailability),
41  _netRevenueAvailability (iBookingClass._netRevenueAvailability),
42  _yield (iBookingClass._yield),
43  _adjustedYield (iBookingClass._adjustedYield),
44  _mean (iBookingClass._mean),
45  _stdDev (iBookingClass._stdDev) {
46  }
47 
48  // ////////////////////////////////////////////////////////////////////
49  BookingClass::BookingClass (const Key_T& iKey)
50  : _key (iKey), _parent (NULL), _subclassCode(0), _cumulatedProtection (0.0),
51  _protection (0.0), _cumulatedBookingLimit (0.0), _au (0.0), _nego (0.0),
52  _noShowPercentage (0.0), _cancellationPercentage (0.0),
53  _nbOfBookings (0.0), _groupNbOfBookings (0.0),
54  _groupPendingNbOfBookings (0.0), _staffNbOfBookings (0.0),
55  _wlNbOfBookings (0.0), _nbOfCancellations (0.), _etb (0.0),
56  _netClassAvailability (0.0), _segmentAvailability (0.0),
57  _netRevenueAvailability (0.0), _yield (0.0), _mean (0.0), _stdDev (0.0) {
58  }
59 
60  // ////////////////////////////////////////////////////////////////////
62  }
63 
64  // ////////////////////////////////////////////////////////////////////
65  std::string BookingClass::toString() const {
66  std::ostringstream oStr;
67  oStr << describeKey();
68  return oStr.str();
69  }
70 
71  // ////////////////////////////////////////////////////////////////////
72  void BookingClass::sell (const NbOfBookings_T& iNbOfBookings) {
73  _nbOfBookings += iNbOfBookings;
74  }
75 
76  // ////////////////////////////////////////////////////////////////////
77  void BookingClass::cancel (const NbOfBookings_T& iNbOfCancellations) {
78  _nbOfBookings -= iNbOfCancellations;
79  _nbOfCancellations += iNbOfCancellations;
80  }
81 
82  // ////////////////////////////////////////////////////////////////////
85  }
86 
87  // ////////////////////////////////////////////////////////////////////
89  const RandomSeed_T& iSeed) {
90  _generatedDemandVector.clear();
91  if (_stdDev > 0) {
92  RandomGeneration lGenerator (iSeed);
93  for (unsigned int i = 0; i < K; ++i) {
94  const RealNumber_T& lDemandSample = lGenerator.generateNormal (_mean,
95  _stdDev);
96  _generatedDemandVector.push_back (lDemandSample);
97  }
98  }
99  }
100 
101 }
102 
stdair::DEFAULT_RANDOM_SEED
const RandomSeed_T DEFAULT_RANDOM_SEED
stdair::BookingClass::~BookingClass
virtual ~BookingClass()
Definition: BookingClass.cpp:61
stdair::BookingClass::toString
std::string toString() const
Definition: BookingClass.cpp:65
stdair::BookingClass::_stdDev
StdDevValue_T _stdDev
Definition: BookingClass.hpp:344
BookingClass.hpp
stdair::RandomGeneration::generateNormal
RealNumber_T generateNormal(const RealNumber_T &, const RealNumber_T &)
Definition: RandomGeneration.cpp:68
stdair::NbOfSamples_T
unsigned int NbOfSamples_T
Definition: stdair_rm_types.hpp:77
RandomGeneration.hpp
stdair::BookingClass::cancel
void cancel(const NbOfBookings_T &)
Definition: BookingClass.cpp:77
stdair::BookingClass::generateDemandSamples
void generateDemandSamples(const NbOfSamples_T &)
Definition: BookingClass.cpp:83
stdair::BookingClass::_nbOfBookings
NbOfBookings_T _nbOfBookings
Definition: BookingClass.hpp:309
stdair::BookingClass::_nbOfCancellations
NbOfCancellations_T _nbOfCancellations
Definition: BookingClass.hpp:324
stdair
Handle on the StdAir library context.
Definition: BasChronometer.cpp:9
stdair::BookingClass::describeKey
const std::string describeKey() const
Definition: BookingClass.hpp:239
BasConst_Inventory.hpp
stdair::BookingClass::sell
void sell(const NbOfBookings_T &)
Definition: BookingClass.cpp:72
stdair::RandomSeed_T
unsigned long int RandomSeed_T
Definition: stdair_maths_types.hpp:39
stdair::BookingClass::_generatedDemandVector
GeneratedDemandVector_T _generatedDemandVector
Definition: BookingClass.hpp:359
stdair::RealNumber_T
double RealNumber_T
Definition: stdair_basic_types.hpp:70
stdair::DEFAULT_CLASS_CODE
const ClassCode_T DEFAULT_CLASS_CODE
stdair::BookingClass::_mean
MeanValue_T _mean
Definition: BookingClass.hpp:343
BasConst_General.hpp
stdair::NbOfBookings_T
NbOfRequests_T NbOfBookings_T
Definition: stdair_basic_types.hpp:104
stdair::BookingClassKey
Definition: BookingClassKey.hpp:16
stdair::RandomGeneration
Class holding a random generator.
Definition: RandomGeneration.hpp:17