00001 #include "AIDA_DataPointSetFactoryProvider.h" 00002 #include "AIDA_DevDataPointSetFactory.h" 00003 #include "AIDA_DataPointSetFactory.h" 00004 #include "AIDA_Dev/IDevAnalysisFactory.h" 00005 00006 static Anaphe::AIDA_DataPointSet_native::AIDA_DataPointSetFactoryProvider factory; 00007 00008 namespace Anaphe { 00009 namespace AIDA_DataPointSet_native { 00010 class Initializer { 00011 public: 00012 Initializer() { 00013 AIDA::Dev::IDevAnalysisFactory* af = dynamic_cast<AIDA::Dev::IDevAnalysisFactory*>( AIDA_createAnalysisFactory() ); 00014 if ( af ) { 00015 af->registerDataPointSetFactoryProvider( static_cast<AIDA::Dev::IDataPointSetFactoryProvider*>( &factory ) ); 00016 delete af; 00017 } 00018 } 00019 ~Initializer() {} 00020 }; 00021 } 00022 } 00023 00024 static Anaphe::AIDA_DataPointSet_native::Initializer myInitializer; 00025 00026 00027 Anaphe::AIDA_DataPointSet_native::AIDA_DataPointSetFactoryProvider::AIDA_DataPointSetFactoryProvider(): 00028 m_factory( 0 ) 00029 { 00030 m_factory = new Anaphe::AIDA_DataPointSet_native::AIDA_DevDataPointSetFactory; 00031 } 00032 00033 00034 Anaphe::AIDA_DataPointSet_native::AIDA_DataPointSetFactoryProvider::~AIDA_DataPointSetFactoryProvider() 00035 { 00036 if ( m_factory ) delete m_factory; 00037 } 00038 00039 00040 AIDA::IDataPointSetFactory* 00041 Anaphe::AIDA_DataPointSet_native::AIDA_DataPointSetFactoryProvider::createFactory( AIDA::Dev::IDevTree & tree ) 00042 { 00043 return new Anaphe::AIDA_DataPointSet_native::AIDA_DataPointSetFactory( tree, *m_factory ); 00044 } 00045 00046 00047 AIDA::Dev::IDevDataPointSetFactory& 00048 Anaphe::AIDA_DataPointSet_native::AIDA_DataPointSetFactoryProvider::devDataPointSetFactory() 00049 { 00050 return *m_factory; 00051 }