CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_9_patch3/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 // $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