/* * File: InternalFields_.hh * Author: Furkan - AKKA I&S * * Created on July 11, 2022, 4:14 PM */ #ifndef TIMESTAMP_OP_HH #define TIMESTAMP_OP_HH #include "Parameter.hh" #include "ParamData.hh" #include "DataTypeMath.hh" #include "Operation.hh" #include using namespace std; namespace AMDA { namespace Parameters { template class Timestamp_op : public Operation { public: Timestamp_op(Process &pProcess, ParamDataType ¶mInput, bool isTimeFrom, double timeFrom) : Operation(pProcess), _paramInput(paramInput), _isTimeFrom(isTimeFrom), _timeFrom(timeFrom), _paramOutput(new ParamDataScalaireDouble()) { _paramDataOutput = _paramOutput; } virtual ~Timestamp_op() { } void write(ParamDataIndexInfo &pParamDataIndexInfo) { for (unsigned int _index = pParamDataIndexInfo._startIndex; _index < pParamDataIndexInfo._startIndex + pParamDataIndexInfo._nbDataToProcess; ++_index) { double crtTime = _paramInput.getTime(_index); _paramOutput->pushTime(crtTime); if (_isTimeFrom){ if(_timeFrom > 0 && _timeFrom <= crtTime){ crtTime -= _timeFrom; } } _paramOutput->push(crtTime); } } protected: ParamDataType &_paramInput; bool _isTimeFrom; double _timeFrom; ParamDataScalaireDouble *_paramOutput; }; } } #endif /* TIMESTAMP_OP_HH */