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