00001 // -*- C++ -*- 00002 // 00003 // Package: Core 00004 // Class : FWConfigurableParameterizable 00005 // 00006 // Implementation: 00007 // <Notes on implementation> 00008 // 00009 // Original Author: Chris Jones 00010 // Created: Sun Mar 16 12:01:36 EDT 2008 00011 // $Id: FWConfigurableParameterizable.cc,v 1.5 2012/09/21 09:26:26 eulisse Exp $ 00012 // 00013 00014 // system include files 00015 00016 // user include files 00017 #include "Fireworks/Core/interface/FWConfigurableParameterizable.h" 00018 #include "Fireworks/Core/interface/FWParameterBase.h" 00019 #include "Fireworks/Core/interface/FWConfiguration.h" 00020 #include <cassert> 00021 00022 // 00023 // constants, enums and typedefs 00024 // 00025 00026 // 00027 // static data member definitions 00028 // 00029 00030 // 00031 // constructors and destructor 00032 // 00033 FWConfigurableParameterizable::FWConfigurableParameterizable(unsigned int iVersion) : 00034 m_version(iVersion) 00035 { 00036 } 00037 00038 // FWConfigurableParameterizable::FWConfigurableParameterizable(const FWConfigurableParameterizable& rhs) 00039 // { 00040 // // do actual copying here; 00041 // } 00042 00043 FWConfigurableParameterizable::~FWConfigurableParameterizable() 00044 { 00045 } 00046 00047 // 00048 // assignment operators 00049 // 00050 // const FWConfigurableParameterizable& FWConfigurableParameterizable::operator=(const FWConfigurableParameterizable& rhs) 00051 // { 00052 // //An exception safe implementation is 00053 // FWConfigurableParameterizable temp(rhs); 00054 // swap(rhs); 00055 // 00056 // return *this; 00057 // } 00058 00059 // 00060 // member functions 00061 // 00062 void 00063 FWConfigurableParameterizable::setFrom(const FWConfiguration& iFrom) 00064 { 00065 //need a way to handle versioning 00066 assert(iFrom.version() == m_version); 00067 for(const_iterator it =begin(), itEnd = end(); 00068 it != itEnd; 00069 ++it) { 00070 (*it)->setFrom(iFrom); 00071 } 00072 } 00073 00074 // 00075 // const member functions 00076 // 00077 void 00078 FWConfigurableParameterizable::addTo(FWConfiguration& oTo) const 00079 { 00080 for(const_iterator it =begin(), itEnd = end(); 00081 it != itEnd; 00082 ++it) { 00083 (*it)->addTo(oTo); 00084 } 00085 } 00086 00087 // 00088 // static member functions 00089 //