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 // $Id: SharedLibrary.h,v 1.3 2008/11/28 17:44:30 wmtan Exp $ 00020 // 00021 00022 // system include files 00023 #include <boost/filesystem/path.hpp> 00024 00025 // user include files 00026 #include "FWCore/Utilities/interface/UseReflex.h" 00027 00028 // forward declarations 00029 00030 namespace edmplugin { 00031 class SharedLibrary 00032 { 00033 00034 public: 00035 SharedLibrary(const boost::filesystem::path& iName); 00036 ~SharedLibrary(); 00037 00038 // ---------- const member functions --------------------- 00039 bool symbol(const std::string& iSymbolName, void* & iSymbol) const; 00040 const boost::filesystem::path& path() const { return path_;} 00041 00042 // ---------- static member functions -------------------- 00043 00044 // ---------- member functions --------------------------- 00045 00046 private: 00047 SharedLibrary(const SharedLibrary&); // stop default 00048 00049 const SharedLibrary& operator=(const SharedLibrary&); // stop default 00050 00051 // ---------- member data -------------------------------- 00052 mutable Reflex::SharedLibrary* library_; 00053 boost::filesystem::path path_; 00054 }; 00055 00056 } 00057 #endif