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.4 2010/06/18 10:17:15 yana 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 00021 // 00022 // constants, enums and typedefs 00023 // 00024 00025 // 00026 // static data member definitions 00027 // 00028 00029 // 00030 // constructors and destructor 00031 // 00032 FWConfigurableParameterizable::FWConfigurableParameterizable(unsigned int iVersion) : 00033 m_version(iVersion) 00034 { 00035 } 00036 00037 // FWConfigurableParameterizable::FWConfigurableParameterizable(const FWConfigurableParameterizable& rhs) 00038 // { 00039 // // do actual copying here; 00040 // } 00041 00042 FWConfigurableParameterizable::~FWConfigurableParameterizable() 00043 { 00044 } 00045 00046 // 00047 // assignment operators 00048 // 00049 // const FWConfigurableParameterizable& FWConfigurableParameterizable::operator=(const FWConfigurableParameterizable& rhs) 00050 // { 00051 // //An exception safe implementation is 00052 // FWConfigurableParameterizable temp(rhs); 00053 // swap(rhs); 00054 // 00055 // return *this; 00056 // } 00057 00058 // 00059 // member functions 00060 // 00061 void 00062 FWConfigurableParameterizable::setFrom(const FWConfiguration& iFrom) 00063 { 00064 //need a way to handle versioning 00065 assert(iFrom.version() == m_version); 00066 for(const_iterator it =begin(), itEnd = end(); 00067 it != itEnd; 00068 ++it) { 00069 (*it)->setFrom(iFrom); 00070 } 00071 } 00072 00073 // 00074 // const member functions 00075 // 00076 void 00077 FWConfigurableParameterizable::addTo(FWConfiguration& oTo) const 00078 { 00079 for(const_iterator it =begin(), itEnd = end(); 00080 it != itEnd; 00081 ++it) { 00082 (*it)->addTo(oTo); 00083 } 00084 } 00085 00086 // 00087 // static member functions 00088 //