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

AIDA_AnalysisFactory.h

Go to the documentation of this file.
00001 // Emacs -*- C++ -*-
00002 #ifndef ANAPHE_ANALYSISFACTORY
00003 #define ANAPHE_ANALYSISFACTORY 1
00004 
00005 #include <string>
00006 #include "AIDA_Dev/IDevAnalysisFactory.h"
00007 
00008 namespace AIDA {
00009   class ITupleFactory;
00010   class ITreeFactory;
00011   class IHistogramFactory;
00012   class IDataPointSetFactory;
00013   class IFunctionFactory;
00014   class ITree;
00015   class IPlotterFactory;
00016   class IFitFactory;
00017 
00018   namespace Dev {
00019     class IStoreFactory;
00020     class IHistogramFactoryProvider;
00021     class IDataPointSetFactoryProvider;
00022     class ITreeFactoryProvider;
00023     class ITupleFactoryProvider;
00024   }
00025 }
00026 
00027 namespace Anaphe {
00028   namespace AIDA_AnalysisFactory_native {
00029 
00031 
00032 class AIDA_AnalysisFactory : public virtual AIDA::Dev::IDevAnalysisFactory
00033 {
00034 public:
00036   AIDA_AnalysisFactory();
00038   ~AIDA_AnalysisFactory();
00039 
00041   bool registerStoreFactory( AIDA::Dev::IStoreFactory* factory,
00042                              const std::string & storeType );
00043   AIDA::Dev::IStoreFactory* storeFactory( const std::string & storeType );
00044   bool registerAnnotationFactory( AIDA::Dev::IAnnotationFactory* factory );
00045   AIDA::Dev::IAnnotationFactory* annotationFactory();
00046   bool registerHistogramFactoryProvider( AIDA::Dev::IHistogramFactoryProvider* provider );
00047   AIDA::Dev::IHistogramFactoryProvider* histogramFactoryProvider();
00048   bool registerDataPointSetFactoryProvider( AIDA::Dev::IDataPointSetFactoryProvider* provider );
00049   AIDA::Dev::IDataPointSetFactoryProvider* dataPointSetFactoryProvider();
00050   bool registerTreeFactoryProvider( AIDA::Dev::ITreeFactoryProvider* provider );
00051   AIDA::Dev::ITreeFactoryProvider* treeFactoryProvider();
00052   bool registerTupleFactoryProvider( AIDA::Dev::ITupleFactoryProvider* provider );
00053   AIDA::Dev::ITupleFactoryProvider* tupleFactoryProvider();
00054   bool registerFunctionFactoryProvider( AIDA::Dev::IFunctionFactoryProvider* provider );
00055   AIDA::Dev::IFunctionFactoryProvider* functionFactoryProvider();
00056   bool registerFitFactoryProvider( AIDA::Dev::IFitFactoryProvider* provider );
00057   AIDA::Dev::IFitFactoryProvider* fitFactoryProvider();
00058   bool registerPlotterFactoryProvider( AIDA::Dev::IPlotterFactoryProvider* provider );
00059   AIDA::Dev::IPlotterFactoryProvider* plotterFactoryProvider();
00060 
00062   AIDA::ITreeFactory * createTreeFactory();
00063   AIDA::IHistogramFactory * createHistogramFactory( AIDA::ITree& tree );
00064   AIDA::IDataPointSetFactory * createDataPointSetFactory( AIDA::ITree& tree );
00065   AIDA::ITupleFactory * createTupleFactory( AIDA::ITree& tree );
00066   AIDA::IFunctionFactory * createFunctionFactory( AIDA::ITree& tree );
00067   AIDA::IPlotterFactory * createPlotterFactory( int argc = 0,
00068                                                 char** args = 0 );
00069   AIDA::IFitFactory * createFitFactory();
00070 
00071 private:
00072   static bool firstInstance;
00073   static std::string* m_storeFactoryTypes;
00074   static AIDA::Dev::IStoreFactory** m_storeFactories;
00075   static unsigned int m_numberOfStoreTypes;
00076   static AIDA::Dev::IAnnotationFactory* m_annotationFactory;
00077   static AIDA::Dev::IHistogramFactoryProvider* m_histogramFactoryProvider;
00078   static AIDA::Dev::IDataPointSetFactoryProvider* m_dataPointSetFactoryProvider;
00079   static AIDA::Dev::ITreeFactoryProvider* m_treeFactoryProvider;
00080   static AIDA::Dev::ITupleFactoryProvider* m_tupleFactoryProvider;
00081   static AIDA::Dev::IFunctionFactoryProvider* m_functionFactoryProvider;
00082   static AIDA::Dev::IFitFactoryProvider* m_fitFactoryProvider;
00083   static AIDA::Dev::IPlotterFactoryProvider* m_plotterFactoryProvider;
00084 };
00085 
00086   }
00087 }
00088 
00089 #endif /* ifndef ANAPHE_ANALYSISFACTORY */

Generated on Tue Nov 19 12:32:03 2002 for AIDA_AnalysisFactory_native by doxygen1.2.16