$treeview $search $mathjax
00001 #ifndef __SIMFQT_CMD_FARERULEGENERATOR_HPP 00002 #define __SIMFQT_CMD_FARERULEGENERATOR_HPP 00003 00004 // ////////////////////////////////////////////////////////////////////// 00005 // Import section 00006 // ////////////////////////////////////////////////////////////////////// 00007 // StdAir 00008 #include <stdair/command/CmdAbstract.hpp> 00009 // Simfqt 00010 #include <simfqt/SIMFQT_Types.hpp> 00011 00012 // Forward declarations 00013 namespace stdair { 00014 class BomRoot; 00015 class FareRule; 00016 class AirportPair; 00017 class DatePeriod; 00018 class PosChannel; 00019 class TimePeriod; 00020 class FareFeatures; 00021 class AirlineClassList; 00022 } 00023 00024 namespace SIMFQT { 00025 00026 // Forward declarations 00027 struct FareRuleStruct; 00028 namespace FareParserHelper { 00029 struct doEndFare; 00030 } 00031 00033 class FareRuleGenerator : public stdair::CmdAbstract { 00034 00035 // Only the following class may use methods of FareGenerator. 00036 // Indeed, as those methods build the BOM, it is not good to expose 00037 // them public. 00038 friend class FareFileParser; 00039 friend struct FareParserHelper::doEndFare; 00040 friend class FareParser; 00041 00042 private: 00043 00052 static void createAirportPair (stdair::BomRoot&, 00053 const FareRuleStruct&); 00054 00063 static void createDateRange (stdair::AirportPair&, 00064 const FareRuleStruct&); 00065 00074 static void createPOSChannel (stdair::DatePeriod&, 00075 const FareRuleStruct&); 00076 00085 static void createTimeRange (stdair::PosChannel&, 00086 const FareRuleStruct&); 00087 00096 static void createFareFeatures (stdair::TimePeriod&, 00097 const FareRuleStruct&); 00098 00107 static void createAirlineClassList (stdair::FareFeatures&, 00108 const FareRuleStruct&); 00109 00110 00111 00112 }; 00113 00114 } 00115 #endif // __SIMFQT_CMD_FARERULEGENERATOR_HPP