DynamicLib.h
Go to the documentation of this file.
00001 // -*- C++ -*-
00019 #ifndef COIL_DYNAMICLIB_H
00020 #define COIL_DYNAMICLIB_H
00021 
00022 #include <dlfcn.h>
00023 #include <string>
00024 #include <coil/config_coil.h>
00025 
00026 #define COIL_DEFAULT_DYNLIB_MODE RTLD_LAZY
00027 
00028 extern "C"
00029 {
00030   int ForExternTest(void);
00031 }
00032 
00033 namespace coil
00034 {
00048   class DynamicLib
00049   {
00050   public:
00051 
00071     DynamicLib(int close_handle_on_destruction = 1);
00072 
00096     DynamicLib(const char* dynlib_name,
00097                int open_mode = COIL_DEFAULT_DYNLIB_MODE,
00098                int close_handle_on_destruction = 1);
00099 
00115     virtual ~DynamicLib();
00116 
00136     DynamicLib(const DynamicLib& rhs);
00137 
00161     DynamicLib& operator=(const DynamicLib& rhs);
00162 
00190     virtual int open(const char* dll_name,
00191                      int open_mode = COIL_DEFAULT_DYNLIB_MODE,
00192                      int close_handle_on_destruction = 1);
00193 
00213     virtual int close(void);
00214 
00238     void *symbol (const char* symbol_name);
00239 
00259     const char* error(void) const;
00260 
00280     static int ForExternTest(void) { return 0xdeadbeef; }
00281 
00282   private:
00283     std::string m_name;
00284     int m_mode;
00285     int m_closeflag;
00286     void* m_handle;
00287     int m_error;
00288   };
00289 
00290 };
00291 
00292 #endif // DynamicLib_h


openrtm_aist
Author(s): Noriaki Ando
autogenerated on Sun Mar 26 2017 03:37:15