$treeview $search $mathjax
StdAir Logo  1.00.2
$projectbrief
$projectbrief
$searchbox

stdair/bom/TimePeriod.cpp

Go to the documentation of this file.
00001 // //////////////////////////////////////////////////////////////////////
00002 // Import section
00003 // //////////////////////////////////////////////////////////////////////
00004 // STL
00005 #include <cassert>
00006 #include <sstream>
00007 // StdAir
00008 #include <stdair/basic/BasConst_General.hpp>
00009 #include <stdair/service/Logger.hpp>
00010 #include <stdair/bom/TimePeriod.hpp>
00011 
00012 namespace stdair {
00013 
00014   // ////////////////////////////////////////////////////////////////////
00015   TimePeriod::TimePeriod()
00016     : _key (DEFAULT_EPSILON_DURATION, DEFAULT_EPSILON_DURATION),
00017       _parent (NULL)  {
00018     // That constructor is used by the serialisation process
00019   }
00020 
00021   // ////////////////////////////////////////////////////////////////////
00022   TimePeriod::TimePeriod (const TimePeriod& iTimePeriod)
00023     : _key (iTimePeriod.getKey()), _parent (NULL)  {
00024   }
00025 
00026   // ////////////////////////////////////////////////////////////////////
00027   TimePeriod::TimePeriod (const Key_T& iKey)
00028     : _key (iKey), _parent (NULL)  {
00029   }
00030 
00031   // ////////////////////////////////////////////////////////////////////
00032   TimePeriod::~TimePeriod () {
00033   }
00034   
00035   // ////////////////////////////////////////////////////////////////////
00036   std::string TimePeriod::toString() const {
00037     std::ostringstream oStr;
00038     oStr << describeKey();
00039     return oStr.str();
00040   }
00041   
00042   // ////////////////////////////////////////////////////////////////////
00043   bool TimePeriod::
00044   isDepartureTimeValid (const Time_T& iFlightTime) const {
00045 
00046     const Time_T& lTimeRangeStart = getTimeRangeStart();
00047     const Time_T& lTimeRangeEnd = getTimeRangeEnd();
00048     
00049     // Check if the departure time is within the time range.
00050     if (lTimeRangeStart >= iFlightTime) {
00051       // DEBUG
00052       STDAIR_LOG_DEBUG ("Time range begin: " << lTimeRangeStart << ", "
00053                         << "time: " << iFlightTime);
00054       return false;
00055     }
00056     if (lTimeRangeEnd <= iFlightTime) {
00057       // DEBUG
00058       STDAIR_LOG_DEBUG ("Time range end: " << lTimeRangeEnd << ", "
00059                         << "time: " << iFlightTime);
00060       return false;
00061     }
00062 
00063     return true;
00064   }
00065   
00066 }
00067