/* $Header: /Space/src_repository/ets/grande/vgfeat/
solspcft.h,v 1.2 1994/04/11 17:02:02 rmartin Exp $ */
#ifndef FEATURES_SOLUTION_SPACE_FEATURE_H
#define FEATURES_SOLUTION_SPACE_FEATURE_H
#include "scoring/eval.h"
template <class T> class Query;
class SolutionSpace;
//--------------------------------------------
// Name
// SolutionSpaceFeature
//
// Description
// This class is a base class which provides a loop which
// scans through the set of solution spaces and then
// finds all the solution spaces that match it. Pure virtual
// functions are provided for when a solution space are found.
//
class SolutionSpaceFeature : public
Evaluator
{
public:
SolutionSpaceFeature(Query<SolutionSpace*>&);
virtual ~SolutionSpaceFeature();
virtual Evaluator::Score DoEval();
virtual void NewSolutionSpace(const SolutionSpace&) = 0;
virtual Evaluator::Score GetScore() = 0;
private:
SolutionSpaceFeature(const SolutionSpaceFeature&);
SolutionSpaceFeature&
operator= (const SolutionSpaceFeature&);
Query<SolutionSpace*>& itsSolutionSpaceQuery;
};
#endif