AirRAC Logo  1.00.0
C++ Simulated Revenue Accounting (RAC) System Library
 All Classes Namespaces Files Functions Variables Typedefs Friends Pages
YieldRuleGenerator.hpp
Go to the documentation of this file.
1 #ifndef __AIRRAC_CMD_YIELDRULEGENERATOR_HPP
2 #define __AIRRAC_CMD_YIELDRULEGENERATOR_HPP
3 
4 // //////////////////////////////////////////////////////////////////////
5 // Import section
6 // //////////////////////////////////////////////////////////////////////
7 // StdAir
8 #include <stdair/command/CmdAbstract.hpp>
9 // AirRAC
10 #include <airrac/AIRRAC_Types.hpp>
11 
12 namespace stdair {
13  class BomRoot;
14  class YieldRule;
15  class AirportPair;
16  class DatePeriod;
17  class PosChannel;
18  class TimePeriod;
19  class YieldFeatures;
20  class AirlineClassList;
21 }
22 
23 namespace AIRRAC {
24 
25  // Forward declarations
26  struct YieldRuleStruct;
27  namespace YieldParserHelper {
28  struct doEndYield;
29  }
30 
32  class YieldRuleGenerator : public stdair::CmdAbstract {
33  // Only the following class may use methods of YieldGenerator.
34  // Indeed, as those methods build the BOM, it is not good to expose
35  // them public.
36  friend class YieldFileParser;
38  friend class YieldParser;
39 
40  private:
41 
50  static void createAirportPair (stdair::BomRoot&,
51  const YieldRuleStruct&);
52 
61  static void createDateRange (stdair::AirportPair&,
62  const YieldRuleStruct&);
63 
72  static void createPOSChannel (stdair::DatePeriod&,
73  const YieldRuleStruct&);
74 
83  static void createTimeRange (stdair::PosChannel&,
84  const YieldRuleStruct&);
85 
94  static void createYieldFeatures (stdair::TimePeriod&,
95  const YieldRuleStruct&);
96 
105  static void createAirlineClassList (stdair::YieldFeatures&,
106  const YieldRuleStruct&);
107 
108 
109  };
110 
111 }
112 #endif // __AIRRAC_CMD_YIELDRULEGENERATOR_HPP