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

#ifndef INC_FEATURES_MIMIC_COMMAND
#define INC_FEATURES_MIMIC_COMMAND

#include "features/Mimic_Node.hpp"

#include <memory>
#include <string>

namespace mimic {

class Mimic_Command : public Mimic_Node
{
private:

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

	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);

	void execute();
	bool isDone();
};

} /* namespace mimic */

#endif
