Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #include <string>
00016 #include "Reflex/SharedLibrary.h"
00017
00018
00019 #include "FWCore/PluginManager/interface/SharedLibrary.h"
00020 #include "FWCore/Utilities/interface/Exception.h"
00021
00022 namespace edmplugin {
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034 SharedLibrary::SharedLibrary(const boost::filesystem::path& iName) :
00035 library_(0),
00036 path_(iName)
00037 {
00038 std::auto_ptr<Reflex::SharedLibrary> lib(new Reflex::SharedLibrary(iName.string()));
00039 if( !lib->Load() ) {
00040 throw cms::Exception("PluginLibraryLoadError")<<"unable to load "<<iName.string()<<" because "<<lib->Error();
00041 }
00042 library_ = lib.release();
00043 }
00044
00045
00046
00047
00048
00049
00050 SharedLibrary::~SharedLibrary()
00051 {
00052 delete library_;
00053 }
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074 bool
00075 SharedLibrary::symbol(const std::string& iSymbolName, void* & iSymbol) const
00076 {
00077 return library_->Symbol(iSymbolName,iSymbol);
00078 }
00079
00080
00081
00082
00083 }