00001 #ifndef ParameterSet_IncludeFileFinder_h 00002 #define ParameterSet_IncludeFileFinder_h 00003 00008 #include <string> 00009 #include <map> 00010 #include "FWCore/PluginManager/interface/PluginManager.h" 00011 #include "FWCore/ParameterSet/interface/FileInPath.h" 00012 00013 namespace edm { 00014 namespace pset { 00015 00016 class IncludeFileFinder 00017 { 00018 public: 00019 IncludeFileFinder(); 00020 00023 FileInPath find(const std::string & moduleClass, 00024 const std::string & moduleLabel); 00025 00027 std::string libraryOf(const std::string & moduleClass); 00028 00030 static std::string stripHeader(const std::string & libraryName); 00032 static std::string stripTrailer(const std::string & libraryName); 00033 00035 typedef std::vector<std::pair<std::string, std::string> > DomainPackagePair; 00036 static DomainPackagePair 00037 twoWordsFrom(const std::string & libraryName); 00038 00039 00040 private: 00041 00042 edmplugin::PluginManager * thePluginManager; 00043 // maps each module to its library 00044 std::map<std::string, std::string> theLibraryMap; 00045 }; 00046 00047 } 00048 } 00049 00050 #endif 00051