ParamProperties.hh 1.61 KB
/*
 * ParamProperties.hh
 *
 *  Created on: Oct 1, 2014
 *      Author: m.mazel
 */

#ifndef PARAMPROPERTIES_HH_
#define PARAMPROPERTIES_HH_

#include <string>
#include <vector>

#include "OutputFormatTime.hh"

namespace AMDA {
namespace ParamOutputImpl {
namespace Download {

typedef std::vector<std::string> ParamIndexDefList;
typedef std::vector<std::string> ParamCalibrationInfoList;

/**
 * @class ParamProperties
 * @brief Parameter properties for a download request.
 * @details
 */
class ParamProperties {
public:
	ParamProperties();
	virtual ~ParamProperties();

	//Original parameter id is the parameter id defined in the request
	const std::string& getOriginalId() const;
	void setOriginalId(const std::string& id);

	//Output parameter id is the parameter id used for the output
	//(originalId can be different to outputId when a resampling is needed by the request)
	//This id is set during the createParameters step of the download output
	const std::string& getOutputId() const;
	void setOutputId(const std::string& id);

	ParamIndexDefList& getIndexDefList();
	void addIndexDef (std::string index);
	ParamCalibrationInfoList& getCalibrationInfoList();
	void addCalibrationInfo (const std::string &calibrationInfo);

private:
	/**
	 * parameter original id
	 */
	std::string	_originalId;

	/**
	 * parameter output id
	 */
	std::string	_outputId;

	/**
	 * Parameter index definition list
	 */
	ParamIndexDefList	_indexDefList;

	/**
	 * Parameter calibration info list
	 */
	ParamCalibrationInfoList	_calibrationInfoList;
};

} // namespace Download
} // namespace ParamOutputImpl
} // namespace AMDA

#endif /* PARAMPROPERTIES_HH_ */