StdAir Logo  0.45.0
C++ Standard Airline IT Object Library
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       
00099 
00100   public:
00101     // /////////// Display support method /////////////
00106     void toStream (std::ostream& ioOut) const;
00107 
00112     void fromStream (std::istream& ioIn);
00113 
00117     const std::string describe() const;
00118 
00169     const std::string display() const;
00170 
00171     
00172   public:
00173     // /////////////// Constructors and Destructors /////////////////
00177     BookingRequestStruct (const DemandGeneratorKey_T& iGeneratorKey,
00178                           const AirportCode_T& iOrigin,
00179                           const AirportCode_T& iDestination,
00180                           const CityCode_T& iPOS,
00181                           const Date_T& iDepartureDate,
00182                           const DateTime_T& iRequestDateTime,
00183                           const CabinCode_T& iPreferredCabin,
00184                           const NbOfSeats_T& iPartySize,
00185                           const ChannelLabel_T& iChannel,
00186                           const TripType_T& iTripType,
00187                           const DayDuration_T& iStayDuration,
00188                           const FrequentFlyer_T& iFrequentFlyerType,
00189                           const Duration_T& iPreferredDepartureTime,
00190                           const WTP_T& iWTP,
00191                           const PriceValue_T& iValueOfTime);
00192 
00196     BookingRequestStruct (const AirportCode_T& iOrigin,
00197                           const AirportCode_T& iDestination,
00198                           const CityCode_T& iPOS,
00199                           const Date_T& iDepartureDate,
00200                           const DateTime_T& iRequestDateTime,
00201                           const CabinCode_T& iPreferredCabin,
00202                           const NbOfSeats_T& iPartySize,
00203                           const ChannelLabel_T& iChannel,
00204                           const TripType_T& iTripType,
00205                           const DayDuration_T& iStayDuration,
00206                           const FrequentFlyer_T& iFrequentFlyerType,
00207                           const Duration_T& iPreferredDepartureTime,
00208                           const WTP_T& iWTP,
00209                           const PriceValue_T& iValueOfTime);
00213     BookingRequestStruct (const BookingRequestStruct&);
00214     
00218     ~BookingRequestStruct();
00219     
00220 
00221   private:
00227     BookingRequestStruct();
00228 
00229 
00230   private:
00231     // /////////////// Attributes /////////////////
00233     const DemandGeneratorKey_T _generatorKey;
00234     
00236     const AirportCode_T _origin;
00237 
00239     const AirportCode_T _destination;
00240 
00242     const CityCode_T _pos;
00243     
00245     const Date_T _preferredDepartureDate;
00246 
00248     const Duration_T _preferredDepartureTime;
00249     
00251     const DateTime_T _requestDateTime;
00252 
00254     const CabinCode_T _preferredCabin;
00255 
00257     const NbOfSeats_T _partySize;
00258 
00260     const ChannelLabel_T _channel;
00261 
00264     const TripType_T _tripType;
00265 
00267     const DayDuration_T _stayDuration;
00268 
00270     const FrequentFlyer_T _frequentFlyerType;
00271 
00273     const WTP_T _wtp;
00274 
00276     const PriceValue_T _valueOfTime;
00277   };
00278 
00279 }
00280 #endif // __STDAIR_BOM_BOOKINGREQUESTSTRUCT_HPP