00001
00002 #ifndef ANAPHE_AIDA_TUPLEFACTORY_H
00003 #define ANAPHE_AIDA_TUPLEFACTORY_H 1
00004
00005 #include "AIDA/ITupleFactory.h"
00006
00007 namespace AIDA {
00008 namespace Dev {
00009 class IDevTree;
00010 class IDevTupleFactory;
00011 class IDevFilterFactory;
00012 class IDevEvaluatorFactory;
00013 }
00014 }
00015
00016 namespace Anaphe {
00017 namespace AIDA_Tuple_native {
00018
00020
00021 class AIDA_TupleFactory : virtual public AIDA::ITupleFactory
00022 {
00023 public:
00025 AIDA_TupleFactory( AIDA::Dev::IDevTree& tree,
00026 AIDA::Dev::IDevTupleFactory& tupleFactory,
00027 AIDA::Dev::IDevFilterFactory& filterFactory,
00028 AIDA::Dev::IDevEvaluatorFactory& evaluatorrFactory );
00030 ~AIDA_TupleFactory() {};
00031
00032
00033 AIDA::ITuple* create( const std::string& name,
00034 const std::string & title,
00035 const std::vector<std::string>& columnNames,
00036 const std::vector<std::string>& columnType,
00037 const std::string & options = "" );
00038
00039 AIDA::ITuple* create( const std::string& name,
00040 const std::string& title,
00041 const std::string& columns,
00042 const std::string& options = "" );
00043
00044 AIDA::ITuple* createChained( const std::string& name,
00045 const std::string& title,
00046 const std::vector<AIDA::ITuple*>& tupleSet );
00047
00048 AIDA::ITuple* createChained( const std::string& name,
00049 const std::string& title,
00050 const std::vector<std::string>& tupleSet);
00051
00052 AIDA::ITuple* createFiltered( const std::string& name,
00053 AIDA::ITuple& tuple,
00054 AIDA::IFilter& filter );
00055
00056 AIDA::ITuple* createFiltered( const std::string& name,
00057 AIDA::ITuple& tuple,
00058 AIDA::IFilter& filter,
00059 const std::vector<std::string>& columns );
00060
00061 AIDA::IFilter* createFilter( const std::string& expression );
00062
00063 AIDA::IFilter* createFilter( const std::string& expression,
00064 int rowsToProcess,
00065 int startingRow = 0 );
00066
00067 AIDA::IEvaluator* createEvaluator( const std::string& expression );
00068
00069 private:
00070 AIDA::Dev::IDevTree& m_tree;
00071 AIDA::Dev::IDevTupleFactory& m_tupleFactory;
00072 AIDA::Dev::IDevFilterFactory& m_filterFactory;
00073 AIDA::Dev::IDevEvaluatorFactory& m_evaluatorFactory;
00074 };
00075
00076 }
00077 }
00078
00079 #endif