test
CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes
edmplugin::SharedLibrary Class Reference

#include <SharedLibrary.h>

Public Member Functions

const boost::filesystem::path & path () const
 
 SharedLibrary (const boost::filesystem::path &iName)
 
bool symbol (const std::string &iSymbolName, void *&iSymbol) const
 
 ~SharedLibrary ()
 

Private Member Functions

const SharedLibraryoperator= (const SharedLibrary &)
 
 SharedLibrary (const SharedLibrary &)
 

Private Attributes

void * libraryHandle_
 
boost::filesystem::path path_
 

Detailed Description

Definition at line 29 of file SharedLibrary.h.

Constructor & Destructor Documentation

SharedLibrary::SharedLibrary ( const boost::filesystem::path &  iName)

Definition at line 34 of file SharedLibrary.cc.

References Exception, and libraryHandle_.

34  :
35  libraryHandle_(::dlopen(iName.string().c_str(), RTLD_LAZY | RTLD_GLOBAL)),
36  path_(iName)
37 {
38  if(libraryHandle_ == nullptr) {
39  char const* err = dlerror();
40  if(err == nullptr) {
41  throw cms::Exception("PluginLibraryLoadError") << "unable to load " << iName.string();
42  }
43  throw cms::Exception("PluginLibraryLoadError") << "unable to load " << iName.string() << " because " << err;
44  }
45 }
boost::filesystem::path path_
Definition: SharedLibrary.h:51
SharedLibrary::~SharedLibrary ( )

Definition at line 52 of file SharedLibrary.cc.

53 {
54 }
edmplugin::SharedLibrary::SharedLibrary ( const SharedLibrary )
private

Member Function Documentation

const SharedLibrary& edmplugin::SharedLibrary::operator= ( const SharedLibrary )
private
const boost::filesystem::path& edmplugin::SharedLibrary::path ( ) const
inline
bool SharedLibrary::symbol ( const std::string &  iSymbolName,
void *&  iSymbol 
) const

Definition at line 76 of file SharedLibrary.cc.

References libraryHandle_.

Referenced by edmplugin::PluginCapabilities::tryToFind().

77 {
78  if(libraryHandle_ == nullptr) {
79  return false;
80  }
81  iSymbol = dlsym(libraryHandle_, iSymbolName.c_str());
82  return (iSymbol != nullptr);
83 }

Member Data Documentation

void* edmplugin::SharedLibrary::libraryHandle_
private

Definition at line 50 of file SharedLibrary.h.

Referenced by SharedLibrary(), and symbol().

boost::filesystem::path edmplugin::SharedLibrary::path_
private