CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_8_patch3/src/CondCore/TagCollection/src/PfnEditor.cc

Go to the documentation of this file.
00001 #include "CondCore/TagCollection/interface/PfnEditor.h"
00002 
00003 namespace cond{
00004   
00005   PfnEditor::PfnEditor() : off(true){}
00006   
00007   PfnEditor::PfnEditor(std::string const & ipre, 
00008                        std::string const & ipos) : 
00009     prefix(ipre), 
00010     postfix(ipos),
00011     off(prefix.empty() && postfix.empty())
00012   {}
00013   
00014   
00015   std::string PfnEditor::operator()(std::string const & pfn) const {
00016     if (off) return pfn;
00017     // FIXME ad-hoc
00018     if (pfn.find("FrontierInt")!=std::string::npos)  return pfn;
00019     if (pfn.find("FrontierPrep")!=std::string::npos)  return pfn;
00020     if (pfn.find("sqlite")!=std::string::npos)  return pfn;
00021     
00022     size_t pos=std::string::npos;
00023     if (!prefix.empty()) pos = pfn.rfind('/');
00024     return prefix + ( (pos == std::string::npos) ? pfn :
00025                       pfn.substr(pos+1)
00026                       ) + postfix;
00027   }
00028   
00029 }