/* * 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 speasy xml */ const std::string& getParamId() const { return _paramId; } /* * @brief Set param id in speasy xml */ 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(); /* * @brief Get param type in speasy xml */ SpeasyProxyParamType getType() { return _type; } /* * @brief Set param type in speasy xml */ void setType(SpeasyProxyParamType type) { _type = type; } /* * @brief Get param dim1 size in speasy xml */ int getDim1(void) { return _dim1; } /* * @brief Set param dim1 size in speasy xml */ void setDim1(int size) { _dim1 = size; } /* * @brief Get param dim2 size in speasy xml */ int getDim2(void) { return _dim2; } /* * @brief Set param dim2 size in speasy xml */ void setDim2(int size) { _dim2 = size; } /* * @brief Get param min sampling in speasy xml */ double getMinSampling(void) { return _minSampling; } /* * @brief Set param min sampling in speasy xml */ void setMinSampling(double minSampling) { _minSampling = minSampling; } // /* // * @brief Get param max sampling in speasy xml // */ // double getMaxSampling(void) // { // return _maxSampling; // } // /* // * @brief Set param max sampling in speasy xml // */ // void setMaxSampling(double maxSampling) // { // _maxSampling = maxSampling; // } /* * @brief Init */ TimeStamp init(); std::string getURLTime(double time); std::string getSpeasyProxyLink(); /** * @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; /* * @brief Local Param type */ SpeasyProxyParamType _type; /* * @brief Local Param dim1 size */ int _dim1; /* * @brief Local Param dim2 size */ int _dim2; /* * @brief Local Param min sampling */ double _minSampling; // /* // * @brief Local Param max sampling // */ // double _maxSampling; SpeasyProxyContainerType _container; /* * @brief Time of xml file or 0 */ TimeStamp _timeStamp; TimeIntervalList::iterator _currentInterval; /* * @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_ */