$treeview $search $mathjax
StdAir Logo  1.00.2
$projectbrief
$projectbrief
$searchbox

stdair/bom/BookingRequestStruct.hpp

Go to the documentation of this file.
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