$treeview $search $mathjax
00001 #ifndef __TRAVELCCM_BOM_CUSTOMERCHOICEMODEL_HPP 00002 #define __TRAVELCCM_BOM_CUSTOMERCHOICEMODEL_HPP 00003 00004 // ////////////////////////////////////////////////////////////////////// 00005 // Import section 00006 // ////////////////////////////////////////////////////////////////////// 00007 // StdAir 00008 #include <stdair/stdair_service_types.hpp> 00009 #include <stdair/bom/TravelSolutionTypes.hpp> 00010 #include <stdair/basic/PassengerChoiceModel.hpp> 00011 00013 namespace stdair { 00014 struct BookingRequestStruct; 00015 } 00016 00017 namespace TRAVELCCM { 00018 00022 class CustomerChoiceModel { 00023 00024 private: 00025 // ////////// Type definitions //////////// 00026 typedef std::map<stdair::PassengerChoiceModel::EN_PassengerChoiceModel, 00027 CustomerChoiceModel*> CustomerChoiceModelMap_T; 00028 00029 private: 00034 static CustomerChoiceModelMap_T& getMap () { 00035 static CustomerChoiceModelMap_T _choiceModelMap; 00036 return _choiceModelMap; 00037 } 00038 00039 public: 00043 virtual const stdair::TravelSolutionStruct* 00044 chooseTravelSolution (stdair::TravelSolutionList_T&, 00045 const stdair::BookingRequestStruct&) const = 0; 00046 00047 00051 static const CustomerChoiceModel* 00052 create (const stdair::PassengerChoiceModel::EN_PassengerChoiceModel&); 00053 00054 public: 00058 virtual ~CustomerChoiceModel(); 00059 00060 protected: 00064 CustomerChoiceModel (); 00065 00069 CustomerChoiceModel 00070 (const stdair::PassengerChoiceModel::EN_PassengerChoiceModel&); 00071 00072 }; 00073 } 00074 #endif // __TRAVELCCM_BOM_CUSTOMERCHOICEMODEL_HPP