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

MemoryHistogramCopier.cpp

Go to the documentation of this file.
00001 #include "MemoryHistogramCopier.h"
00002 #include "AIDA_Dev/IDevAnalysisFactory.h"
00003 #include "AIDA_Dev/IHistogramFactoryProvider.h"
00004 #include "AIDA_Dev/IDevHistogramFactory.h"
00005 #include "AIDA_Dev/IDevHistogram1D.h"
00006 #include "AIDA_Dev/IDevHistogram2D.h"
00007 #include "AIDA_Dev/IDevHistogram3D.h"
00008 #include "AIDA_Dev/IDevCloud1D.h"
00009 #include "AIDA_Dev/IDevCloud2D.h"
00010 #include "AIDA_Dev/IDevCloud3D.h"
00011 #include "AIDA_Dev/IDevProfile1D.h"
00012 #include "AIDA_Dev/IDevProfile2D.h"
00013 #include <typeinfo>
00014 
00015 
00016 Anaphe::AIDA_MemoryStore::MemoryHistogramCopier::MemoryHistogramCopier( AIDA::Dev::IDevAnalysisFactory& af ):
00017   m_af( af )
00018 {}
00019 
00020 
00021 AIDA::Dev::IDevManagedObject*
00022 Anaphe::AIDA_MemoryStore::MemoryHistogramCopier::createCopy( const AIDA::IManagedObject& dataObject,
00023                                                              const std::string& type )
00024 {
00025   AIDA::Dev::IHistogramFactoryProvider* hfp = m_af.histogramFactoryProvider();
00026   AIDA::Dev::IDevHistogramFactory& factory = hfp->devHistogramFactory();
00027 
00028   try {
00029     if ( type == "IHistogram1D" ) {
00030       return factory.createCopy( dynamic_cast< const AIDA::IHistogram1D& >( dataObject ) );
00031     }
00032     if ( type == "IHistogram2D" ) {
00033       return factory.createCopy( dynamic_cast< const AIDA::IHistogram2D& >( dataObject ) );
00034     }
00035     if ( type == "IHistogram3D" ) {
00036       return factory.createCopy( dynamic_cast< const AIDA::IHistogram3D& >( dataObject ) );
00037     }
00038     if ( type == "ICloud1D" ) {
00039       return factory.createCopy( dynamic_cast< const AIDA::ICloud1D& >( dataObject ) );
00040     }
00041     if ( type == "ICloud2D" ) {
00042       return factory.createCopy( dynamic_cast< const AIDA::ICloud2D& >( dataObject ) );
00043     }
00044     if ( type == "ICloud3D" ) {
00045       return factory.createCopy( dynamic_cast< const AIDA::ICloud3D& >( dataObject ) );
00046     }
00047     if ( type == "IProfile1D" ) {
00048       return factory.createCopy( dynamic_cast< const AIDA::IProfile1D& >( dataObject ) );
00049     }
00050     if ( type == "IProfile2D" ) {
00051       return factory.createCopy( dynamic_cast< const AIDA::IProfile2D& >( dataObject ) );
00052     }
00053   }
00054   catch( std::bad_cast ) {
00055   }                   
00056   return 0;
00057 }

Generated on Tue May 20 14:49:33 2003 for AIDA_MemoryStore by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002