#include <DLL.h>
Collaboration diagram for ACE_DLL:
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... | |
ACE_DLL (const ACE_DLL &) | |
Copy constructor. 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, int ignore_errors=0) |
If <symbol_name> is in the symbol table of the DLL a pointer to the <symbol_name> is returned. Otherwise, returns 0. Setting ignore_errors = 1 allows you to probe a dll without generating error messages in the log. Handy for determining the capabilities of a library. More... | |
ACE_TCHAR * | error (void) const |
Returns a pointer to a string explaining that an error occured. You will need to consult the error log for the actual error string returned by the OS. More... | |
ACE_SHLIB_HANDLE | get_handle (int become_owner=0) const |
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 | |
int | open_i (const ACE_TCHAR *dll_name, int open_mode=ACE_DEFAULT_SHLIB_MODE, int close_on_destruction=1, ACE_SHLIB_HANDLE handle=0) |
void | operator= (const ACE_DLL &) |
Private Attributes | |
int | open_mode_ |
Open mode. More... | |
ACE_TCHAR * | dll_name_ |
Keep track of the name of the loaded dll, so it can be used to remove framework components, singletons that live in the dll, prior to unloading the dll in the close() method. More... | |
int | close_on_destruction_ |
This flag keeps track of whether we should close the handle automatically when the destructor runs. More... | |
ACE_DLL_Handle * | dll_handle_ |
int | error_ |
Flag to record if the last operation had an error. 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. |
|
Copy constructor.
|
|
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 that an error occured. You will need to consult the error log for the actual error string returned by the OS.
|
|
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. |
|
|
|
|
|
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. Setting ignore_errors = 1 allows you to probe a dll without generating error messages in the log. Handy for determining the capabilities of a library.
|
|
This flag keeps track of whether we should close the handle automatically when the destructor runs.
|
|
|
|
Keep track of the name of the loaded dll, so it can be used to remove framework components, singletons that live in the dll, prior to unloading the dll in the close() method.
|
|
Flag to record if the last operation had an error.
|
|
Open mode.
|