AirInv Logo  1.00.1
C++ Simulated Airline Inventory Management System library
InventoryGenerator.hpp
Go to the documentation of this file.
1 #ifndef __AIRINV_CMD_INVENTORYGENERATOR_HPP
2 #define __AIRINV_CMD_INVENTORYGENERATOR_HPP
3 
4 // //////////////////////////////////////////////////////////////////////
5 // Import section
6 // //////////////////////////////////////////////////////////////////////
7 // StdAir
8 #include <stdair/command/CmdAbstract.hpp>
9 // Airinv
10 #include <airinv/AIRINV_Types.hpp>
11 
13 namespace stdair {
14  class BomRoot;
15  class Inventory;
16  class FlightDate;
17  class LegDate;
18  class LegCabin;
19  class SegmentDate;
20  class SegmentCabin;
21  class FareFamily;
22 }
23 
24 namespace AIRINV {
25 
26  // Forward declarations
27  struct FlightPeriodStruct;
28  struct LegStruct;
29  struct SegmentStruct;
30  struct LegCabinStruct;
31  struct SegmentCabinStruct;
32  struct FareFamilyStruct;
33  struct BucketStruct;
34  namespace ScheduleParserHelper {
35  struct doEndFlight;
36  }
37 
42  class InventoryGenerator : public stdair::CmdAbstract {
48  friend class FlightPeriodFileParser;
51  friend class ScheduleParser;
52 
53  private:
58  static void createFlightDate (stdair::BomRoot&,
59  const FlightPeriodStruct&);
60 
64  static void createFlightDate (stdair::BomRoot&, stdair::Inventory&,
65  const stdair::Date_T&,
66  const FlightPeriodStruct&);
67 
71  static void createRoutingLegKey (stdair::FlightDate&);
72 
76  static stdair::LegDate& createLegDate (stdair::FlightDate&,
77  const stdair::Date_T&,
78  const LegStruct&);
79 
83  static void createLegCabin (stdair::LegDate&, const LegCabinStruct&);
84 
88  static void createBucket (stdair::LegCabin&, const BucketStruct&);
89 
93  static void createSegmentDate (stdair::BomRoot&, stdair::FlightDate&,
94  const SegmentStruct&);
95 
99  static void createSegmentCabin (stdair::BomRoot&, stdair::SegmentDate&,
100  const SegmentCabinStruct&);
101 
105  static void createFareFamily (stdair::BomRoot&, stdair::SegmentCabin&,
106  const FareFamilyStruct&);
107 
111  static void createClass (stdair::FareFamily&,
112  const stdair::ClassCode_T&);
113 
117  static void createDisplayNestingStructure (stdair::SegmentCabin&);
118  };
119 
120 }
121 #endif // __AIRINV_CMD_INVENTORYGENERATOR_HPP
Class handling the generation / instantiation of the Inventory BOM.
Forward declarations.
Class wrapping the parser entry point.
Utility Structure for the parsing of SegmentCabin details.
Utility Structure for the parsing of fare family details.
Utility Structure for the parsing of Bucket structures.