$treeview $search $mathjax
00001 #ifndef __AIRRAC_CMD_YIELDRULEGENERATOR_HPP 00002 #define __AIRRAC_CMD_YIELDRULEGENERATOR_HPP 00003 00004 // ////////////////////////////////////////////////////////////////////// 00005 // Import section 00006 // ////////////////////////////////////////////////////////////////////// 00007 // StdAir 00008 #include <stdair/command/CmdAbstract.hpp> 00009 // AirRAC 00010 #include <airrac/AIRRAC_Types.hpp> 00011 00012 namespace stdair { 00013 class BomRoot; 00014 class YieldRule; 00015 class AirportPair; 00016 class DatePeriod; 00017 class PosChannel; 00018 class TimePeriod; 00019 class YieldFeatures; 00020 class AirlineClassList; 00021 } 00022 00023 namespace AIRRAC { 00024 00025 // Forward declarations 00026 struct YieldRuleStruct; 00027 namespace YieldParserHelper { 00028 struct doEndYield; 00029 } 00030 00032 class YieldRuleGenerator : public stdair::CmdAbstract { 00033 // Only the following class may use methods of YieldGenerator. 00034 // Indeed, as those methods build the BOM, it is not good to expose 00035 // them public. 00036 friend class YieldFileParser; 00037 friend struct YieldParserHelper::doEndYield; 00038 friend class YieldParser; 00039 00040 private: 00041 00050 static void createAirportPair (stdair::BomRoot&, 00051 const YieldRuleStruct&); 00052 00061 static void createDateRange (stdair::AirportPair&, 00062 const YieldRuleStruct&); 00063 00072 static void createPOSChannel (stdair::DatePeriod&, 00073 const YieldRuleStruct&); 00074 00083 static void createTimeRange (stdair::PosChannel&, 00084 const YieldRuleStruct&); 00085 00094 static void createYieldFeatures (stdair::TimePeriod&, 00095 const YieldRuleStruct&); 00096 00105 static void createAirlineClassList (stdair::YieldFeatures&, 00106 const YieldRuleStruct&); 00107 00108 00109 }; 00110 00111 } 00112 #endif // __AIRRAC_CMD_YIELDRULEGENERATOR_HPP