00001 #ifndef FWCore_PluginManager_SharedLibrary_h 00002 #define FWCore_PluginManager_SharedLibrary_h 00003 // -*- C++ -*- 00004 // 00005 // Package: PluginManager 00006 // Class : SharedLibrary 00007 // 00016 // 00017 // Original Author: Chris Jones 00018 // Created: Thu Apr 5 15:30:08 EDT 2007 00019 // 00020 00021 // system include files 00022 #include <boost/filesystem/path.hpp> 00023 00024 // user include files 00025 00026 // forward declarations 00027 00028 namespace Reflex { 00029 class SharedLibrary; 00030 } 00031 00032 namespace edmplugin { 00033 class SharedLibrary 00034 { 00035 00036 public: 00037 SharedLibrary(const boost::filesystem::path& iName); 00038 ~SharedLibrary(); 00039 00040 // ---------- const member functions --------------------- 00041 bool symbol(const std::string& iSymbolName, void* & iSymbol) const; 00042 const boost::filesystem::path& path() const { return path_;} 00043 00044 // ---------- static member functions -------------------- 00045 00046 // ---------- member functions --------------------------- 00047 00048 private: 00049 SharedLibrary(const SharedLibrary&); // stop default 00050 00051 const SharedLibrary& operator=(const SharedLibrary&); // stop default 00052 00053 // ---------- member data -------------------------------- 00054 mutable Reflex::SharedLibrary* library_; 00055 boost::filesystem::path path_; 00056 }; 00057 00058 } 00059 #endif