$treeview $search $mathjax
00001 #ifndef __STDAIR_BOM_TRAVELSOLUTIONSTRUCT_HPP 00002 #define __STDAIR_BOM_TRAVELSOLUTIONSTRUCT_HPP 00003 00004 // ////////////////////////////////////////////////////////////////////// 00005 // Import section 00006 // ////////////////////////////////////////////////////////////////////// 00007 // STL 00008 #include <iosfwd> 00009 #include <string> 00010 #include <vector> 00011 // StdAir 00012 #include <stdair/stdair_basic_types.hpp> 00013 #include <stdair/basic/StructAbstract.hpp> 00014 #include <stdair/bom/BookingClassTypes.hpp> 00015 #include <stdair/bom/FareOptionStruct.hpp> 00016 #include <stdair/bom/FareOptionTypes.hpp> 00017 #include <stdair/bom/TravelSolutionTypes.hpp> 00018 00019 namespace stdair { 00020 00024 struct TravelSolutionStruct : public StructAbstract { 00025 public: 00026 // /////////// Getters /////////////// 00028 const SegmentPath_T& getSegmentPath() const { 00029 return _segmentPath; 00030 } 00031 00033 const ClassAvailabilityMapHolder_T& getClassAvailabilityMapHolder() const { 00034 return _classAvailabilityMapHolder; 00035 } 00036 00038 const ClassObjectIDMapHolder_T& getClassObjectIDMapHolder() const { 00039 return _classObjectIDMapHolder; 00040 } 00041 00043 const ClassYieldMapHolder_T& getClassYieldMapHolder() const { 00044 return _classYieldMapHolder; 00045 } 00046 00048 const BidPriceVectorHolder_T& getBidPriceVectorHolder() const { 00049 return _bidPriceVectorHolder; 00050 } 00051 00053 const ClassBpvMapHolder_T& getClassBpvMapHolder() const { 00054 return _classBpvMapHolder; 00055 } 00056 00058 const FareOptionList_T& getFareOptionList() const { 00059 return _fareOptionList; 00060 } 00061 00063 FareOptionList_T& getFareOptionListRef() { 00064 return _fareOptionList; 00065 } 00066 00068 const FareOptionStruct& getChosenFareOption() const { 00069 assert (_chosenFareOption != NULL); 00070 return *_chosenFareOption; 00071 } 00072 00073 public: 00074 // /////////// Setters /////////////// 00076 void addSegment (const std::string&); 00077 00079 void addClassAvailabilityMap (const ClassAvailabilityMap_T&); 00080 00082 void addClassObjectIDMap (const ClassObjectIDMap_T&); 00083 00085 void addClassYieldMap (const ClassYieldMap_T&); 00086 00088 void addBidPriceVector (const BidPriceVector_T&); 00089 00091 void addClassBpvMap (const ClassBpvMap_T&); 00092 00094 void addFareOption (const FareOptionStruct&); 00095 00097 void setChosenFareOption (const FareOptionStruct& iChosenFO) { 00098 _chosenFareOption = &iChosenFO; 00099 } 00100 00101 00102 public: 00103 // /////////// Display support method ///////////// 00109 void toStream (std::ostream& ioOut) const; 00110 00115 void fromStream (std::istream& ioIn); 00116 00120 const std::string describe() const; 00121 00125 const std::string display() const; 00126 00130 const std::string describeSegmentPath() const; 00131 00132 00133 public: 00134 // //////////// Constructors & Destructor /////////////// 00138 TravelSolutionStruct(); 00139 00143 ~TravelSolutionStruct(); 00144 00145 00146 private: 00147 // ///////////////////// Attributes ////////////////////// 00151 SegmentPath_T _segmentPath; 00152 00156 ClassAvailabilityMapHolder_T _classAvailabilityMapHolder; 00157 00161 ClassObjectIDMapHolder_T _classObjectIDMapHolder; 00162 00166 ClassYieldMapHolder_T _classYieldMapHolder; 00167 00171 BidPriceVectorHolder_T _bidPriceVectorHolder; 00172 00176 ClassBpvMapHolder_T _classBpvMapHolder; 00177 00181 FareOptionList_T _fareOptionList; 00182 00186 const FareOptionStruct* _chosenFareOption; 00187 }; 00188 00189 } 00190 #endif // __STDAIR_BOM_TRAVELSOLUTIONSTRUCT_HPP