AirSched Logo  0.1.4
C++ Simulated Airline Schedule Manager Library
InventoryGenerator.hpp
Go to the documentation of this file.
00001 #ifndef __AIRSCHED_CMD_INVENTORYGENERATOR_HPP
00002 #define __AIRSCHED_CMD_INVENTORYGENERATOR_HPP
00003 
00004 // //////////////////////////////////////////////////////////////////////
00005 // Import section
00006 // //////////////////////////////////////////////////////////////////////
00007 // StdAir
00008 #include <stdair/command/CmdAbstract.hpp>
00009 // AirSched
00010 #include <airsched/AIRSCHED_Types.hpp>
00011 
00012 // Forward declarations
00013 namespace stdair {
00014   class BomRoot;
00015   class FlightPeriod;
00016 }
00017 
00018 namespace AIRSCHED {
00019 
00020   // Forward declarations
00021   struct FlightPeriodStruct;
00022   struct LegStruct;
00023   struct SegmentStruct;
00024   struct LegCabinStruct;
00025   struct SegmentCabinStruct;
00026   namespace ScheduleParserHelper {
00027     struct doEndFlight;
00028   }
00029     
00031   class InventoryGenerator : public stdair::CmdAbstract {
00032     // Only the following class may use methods of InventoryGenerator.
00033     // Indeed, as those methods build the BOM, it is not good to expose
00034     // them publicly.
00035     friend class FlightPeriodFileParser;
00036     friend class FFFlightPeriodFileParser;
00037     friend struct ScheduleParserHelper::doEndFlight;
00038     friend class ScheduleParser;
00039 
00040   private:
00043     static void createFlightPeriod (stdair::BomRoot&,
00044                                     const FlightPeriodStruct&);
00045 
00047     static void createSegmentPeriods (stdair::FlightPeriod&,
00048                                       const FlightPeriodStruct&);
00049 
00050   };
00051 
00052 }
00053 #endif // __AIRSCHED_CMD_INVENTORYGENERATOR_HPP