ParamTableProcess.hh 1.22 KB
/*
 * ParamTableProcess.hh
 *
 *  Created on: Nov 23, 2022
 *      Author: AKKA
 */

#ifndef ParamTableProcess_HH_
#define ParamTableProcess_HH_

#include "MultiParamProcess.hh"
#include "ParamInfo.hh"

namespace AMDA {
namespace Parameters {

/**
 * @class ParamTableProcess_HH_
 * @brief ParamTable to (min, max)
 */
class ParamTableProcess : public AMDA::Parameters::MultiParamProcess_CRTP<ParamTableProcess> {
public:
	/**
	 * @brief Constructor.
	 */
	ParamTableProcess(AMDA::Parameters::Parameter &parameter);
	/**
	 * @brief Copy Constructor.
	 */
	ParamTableProcess(const ParamTableProcess& pProcess, AMDA::Parameters::Parameter &pParameter) ;
	/**
	 * @brief Destructor.
	 */
	~ParamTableProcess();

	// Overload Process methods

	/**
	 * @overload Process::establishConnection()
	 */
	void establishConnection();
	/**
	 * @overload Process::init()
	 */
	AMDA::Parameters::TimeStamp init();

	void setParamTableId(std::string& paramTableId);

	boost::shared_ptr<AMDA::Info::ParamTable> getParamTable();

	void updateInfo(Parameter & parameter);

private:

	boost::shared_ptr<AMDA::Info::ParamTable> _paramTable;
	ParameterSPtr _paramSPtr;
	int _dim;
};

} /* namespace Parameters */
} /* namespace AMDA */
#endif /* ParamTableProcess_HH_ */