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

AIDA_TupleFactoryProvider.cpp

Go to the documentation of this file.
00001 #include "AIDA_TupleFactoryProvider.h"
00002 #include "AIDA_DevTupleFactory.h"
00003 #include "AIDA_DevFilterFactory.h"
00004 #include "AIDA_DevEvaluatorFactory.h"
00005 #include "AIDA_TupleFactory.h"
00006 #include "AIDA_Dev/IDevAnalysisFactory.h"
00007 
00008 static Anaphe::AIDA_Tuple_native::AIDA_TupleFactoryProvider factory;
00009 
00010 namespace Anaphe {
00011   namespace AIDA_Tuple_native {
00012     class Initializer {
00013     public:
00014       Initializer() {
00015         AIDA::Dev::IDevAnalysisFactory* af = dynamic_cast<AIDA::Dev::IDevAnalysisFactory*>( AIDA_createAnalysisFactory() );
00016         if ( af ) {
00017           af->registerTupleFactoryProvider( static_cast<AIDA::Dev::ITupleFactoryProvider*>( &factory ) );
00018           delete af;
00019         }
00020       }
00021       ~Initializer() {}
00022     };
00023   }
00024 }
00025 
00026 static Anaphe::AIDA_Tuple_native::Initializer myInitializer;
00027 
00028 
00029 Anaphe::AIDA_Tuple_native::AIDA_TupleFactoryProvider::AIDA_TupleFactoryProvider():
00030   m_tupleFactory( new Anaphe::AIDA_Tuple_native::AIDA_DevTupleFactory ),
00031   m_filterFactory( new Anaphe::AIDA_Tuple_native::AIDA_DevFilterFactory ),
00032   m_evaluatorFactory( new Anaphe::AIDA_Tuple_native::AIDA_DevEvaluatorFactory )
00033 {}
00034 
00035 
00036 Anaphe::AIDA_Tuple_native::AIDA_TupleFactoryProvider::~AIDA_TupleFactoryProvider()
00037 {
00038   if ( m_tupleFactory ) delete m_tupleFactory;
00039   if ( m_filterFactory ) delete m_filterFactory;
00040   if ( m_evaluatorFactory ) delete m_evaluatorFactory;
00041 }
00042 
00043 
00044 AIDA::ITupleFactory*
00045 Anaphe::AIDA_Tuple_native::AIDA_TupleFactoryProvider::createFactory( AIDA::Dev::IDevTree& tree )
00046 {
00047   return new AIDA_TupleFactory( tree, *m_tupleFactory, *m_filterFactory, *m_evaluatorFactory );
00048 }
00049 
00050 
00051 AIDA::Dev::IDevTupleFactory&
00052 Anaphe::AIDA_Tuple_native::AIDA_TupleFactoryProvider::devTupleFactory()
00053 {
00054   return *m_tupleFactory;
00055 }

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