$treeview $search $mathjax
00001 #ifndef __STDAIR_BOM_BOOKINGREQUESTSTRUCT_HPP 00002 #define __STDAIR_BOM_BOOKINGREQUESTSTRUCT_HPP 00003 00004 // ////////////////////////////////////////////////////////////////////// 00005 // Import section 00006 // ////////////////////////////////////////////////////////////////////// 00007 // STL 00008 #include <iosfwd> 00009 #include <string> 00010 // StdAir 00011 #include <stdair/stdair_inventory_types.hpp> 00012 #include <stdair/stdair_demand_types.hpp> 00013 #include <stdair/basic/StructAbstract.hpp> 00014 #include <stdair/bom/BookingRequestTypes.hpp> 00015 00016 namespace stdair { 00017 00021 struct BookingRequestStruct : public StructAbstract { 00022 public: 00023 // /////////////// Getters ///////////////// 00025 const DemandGeneratorKey_T& getDemandGeneratorKey () const { 00026 return _generatorKey; 00027 } 00028 00030 const AirportCode_T& getOrigin() const { 00031 return _origin; 00032 } 00033 00035 const AirportCode_T& getDestination() const { 00036 return _destination; 00037 } 00038 00040 const CityCode_T& getPOS() const { 00041 return _pos; 00042 } 00043 00045 const Date_T& getPreferedDepartureDate() const { 00046 return _preferredDepartureDate; 00047 } 00048 00050 const Duration_T& getPreferredDepartureTime() const { 00051 return _preferredDepartureTime; 00052 } 00053 00055 const DateTime_T& getRequestDateTime() const { 00056 return _requestDateTime; 00057 } 00058 00060 const CabinCode_T& getPreferredCabin() const { 00061 return _preferredCabin; 00062 } 00063 00065 const NbOfSeats_T& getPartySize() const { 00066 return _partySize; 00067 } 00068 00070 const ChannelLabel_T& getBookingChannel() const { 00071 return _channel; 00072 } 00073 00075 const TripType_T& getTripType() const { 00076 return _tripType; 00077 } 00078 00080 const DayDuration_T& getStayDuration() const { 00081 return _stayDuration; 00082 } 00083 00085 const FrequentFlyer_T& getFrequentFlyerType() const { 00086 return _frequentFlyerType; 00087 } 00088 00090 const WTP_T& getWTP() const { 00091 return _wtp; 00092 } 00093 00095 const PriceValue_T& getValueOfTime () const { 00096 return _valueOfTime; 00097 } 00098 00100 const ChangeFees_T& getChangeFees () const { 00101 return _changeFees; 00102 } 00103 00105 const Disutility_T& getChangeFeeDisutility () const { 00106 return _changeFeeDisutility; 00107 } 00108 00110 const NonRefundable_T& getNonRefundable () const { 00111 return _nonRefundable; 00112 } 00113 00115 const Disutility_T& getNonRefundableDisutility () const { 00116 return _nonRefundableDisutility; 00117 } 00118 00119 00120 public: 00121 // /////////// Display support method ///////////// 00126 void toStream (std::ostream& ioOut) const; 00127 00132 void fromStream (std::istream& ioIn); 00133 00137 const std::string describe() const; 00138 00189 const std::string display() const; 00190 00191 00192 public: 00193 // /////////////// Constructors and Destructors ///////////////// 00197 BookingRequestStruct (const DemandGeneratorKey_T& iGeneratorKey, 00198 const AirportCode_T& iOrigin, 00199 const AirportCode_T& iDestination, 00200 const CityCode_T& iPOS, 00201 const Date_T& iDepartureDate, 00202 const DateTime_T& iRequestDateTime, 00203 const CabinCode_T& iPreferredCabin, 00204 const NbOfSeats_T& iPartySize, 00205 const ChannelLabel_T& iChannel, 00206 const TripType_T& iTripType, 00207 const DayDuration_T& iStayDuration, 00208 const FrequentFlyer_T& iFrequentFlyerType, 00209 const Duration_T& iPreferredDepartureTime, 00210 const WTP_T& iWTP, 00211 const PriceValue_T& iValueOfTime, 00212 const ChangeFees_T& iChangeFees, 00213 const Disutility_T& iChangeFeeDisutility, 00214 const NonRefundable_T& iNonRefundable, 00215 const Disutility_T& iNonRefundableDisutility); 00216 00220 BookingRequestStruct (const AirportCode_T& iOrigin, 00221 const AirportCode_T& iDestination, 00222 const CityCode_T& iPOS, 00223 const Date_T& iDepartureDate, 00224 const DateTime_T& iRequestDateTime, 00225 const CabinCode_T& iPreferredCabin, 00226 const NbOfSeats_T& iPartySize, 00227 const ChannelLabel_T& iChannel, 00228 const TripType_T& iTripType, 00229 const DayDuration_T& iStayDuration, 00230 const FrequentFlyer_T& iFrequentFlyerType, 00231 const Duration_T& iPreferredDepartureTime, 00232 const WTP_T& iWTP, 00233 const PriceValue_T& iValueOfTime, 00234 const ChangeFees_T& iChangeFees, 00235 const Disutility_T& iChangeFeeDisutility, 00236 const NonRefundable_T& iNonRefundable, 00237 const Disutility_T& iNonRefundableDisutility); 00241 BookingRequestStruct (const BookingRequestStruct&); 00242 00246 ~BookingRequestStruct(); 00247 00248 00249 private: 00255 BookingRequestStruct(); 00256 00257 00258 private: 00259 // /////////////// Attributes ///////////////// 00261 const DemandGeneratorKey_T _generatorKey; 00262 00264 const AirportCode_T _origin; 00265 00267 const AirportCode_T _destination; 00268 00270 const CityCode_T _pos; 00271 00273 const Date_T _preferredDepartureDate; 00274 00276 const Duration_T _preferredDepartureTime; 00277 00279 const DateTime_T _requestDateTime; 00280 00282 const CabinCode_T _preferredCabin; 00283 00285 const NbOfSeats_T _partySize; 00286 00288 const ChannelLabel_T _channel; 00289 00292 const TripType_T _tripType; 00293 00295 const DayDuration_T _stayDuration; 00296 00298 const FrequentFlyer_T _frequentFlyerType; 00299 00301 const WTP_T _wtp; 00302 00304 const PriceValue_T _valueOfTime; 00305 00307 const ChangeFees_T _changeFees; 00308 00310 const Disutility_T _changeFeeDisutility; 00311 00313 const NonRefundable_T _nonRefundable; 00314 00316 const Disutility_T _nonRefundableDisutility; 00317 }; 00318 00319 } 00320 #endif // __STDAIR_BOM_BOOKINGREQUESTSTRUCT_HPP