Go to the documentation of this file.00001 #ifndef __AIRSCHED_BOM_SEGMENTPATHPERIODKEY_HPP
00002 #define __AIRSCHED_BOM_SEGMENTPATHPERIODKEY_HPP
00003
00004
00005
00006
00007
00008 #include <iosfwd>
00009 #include <string>
00010
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
00016 #include <airsched/bom/SegmentPathPeriodTypes.hpp>
00017
00019 namespace boost {
00020 namespace serialization {
00021 class access;
00022 }
00023 }
00024
00025 namespace AIRSCHED {
00026
00033 struct SegmentPathPeriodKey : public stdair::KeyAbstract {
00034 friend class boost::serialization::access;
00035
00036
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
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
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
00138 const bool isValid () const {
00139 return _period.isValid ();
00140 }
00141
00142
00143 public:
00144
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
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
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 // __AIRSCHED_BOM_SEGMENTPATHPERIODKEY_HPP