$treeview $search $mathjax
00001 #ifndef __AIRTSP_BOM_SEGMENTPATHPERIODKEY_HPP 00002 #define __AIRTSP_BOM_SEGMENTPATHPERIODKEY_HPP 00003 00004 // ////////////////////////////////////////////////////////////////////// 00005 // Import section 00006 // ////////////////////////////////////////////////////////////////////// 00007 // STL 00008 #include <iosfwd> 00009 #include <string> 00010 // StdAir 00011 #include <stdair/stdair_basic_types.hpp> 00012 #include <stdair/stdair_date_time_types.hpp> 00013 #include <stdair/bom/KeyAbstract.hpp> 00014 #include <stdair/bom/PeriodStruct.hpp> 00015 // AirTSP 00016 #include <airtsp/bom/SegmentPathPeriodTypes.hpp> 00017 00019 namespace boost { 00020 namespace serialization { 00021 class access; 00022 } 00023 } 00024 00025 namespace AIRTSP { 00026 00033 struct SegmentPathPeriodKey : public stdair::KeyAbstract { 00034 friend class boost::serialization::access; 00035 00036 // /////////// Constructors and destructors /////////// 00037 public: 00041 SegmentPathPeriodKey (const stdair::PeriodStruct&, 00042 const stdair::Duration_T& iBoardingTime, 00043 const stdair::Duration_T& iElapsed, 00044 const DateOffsetList_T&, 00045 const stdair::NbOfAirlines_T&); 00046 00050 SegmentPathPeriodKey(); 00051 00055 SegmentPathPeriodKey (const SegmentPathPeriodKey&); 00056 00060 ~SegmentPathPeriodKey(); 00061 00062 00063 public: 00064 // /////////// Getters ////////// 00068 const stdair::PeriodStruct& getPeriod() const { 00069 return _period; 00070 } 00071 00075 const DateOffsetList_T& getBoardingDateOffsetList() const { 00076 return _boardingDateOffsetList; 00077 } 00078 00082 const stdair::NbOfSegments_T getNbOfSegments() const { 00083 return _boardingDateOffsetList.size(); 00084 } 00085 00089 const stdair::NbOfAirlines_T& getNbOfAirlines() const { 00090 return _nbOfAirlines; 00091 } 00092 00096 const stdair::Duration_T& getElapsedTime() const { 00097 return _elapsed; 00098 } 00099 00103 const stdair::Duration_T& getBoardingTime() const { 00104 return _boardingTime; 00105 } 00106 00107 00108 public: 00109 // /////////// Setters ////////// 00111 void setPeriod (const stdair::PeriodStruct& iPeriod) { 00112 _period = iPeriod; 00113 } 00114 00115 void setBoardingDateOffsetList (const DateOffsetList_T& iList) { 00116 _boardingDateOffsetList = iList; 00117 } 00118 00120 void setNbOfAirlines (const stdair::NbOfAirlines_T& iNbOfAirlines) { 00121 _nbOfAirlines = iNbOfAirlines; 00122 } 00123 00125 void setElapsedTime (const stdair::Duration_T& iElapsed) { 00126 _elapsed = iElapsed; 00127 } 00128 00130 void setBoardingTime (const stdair::Duration_T& iBoardingTime) { 00131 _boardingTime = iBoardingTime; 00132 } 00133 00134 00135 public: 00136 // /////////// Business methods //////////// 00138 const bool isValid () const { 00139 return _period.isValid (); 00140 } 00141 00142 00143 public: 00144 // /////////// Display support methods ///////// 00150 void toStream (std::ostream& ioOut) const; 00151 00157 void fromStream (std::istream& ioIn); 00158 00168 const std::string toString() const; 00169 00170 00171 public: 00172 // /////////// (Boost) Serialisation support methods ///////// 00176 template<class Archive> 00177 void serialize (Archive& ar, const unsigned int iFileVersion); 00178 00179 private: 00184 void serialisationImplementationExport() const; 00185 void serialisationImplementationImport(); 00186 00187 00188 private: 00189 // ///////////////// Attributes /////////////// 00193 stdair::PeriodStruct _period; 00194 00198 stdair::Duration_T _boardingTime; 00199 00203 stdair::Duration_T _elapsed; 00204 00209 DateOffsetList_T _boardingDateOffsetList; 00210 00214 stdair::NbOfAirlines_T _nbOfAirlines; 00215 }; 00216 00217 } 00218 #endif // __AIRTSP_BOM_SEGMENTPATHPERIODKEY_HPP