/**
 * \file    Mimic_Enumeration.hpp
 * \author  Silvan Murer
 * \date    02 August 2022
 *
 * \brief   Enumeration class of genSDK GF implementation, based on Mimic_Node
 */

#ifndef INC_FEATURES_MIMIC_ENUMERATION
#define INC_FEATURES_MIMIC_ENUMERATION

#include "features/Mimic_Node.hpp"

#include <memory>
#include <string>

namespace mimic {

class Mimic_Enumeration : public Mimic_Node
{
private:

public:
	Mimic_Enumeration();
	Mimic_Enumeration(GenApi_3_4::INode* node);
	virtual ~Mimic_Enumeration();

	virtual std::variant<int64_t, double, bool, std::string> getVariant(std::string name);
	virtual void setVariant(std::string name, std::variant<int64_t, double, bool, std::string> value);

	std::string getValue();
	void setValue(std::string value);

	// ToDo: May implement a EnumEntry class and return a list of it.
	std::vector<std::string> getListOfValidValue();
};

} /* namespace mimic */

#endif
