CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_5/src/FWCore/PluginManager/interface/SharedLibrary.h

Go to the documentation of this file.
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