AirInv Logo  0.1.2
C++ Simulated Airline Inventory Management System library
FlightPeriodStruct.hpp
Go to the documentation of this file.
00001 #ifndef __AIRINV_BOM_FLIGHTPERIODSTRUCT_HPP
00002 #define __AIRINV_BOM_FLIGHTPERIODSTRUCT_HPP
00003 
00004 // //////////////////////////////////////////////////////////////////////
00005 // Import section
00006 // //////////////////////////////////////////////////////////////////////
00007 // STL
00008 #include <string>
00009 // StdAir
00010 #include <stdair/stdair_inventory_types.hpp>
00011 #include <stdair/basic/StructAbstract.hpp>
00012 #include <stdair/bom/DoWStruct.hpp>
00013 // AirInv
00014 #include <airinv/bom/LegCabinStruct.hpp>
00015 #include <airinv/bom/LegStruct.hpp>
00016 #include <airinv/bom/SegmentStruct.hpp>
00017 #include <airinv/bom/SegmentCabinStruct.hpp>
00018 #include <airinv/bom/FareFamilyStruct.hpp>
00019 #include <airinv/bom/AirportList.hpp>
00020 
00021 namespace AIRINV {
00022 
00024   struct FlightPeriodStruct : public stdair::StructAbstract {
00025     
00027     stdair::Date_T getDate() const;
00028 
00030     stdair::Duration_T getTime() const;
00031   
00033     const std::string describe() const;
00034 
00037     void addAirport (const stdair::AirportCode_T&);
00038 
00040     void buildSegments ();
00041       
00048     void addSegmentCabin (const SegmentStruct&,
00049                           const SegmentCabinStruct&);
00050       
00056     void addSegmentCabin (const SegmentCabinStruct&);
00057 
00064     void addFareFamily (const SegmentStruct&,
00065                         const SegmentCabinStruct&,
00066                         const FareFamilyStruct&);
00067       
00073     void addFareFamily (const SegmentCabinStruct&,
00074                         const FareFamilyStruct&);
00075       
00077     FlightPeriodStruct ();
00078 
00079     // Attributes
00080     stdair::AirlineCode_T _airlineCode;
00081     stdair::FlightNumber_T _flightNumber;
00082     stdair::DatePeriod_T _dateRange;
00083     stdair::DoWStruct _dow;
00084     LegStructList_T _legList;
00085     SegmentStructList_T _segmentList;
00086 
00089     bool _legAlreadyDefined;
00090     LegStruct _itLeg;
00091     LegCabinStruct _itLegCabin;
00092 
00094     stdair::Date_T _dateRangeStart;
00095     stdair::Date_T _dateRangeEnd;
00096     unsigned int _itYear;
00097     unsigned int _itMonth;
00098     unsigned int _itDay;
00099     int _dateOffset;
00100       
00102     long _itHours;
00103     long _itMinutes;
00104     long _itSeconds;
00105 
00108     AirportList_T _airportList;
00109     AirportOrderedList_T _airportOrderedList;
00110 
00112     bool _areSegmentDefinitionsSpecific;
00113     SegmentStruct _itSegment;
00114     SegmentCabinStruct _itSegmentCabin;
00115   };
00116 
00117 }
00118 #endif // __AIRINV_BOM_FLIGHTPERIODSTRUCT_HPP