AirRAC Logo  0.2.3
C++ Simulated Revenue Accounting (RAC) System Library
YieldRuleGenerator.hpp
Go to the documentation of this file.
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
 All Classes Namespaces Files Functions Variables Typedefs Friends Defines