AirSched Logo  0.1.4
C++ Simulated Airline Schedule Manager Library
FlightPeriodStruct.hpp
Go to the documentation of this file.
00001 #ifndef __AIRSCHED_BOM_FLIGHTPERIODSTRUCT_HPP
00002 #define __AIRSCHED_BOM_FLIGHTPERIODSTRUCT_HPP
00003 
00004 // //////////////////////////////////////////////////////////////////////
00005 // Import section
00006 // //////////////////////////////////////////////////////////////////////
00007 // STL
00008 #include <string>
00009 // StdAir
00010 #include <stdair/stdair_basic_types.hpp>
00011 #include <stdair/basic/StructAbstract.hpp>
00012 #include <stdair/bom/DoWStruct.hpp>
00013 // AirSched
00014 #include <airsched/bom/LegCabinStruct.hpp>
00015 #include <airsched/bom/LegStruct.hpp>
00016 #include <airsched/bom/SegmentStruct.hpp>
00017 #include <airsched/bom/SegmentCabinStruct.hpp>
00018 #include <airsched/bom/FareFamilyStruct.hpp>
00019 #include <airsched/bom/AirportList.hpp>
00020 
00021 namespace AIRSCHED {
00022 
00026   struct FlightPeriodStruct : public stdair::StructAbstract {
00027     
00029     stdair::Date_T getDate() const;
00030 
00032     stdair::Duration_T getTime() const;
00033   
00035     const std::string describe() const;
00036 
00039     void addAirport (const stdair::AirportCode_T&);
00040 
00042     void buildSegments();
00043       
00050     void addSegmentCabin (const SegmentStruct&,
00051                           const SegmentCabinStruct&);
00052       
00058     void addSegmentCabin (const SegmentCabinStruct&);
00059 
00066     void addFareFamily (const SegmentStruct&,
00067                         const SegmentCabinStruct&,
00068                         const FareFamilyStruct&);
00069       
00075     void addFareFamily (const SegmentCabinStruct&,
00076                         const FareFamilyStruct&);
00077       
00081     FlightPeriodStruct();
00082 
00083     // Attributes
00084     stdair::AirlineCode_T _airlineCode;
00085     stdair::FlightNumber_T _flightNumber;
00086     stdair::DatePeriod_T _dateRange;
00087     stdair::DoWStruct _dow;
00088     LegStructList_T _legList;
00089     SegmentStructList_T _segmentList;
00090 
00093     bool _legAlreadyDefined;
00094     LegStruct _itLeg;
00095     LegCabinStruct _itLegCabin;
00096 
00098     stdair::Date_T _dateRangeStart;
00099     stdair::Date_T _dateRangeEnd;
00100     unsigned int _itYear;
00101     unsigned int _itMonth;
00102     unsigned int _itDay;
00103     int _dateOffset;
00104       
00106     long _itHours;
00107     long _itMinutes;
00108     long _itSeconds;
00109 
00112     AirportList_T _airportList;
00113     AirportOrderedList_T _airportOrderedList;
00114 
00116     bool _areSegmentDefinitionsSpecific;
00117     SegmentStruct _itSegment;
00118     SegmentCabinStruct _itSegmentCabin;
00119   };
00120 
00121 }
00122 #endif // __AIRSCHED_BOM_FLIGHTPERIODSTRUCT_HPP