feature_callable.h 890 Bytes
#ifndef FEATURE_CALLABLE_H
#define FEATURE_CALLABLE_H

#include <functional>

#include "multithread/callable.h"
#include "Importer/entry.h"
#include "feature.h"
/**
 * @file feature_callable.h
 * @brief Feature_callable file
 * @author Ludovic PLATON
 */

namespace feature{
	/**
	 * @brief The Feature_callable class
	 * @class feature_callable
	 */
	class Feature_callable: public callable::Callable<data::Data_basic*,data::Data_basic*>{
		public:
			virtual data::Data_basic* call(data::Data_basic* a)=0;
	};

	class Feature_creation:public Feature_callable{
		protected:
			virtual feature::Feature *create_feature(data::Data_basic* e)=0;
		public:
			Feature_creation(){}
			~Feature_creation(){}
			data::Data_basic* call(data::Data_basic* a){
				feature::Feature *tmp = this->create_feature(a);
				delete a;
				return tmp;
			}
			void end(){}
	};
}

#endif // FEATURE_CALLABLE_H