/* * ParamGetSpeasyProxy.hh * * Created on: April 25, 2024 * Author: AKKODIS - Furkan */ #ifndef PARAMGETSPEASYPROXY_HH_ #define PARAMGETSPEASYPROXY_HH_ #include #include #include #include "ParamGet.hh" #include "TimeStamp.hh" #include "Pusher.hh" using namespace AMDA::Parameters; namespace AMDA { namespace SpeasyProxyInterface { //used class class ParamData; /** * @class ParamGetSpeasyProxy * @brief It is a DataWriter for a Parameter get from speasy proxy. */ class ParamGetSpeasyProxy: public ParamGet_CRTP { public: /* * @brief Constructor */ ParamGetSpeasyProxy(Parameter ¶meter); ParamGetSpeasyProxy(const ParamGetSpeasyProxy &pParamGetSpeasyProxy, Parameter ¶meter); /* * @brief Destructor */ virtual ~ParamGetSpeasyProxy(); /* * @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; } /** * @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: std::string readFile(const std::string& filename); std::string download(const std::string& pPath); /* * @brief Local Param Id */ std::string _paramId; SpeasyProxyParamType _type; SpeasyProxyContainerType _container; /* * @brief Time of xml file or 0 */ TimeStamp _timeStamp; /* * @brief Data pusher */ PusherBase *_pusher; }; typedef boost::shared_ptr ParamGetSpeasyProxySPtr; size_t write_data(void *ptr, size_t size, size_t nmemb, FILE *stream); } /* namespace SpeasyProxyInterface */ } /* namespace AMDA */ #endif /* PARAMGETSPEASYPROXY_HH_ */