00001 #include "MemoryDataPointSetCopier.h" 00002 #include "AIDA_Dev/IDevAnalysisFactory.h" 00003 #include "AIDA_Dev/IDataPointSetFactoryProvider.h" 00004 #include "AIDA_Dev/IDevDataPointSetFactory.h" 00005 #include "AIDA_Dev/IDevDataPointSet.h" 00006 #include <typeinfo> 00007 00008 00009 Anaphe::AIDA_MemoryStore::MemoryDataPointSetCopier::MemoryDataPointSetCopier( AIDA::Dev::IDevAnalysisFactory& af ): 00010 m_af( af ) 00011 {} 00012 00013 00014 AIDA::Dev::IDevManagedObject* 00015 Anaphe::AIDA_MemoryStore::MemoryDataPointSetCopier::createCopy( const AIDA::IManagedObject& dataObject ) 00016 { 00017 AIDA::Dev::IDataPointSetFactoryProvider* hfp = m_af.dataPointSetFactoryProvider(); 00018 AIDA::Dev::IDevDataPointSetFactory& factory = hfp->devDataPointSetFactory(); 00019 00020 try { 00021 return factory.createCopy( dynamic_cast< const AIDA::IDataPointSet& >( dataObject ) ); 00022 } 00023 catch( std::bad_cast ) { 00024 } 00025 return 0; 00026 }