CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_4_5_patch3/src/DetectorDescription/ExprAlgo/interface/ExprEvalInterface.h

Go to the documentation of this file.
00001 #ifndef ExprEvalInterface_h
00002 #define ExprEvalInterface_h
00003 
00004 #include <string>
00005 //#include <vector>
00006 //#include <utility>
00007 
00009 class ExprEvalInterface
00010 {
00011 public:
00012   //ExprEvalInterface();
00013   virtual ~ExprEvalInterface();
00014 
00016   virtual 
00017   void set(const std::string & ns, //< current namespace
00018            const std::string & name, //< name of variable inside current namespace
00019            const std::string & valueExpr
00020            ) = 0;
00021   
00023   virtual 
00024   double eval(const std::string & ns, //< current namespace
00025               const std::string & expr //< expression to be evaluated inside current namespace
00026              ) = 0;
00027   
00029   virtual
00030   bool isDefined(const std::string & ns, //< current namespace
00031                  const std::string & name //< name of the variable inside current namespace
00032                  ) = 0;
00033 
00035 
00036   //virtual size_t dictionary(std::vector<pair<std::string,std::string>,double> & result) const; 
00037   
00039   virtual
00040   void clear() = 0;  
00041 };
00042 
00043 #endif