#include <DLL.h>
Public Methods | |
ACE_DLL (int close_on_destruction=1) | |
Default constructor. By default, the <close> operation on the object will be invoked before it is destroyed. More... | |
ACE_DLL (const ACE_TCHAR *dll_name, int open_mode=ACE_DEFAULT_SHLIB_MODE, int close_on_destruction=1) | |
This constructor opens and dynamically links. More... | |
int | open (const ACE_TCHAR *dll_name, int open_mode=ACE_DEFAULT_SHLIB_MODE, int close_on_destruction=1) |
This method opens and dynamically links. More... | |
int | close (void) |
Call to close the DLL object. More... | |
~ACE_DLL (void) | |
Called when the DLL object is destroyed -- invokes <close> if the <close_on_destruction> flag is set in the constructor or <open> method. More... | |
void * | symbol (const ACE_TCHAR *symbol_name) |
If <symbol_name> is in the symbol table of the DLL a pointer to the <symbol_name> is returned. Otherwise, returns 0. More... | |
ACE_TCHAR * | error (void) const |
Returns a pointer to a string explaining why <symbol> or <open> failed. More... | |
ACE_SHLIB_HANDLE | get_handle (int become_owner=0) |
Return the handle to the caller. More... | |
int | set_handle (ACE_SHLIB_HANDLE handle, int close_on_destruction=1) |
Set the handle for the DLL object. By default, the <close> operation on the object will be invoked before it is destroyed. More... | |
Private Methods | |
void | save_last_error (void) |
Used internally to save the last error of a library operation so that multiple subsequent calls to error() can be made safely. More... | |
ACE_DLL (const ACE_DLL &) | |
void | operator= (const ACE_DLL &) |
Private Attributes | |
ACE_SHLIB_HANDLE | handle_ |
This is a handle to the DLL. More... | |
int | close_on_destruction_ |
This flag keeps track of whether we should close the handle automatically when the destructor runs. More... | |
ACE_TCHAR * | last_error_ |
This is the last error. More... | |
Static Private Attributes | |
sig_atomic_t | open_called_ = 0 |
This flag keeps track of whether the open method has ever been called on any ACE_DLL object. Used by error() to decide whether or not to call ACE_OS::dlerror(). On Linux, at least, calls to dlerror() prior to calling dlopen() causes a seg-fault. More... |
This class is an wrapper over the various methods for utilizing a dynamically linked library (DLL), which is called a shared library on some platforms. Operations <open>, <close>, and <symbol> have been implemented to help opening/closing and extracting symbol information from a DLL, respectively.
|
Default constructor. By default, the <close> operation on the object will be invoked before it is destroyed.
|
|
This constructor opens and dynamically links. <dll_name>. The default mode is <RTLD_LAZY>, which loads identifier symbols but not the symbols for functions, which are loaded dynamically on-demand. Other supported modes include: <RTLD_NOW>, which performs all necessary relocations when <dll_name> is first loaded and <RTLD_GLOBAL>, which makes symbols available for relocation processing of any other DLLs. |
|
Called when the DLL object is destroyed -- invokes <close> if the <close_on_destruction> flag is set in the constructor or <open> method.
|
|
|
|
Call to close the DLL object.
|
|
Returns a pointer to a string explaining why <symbol> or <open> failed.
|
|
Return the handle to the caller. If <become_owner> is non-0 then caller assumes ownership of the handle and the <ACE_DLL> object won't call <close> when it goes out of scope, even if <close_on_destruction> is set. |
|
This method opens and dynamically links. <dll_name>. The default mode is <RTLD_LAZY>, which loads identifier symbols but not the symbols for functions, which are loaded dynamically on-demand. Other supported modes include: <RTLD_NOW>, which performs all necessary relocations when <dll_name> is first loaded and <RTLD_GLOBAL>, which makes symbols available for relocation processing of any other DLLs. Returns -1 on failure and 0 on success. |
|
|
|
Used internally to save the last error of a library operation so that multiple subsequent calls to error() can be made safely.
|
|
Set the handle for the DLL object. By default, the <close> operation on the object will be invoked before it is destroyed.
|
|
If <symbol_name> is in the symbol table of the DLL a pointer to the <symbol_name> is returned. Otherwise, returns 0.
|
|
This flag keeps track of whether we should close the handle automatically when the destructor runs.
|
|
This is a handle to the DLL.
|
|
This is the last error.
|
|
This flag keeps track of whether the open method has ever been called on any ACE_DLL object. Used by error() to decide whether or not to call ACE_OS::dlerror(). On Linux, at least, calls to dlerror() prior to calling dlopen() causes a seg-fault.
|