00001 // Emacs -*- C++ -*- 00002 #ifndef ANAPHE_AIDA_EVALUATOR 00003 #define ANAPHE_AIDA_EVALUATOR 1 00004 00005 #include "AIDA/IEvaluator.h" 00006 #include "IEvaluatorExpressionBase.h" 00007 #include <memory> 00008 00009 namespace Anaphe { 00010 namespace AIDA_Tuple_native { 00011 class CompiledExpressionManager; 00012 00013 class AIDA_Evaluator : virtual public AIDA::IEvaluator 00014 { 00015 public: 00016 // Constructor 00017 AIDA_Evaluator( CompiledExpressionManager& manager, 00018 const std::string& expression ); 00019 // Destructor 00020 ~AIDA_Evaluator(){}; 00021 00022 // Methods inherited from AIDA/IEvaluator 00023 bool initialize( AIDA::ITuple & tuple ); 00024 double evaluateDouble() const; 00025 const std::string & expression() const; 00026 00027 private: 00028 CompiledExpressionManager& m_manager; 00029 std::string m_expression; 00030 std::auto_ptr<IEvaluatorExpressionBase> m_evaluator; 00031 }; 00032 00033 } 00034 } 00035 00036 #endif /* ifndef ANAPHE_AIDA_EVALUATOR */