AirInv Logo  0.1.2
C++ Simulated Airline Inventory Management System library
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
FlightDateStruct.hpp
Go to the documentation of this file.
00001 #ifndef __AIRINV_BOM_FLIGHTDATESTRUCT_HPP
00002 #define __AIRINV_BOM_FLIGHTDATESTRUCT_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/basic/FlightTypeCode.hpp>
00015 #include <airinv/basic/FlightVisibilityCode.hpp>
00016 #include <airinv/bom/LegStruct.hpp>
00017 #include <airinv/bom/LegCabinStruct.hpp>
00018 #include <airinv/bom/BucketStruct.hpp>
00019 #include <airinv/bom/SegmentStruct.hpp>
00020 #include <airinv/bom/SegmentCabinStruct.hpp>
00021 #include <airinv/bom/FareFamilyStruct.hpp>
00022 #include <airinv/bom/AirportList.hpp>
00023 
00024 namespace AIRINV {
00025 
00027   struct FlightDateStruct : public stdair::StructAbstract {
00028     
00030     stdair::Date_T getDate() const;
00031 
00033     stdair::Duration_T getTime() const;
00034   
00036     const std::string describe() const;
00037 
00040     void addAirport (const stdair::AirportCode_T&);
00041 
00043     void buildSegments ();
00044       
00051     void addSegmentCabin (const SegmentStruct&,
00052                           const SegmentCabinStruct&);
00053       
00059     void addSegmentCabin (const SegmentCabinStruct&);
00060 
00067     void addFareFamily (const SegmentStruct&, const SegmentCabinStruct&,
00068                         const FareFamilyStruct&);
00069       
00075     void addFareFamily (const SegmentCabinStruct&, const FareFamilyStruct&);
00076       
00078     FlightDateStruct ();
00079 
00080     // Attributes
00081     stdair::AirlineCode_T _airlineCode;
00082     stdair::FlightNumber_T _flightNumber;
00083     stdair::Date_T _flightDate;
00084     FlightTypeCode _flightTypeCode;
00085     FlightVisibilityCode _flightVisibilityCode;
00086     LegStructList_T _legList;
00087     SegmentStructList_T _segmentList;
00088 
00090     unsigned int _itYear;
00091     unsigned int _itMonth;
00092     unsigned int _itDay;
00093     int _dateOffSet;
00094       
00096     long _itHours;
00097     long _itMinutes;
00098     long _itSeconds;
00099 
00102     AirportList_T _airportList;
00103     AirportOrderedList_T _airportOrderedList;
00104 
00107     bool _legAlreadyDefined;
00108     LegStruct _itLeg;
00109     LegCabinStruct _itLegCabin;
00110     BucketStruct _itBucket;
00111 
00113     bool _areSegmentDefinitionsSpecific;
00114     SegmentStruct _itSegment;
00115     SegmentCabinStruct _itSegmentCabin;
00116     BookingClassStruct _itBookingClass;
00117   };
00118 
00119 }
00120 #endif // __AIRINV_BOM_FLIGHTDATESTRUCT_HPP