/* * ParamGetLocalFile.hh * * Created on: 21 nov. 2014 * Author: AKKA */ #ifndef PARAMGETLOCALFILE_HH_ #define PARAMGETLOCALFILE_HH_ #include #include #include #include "ParamGet.hh" #include "TimeStamp.hh" #include "VirtualInstrument.hh" #include "LocalParamData.hh" #include "Pusher.hh" using namespace AMDA::Parameters; namespace AMDA { namespace LocalFileInterface { //used class class ParamData; /** * @class ParamGetLocalFile * @brief It is a DataWriter for a Parameter get from a local file. */ class ParamGetLocalFile: public ParamGet_CRTP { public: typedef std::set InfoRequestList; /* * @brief Constructor */ ParamGetLocalFile(Parameter ¶meter); ParamGetLocalFile(const ParamGetLocalFile &pParamGetLocalFile, Parameter ¶meter); /* * @brief Destructor */ virtual ~ParamGetLocalFile(); /* * @brief Get param id in local base */ const std::string& getParamId() const { return _paramId; } /* * @brief Set param id in local base */ void setParamId(const char* paramId) { _paramId = paramId; } /* * @brief Get param type in local base */ LocalParamType getParamType() { return _paramType; } /* * @brief Set param type in local base */ void setParamType(LocalParamType type) { _paramType = type; } /* * @brief Get param dim1 size in local base */ int getParamDim1Size(void) { return _paramDim1Size; } /* * @brief Set param dim1 size in local base */ void setParamDim1Size(int size) { _paramDim1Size = size; } /* * @brief Get param dim2 size in local base */ int getParamDim2Size(void) { return _paramDim2Size; } /* * @brief Set param dim2 size in local base */ void setParamDim2Size(int size) { _paramDim2Size = size; } /* * @brief Get param min sampling in local base */ double getParamMinSampling(void) { return _paramMinSampling; } /* * @brief Set param min sampling in local base */ void setParamMinSampling(double minSampling) { _paramMinSampling = minSampling; } /* * @brief Get param max sampling in local base */ double getParamMaxSampling(void) { return _paramMaxSampling; } /* * @brief Set param max sampling in local base */ void setParamMaxSampling(double maxSampling) { _paramMaxSampling = maxSampling; } /* * @brief Get time format in local base */ LocalTimeFormat getTimeFormat() { return _timeFormat; } /* * @brief Set time format in local base */ void setTimeFormat(LocalTimeFormat timeFormat) { _timeFormat = timeFormat; } /** * @brief add a calib info */ void createInfoRequest(const char* pParamInfo) { _infoRequestList.insert(pParamInfo); } /* * @brief Get Virtual Instrument Id in local base */ const std::string& getVIId() const { return _viId; } /* * @brief Set Virtual Instrument Id in local base */ void setVIId(const char* viId) { _viId = viId; } /** * @overload DataWriter::write - Write data in dataParam and return the number of data writed. */ virtual unsigned int write(); /* * @overload DataWriter::getMinSampling */ virtual double getMinSampling(); /* * @brief Init */ TimeStamp init(); /** * @overload DataWriter::updateInfo update parameter info in relation to the ParamGet */ virtual void updateInfo(Parameter & parameter); protected: /* * @brief Create _paramData */ bool createParamData(void); /* * @brief Local Param Id */ std::string _paramId; /* * @brief Local Param type */ LocalParamType _paramType; /* * @brief Local Param dim1 size */ int _paramDim1Size; /* * @brief Local Param dim2 size */ int _paramDim2Size; /* * @brief Local Param min sampling */ double _paramMinSampling; /* * @brief Local Param max sampling */ double _paramMaxSampling; /* * @brief Time format for the local param */ LocalTimeFormat _timeFormat; /* * @brief List of calib info */ InfoRequestList _infoRequestList; /* * @brief Local Param fill value */ double _fillValue; /* * @brief Local VI Id */ std::string _viId; /* * @brief Time of xml file or 0 */ TimeStamp _timeStamp; /* * @brief Shared pointer to the virtual instrument */ VirtualInstrumentSPtr _vi; /* * @brief Data pusher */ PusherBase *_pusher; /* * @brief Parameter data flow */ ParamFlowSPtr _paramFlow; /* * @brief Get calib info */ void getCalibInfo(); }; typedef boost::shared_ptr ParamGetLocalFileSPtr; } /* namespace LocalFileInterface */ } /* namespace AMDA */ #endif /* PARAMGETLOCALFILE_HH_ */