Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

CompiledExpressionManager.h

Go to the documentation of this file.
00001 // Emacs -*- C++ -*-
00002 #ifndef ANAPHE_COMPILED_EXPRESSION_MANAGER
00003 #define ANAPHE_COMPILED_EXPRESSION_MANAGER 1
00004 
00005 #include "IFilterExpressionBase.h"
00006 #include "IEvaluatorExpressionBase.h"
00007 #include <memory>
00008 #include <map>
00009 #include <set>
00010 
00011 namespace Anaphe {
00012   namespace AIDA_Tuple_native {
00013     class ExpressionParser;
00014     class SymbolManager;
00015 
00016 class CompiledExpressionManager {
00017 public:
00019   CompiledExpressionManager();
00021   ~CompiledExpressionManager();
00022 
00024   std::auto_ptr<IFilterExpressionBase> createFilterExpression( const std::string& expression,
00025                                                                const std::map<std::string, std::string>& variableTypes,
00026                                                                std::set<std::string>& variablesUsed );
00027 
00029   std::auto_ptr<IEvaluatorExpressionBase> createEvaluatorExpression( const std::string& expression,
00030                                                                      const std::map<std::string, std::string>& variableTypes,
00031                                                                      std::set<std::string>& variablesUsed );
00032 
00034   static const int defaultCacheSizeForFilterObjects = 100;
00035   static const int defaultCacheSizeForEvaluatorObjects = 100;
00036 
00038   int cacheSizeForFilterObjects();
00039   int cacheSizeForEvaluatorObjects();
00040   void setCacheSizeForFilterObjects( int cacheSize );
00041   void setCacheSizeForEvaluatorObjects( int cacheSize );
00042 
00043 private:
00044   int                 m_cacheSizeForFilterObjects;
00045   int                 m_cacheSizeForEvaluatorObjects;
00046   SymbolManager*      m_symbolManager;
00047   ExpressionParser*   m_expressionParser;
00048 
00049   std::map<std::string, IFilterExpressionBaseFactory*>    m_filterFactories;
00050   std::map<std::string, int>                              m_filterFactoryUsage;
00051   std::map<std::string, std::set<std::string> >           m_filterFactoryVariables;
00052   std::map<std::string, IEvaluatorExpressionBaseFactory*> m_evaluatorFactories;
00053   std::map<std::string, int>                              m_evaluatorFactoryUsage;
00054   std::map<std::string, std::set<std::string> >           m_evaluatorFactoryVariables;
00055 };
00056 
00057   }
00058 }
00059 
00060 #endif /* ifndef ANAPHE_EXPRESSION_PARSER */

Generated on Tue Feb 18 17:51:19 2003 for AIDA_Tuple_native by doxygen1.2.16