AirSched Logo  0.1.4
C++ Simulated Airline Schedule Manager Library
SegmentPathGenerator.hpp
Go to the documentation of this file.
00001 #ifndef __AIRSCHED_CMD_SEGMENTPATHGENERATOR_HPP
00002 #define __AIRSCHED_CMD_SEGMENTPATHGENERATOR_HPP
00003 
00004 // //////////////////////////////////////////////////////////////////////
00005 // Import section
00006 // //////////////////////////////////////////////////////////////////////
00007 // STL
00008 #include <vector>
00009 // StdAir
00010 #include <stdair/stdair_basic_types.hpp>
00011 #include <stdair/command/CmdAbstract.hpp>
00012 // AirSched
00013 #include <airsched/AIRSCHED_Types.hpp>
00014 
00016 namespace stdair {
00017   class BomRoot;
00018   class Inventory;
00019   class FlightPeriod;
00020   class SegmentPeriod;
00021 }
00022 
00023 namespace AIRSCHED {
00024 
00026   class ReachableUniverse;
00027   class OriginDestinationSet;
00028   class SegmentPathPeriod;
00029   
00030 
00034   class SegmentPathGenerator : public stdair::CmdAbstract {
00035   public:
00039     static void createSegmentPathNetwork (const stdair::BomRoot&);
00040 
00041   private:
00046     static void createSinglePaths (const stdair::Inventory&);
00047     static void createSinglePaths (const stdair::FlightPeriod&);
00048 
00053     static void createSinglePath (stdair::SegmentPeriod&);
00054     static void createSinglePath (ReachableUniverse&, stdair::SegmentPeriod&);
00055 
00059     static void buildSegmentPathNetwork (const stdair::BomRoot&,
00060                                          const stdair::NbOfSegments_T&);
00061     static void buildSegmentPathNetwork (ReachableUniverse&,
00062                                          const stdair::NbOfSegments_T&);
00063 
00067     static void addSegmentPathPeriod (ReachableUniverse&,
00068                                       const SegmentPathPeriod&);    
00069   };
00070  
00071 }
00072 #endif // __AIRSCHED_CMD_SEGMENTPATHGENERATOR_HPP