117 lines
1.5 KiB
C++
117 lines
1.5 KiB
C++
|
|
|
|
#ifndef __timeInterval_hpp__
|
|
#define __timeInterval_hpp__
|
|
|
|
#include "types.hpp"
|
|
#include "pFlowMacros.hpp"
|
|
|
|
namespace pFlow
|
|
{
|
|
|
|
// forward
|
|
class dictionary;
|
|
|
|
|
|
class timeInterval
|
|
{
|
|
protected:
|
|
real startTime_ = 0;
|
|
|
|
real endTime_ = largeValue;
|
|
|
|
real time_=0;
|
|
|
|
bool isInInterval_ = true;
|
|
|
|
public:
|
|
|
|
INLINE_FUNCTION_HD
|
|
timeInterval(){}
|
|
|
|
INLINE_FUNCTION_HD
|
|
timeInterval(const timeInterval&) = default;
|
|
|
|
INLINE_FUNCTION_HD
|
|
timeInterval& operator=(const timeInterval&) = default;
|
|
|
|
FUNCTION_H
|
|
timeInterval(const dictionary& dict);
|
|
|
|
INLINE_FUNCTION_HD
|
|
~timeInterval() = default;
|
|
|
|
INLINE_FUNCTION_HD
|
|
auto startTime()const
|
|
{
|
|
return startTime_;
|
|
}
|
|
|
|
INLINE_FUNCTION_HD
|
|
auto endTime()const
|
|
{
|
|
return endTime_;
|
|
}
|
|
|
|
INLINE_FUNCTION_HD
|
|
auto time()const
|
|
{
|
|
return time_;
|
|
}
|
|
|
|
INLINE_FUNCTION_HD
|
|
void setTime(real t)
|
|
{
|
|
isInInterval_ = inTimeRange(t);
|
|
time_ = t;
|
|
}
|
|
|
|
INLINE_FUNCTION_HD
|
|
bool inTimeRange(real t)const
|
|
{
|
|
return t>= startTime_ && t<= endTime_;
|
|
}
|
|
|
|
INLINE_FUNCTION_HD
|
|
bool inTimeRange()const
|
|
{
|
|
return isInInterval_;
|
|
}
|
|
|
|
// - IO operation
|
|
FUNCTION_H
|
|
bool read(const dictionary& dict);
|
|
|
|
FUNCTION_H
|
|
bool write(dictionary& dict) const;
|
|
|
|
FUNCTION_H
|
|
bool read(iIstream& is);
|
|
|
|
FUNCTION_H
|
|
bool write(iOstream& os)const;
|
|
};
|
|
|
|
|
|
inline iOstream& operator <<(iOstream& os, const timeInterval& obj)
|
|
{
|
|
if(!obj.write(os))
|
|
{
|
|
fatalExit;
|
|
}
|
|
return os;
|
|
}
|
|
|
|
inline iIstream& operator >>(iIstream& is, timeInterval& obj)
|
|
{
|
|
if( !obj.read(is) )
|
|
{
|
|
fatalExit;
|
|
}
|
|
return is;
|
|
}
|
|
|
|
}
|
|
|
|
#endif
|