Listing 15: solspcft.h

/* $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