![]()  | 
  
    Kea
    1.9.9-git
    
   | 
 
Local class for conversion of void pointers to function pointers. More...
#include <pointer_converter.h>
Public Member Functions | |
| PointerConverter (void *dlsym_ptr) | |
| Constructor.  More... | |
| PointerConverter (CalloutPtr callout_ptr) | |
| Constructor.  More... | |
Pointer accessor functions  | |
It is up to the caller to ensure that the correct member is called so that the correct type of pointer is returned.  | |
| void * | dlsymPtr () const | 
| Return pointer returned by dlsym call.  More... | |
| CalloutPtr | calloutPtr () const | 
| Return pointer to callout function.  More... | |
| load_function_ptr | loadPtr () const | 
| Return pointer to load function.  More... | |
| unload_function_ptr | unloadPtr () const | 
| Return pointer to unload function.  More... | |
| version_function_ptr | versionPtr () const | 
| Return pointer to version function.  More... | |
| multi_threading_compatible_function_ptr | multiThreadingCompatiblePtr () const | 
| Return pointer to multi_threading_compatible function.  More... | |
Local class for conversion of void pointers to function pointers.
Converting between void* and function pointers in C++ is fraught with difficulty and pitfalls, e.g. see https://groups.google.com/forum/?hl=en&fromgroups#!topic/comp.lang.c++/37o0l8rtEE0
The method given in that article - convert using a union is used here. A union is declared (and zeroed) and the appropriate member extracted when needed.
Definition at line 25 of file pointer_converter.h.
      
  | 
  inline | 
Constructor.
Zeroes the union and stores the void* pointer we wish to convert (the one returned by dlsym).
| dlsym_ptr | void* pointer returned by call to dlsym() | 
Definition at line 33 of file pointer_converter.h.
References dlsym_ptr.
      
  | 
  inline | 
Constructor.
Zeroes the union and stores the CalloutPtr pointer we wish to convert. This constructor is used in debug messages; output of a pointer to an object (including to a function) is, on some compilers, printed as "1".
| callout_ptr | Pointer to callout function | 
Definition at line 46 of file pointer_converter.h.
References callout_ptr.
      
  | 
  inline | 
Return pointer to callout function.
Definition at line 70 of file pointer_converter.h.
Referenced by isc::hooks::LibraryManager::registerStandardCallouts().
      
  | 
  inline | 
Return pointer returned by dlsym call.
Definition at line 63 of file pointer_converter.h.
Referenced by isc::hooks::CalloutManager::callCallouts().
      
  | 
  inline | 
Return pointer to load function.
Definition at line 77 of file pointer_converter.h.
Referenced by isc::hooks::LibraryManager::runLoad().
      
  | 
  inline | 
Return pointer to multi_threading_compatible function.
Definition at line 98 of file pointer_converter.h.
Referenced by isc::hooks::LibraryManager::checkMultiThreadingCompatible().
      
  | 
  inline | 
Return pointer to unload function.
Definition at line 84 of file pointer_converter.h.
Referenced by isc::hooks::LibraryManager::prepareUnloadLibrary().
      
  | 
  inline | 
Return pointer to version function.
Definition at line 91 of file pointer_converter.h.
Referenced by isc::hooks::LibraryManager::checkVersion().
| CalloutPtr isc::hooks::PointerConverter::callout_ptr | 
Definition at line 109 of file pointer_converter.h.
Referenced by PointerConverter().
| void* isc::hooks::PointerConverter::dlsym_ptr | 
Definition at line 108 of file pointer_converter.h.
Referenced by PointerConverter().
| load_function_ptr isc::hooks::PointerConverter::load_ptr | 
Definition at line 110 of file pointer_converter.h.
| multi_threading_compatible_function_ptr isc::hooks::PointerConverter::multi_threading_compatible_ptr | 
Definition at line 113 of file pointer_converter.h.
| unload_function_ptr isc::hooks::PointerConverter::unload_ptr | 
Definition at line 111 of file pointer_converter.h.
| version_function_ptr isc::hooks::PointerConverter::version_ptr | 
Definition at line 112 of file pointer_converter.h.