Blame src/cppunit/ShlDynamicLibraryManager.cpp
|
Packit |
8c9aa0 |
#include <cppunit/Portability.h>
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
#if defined(CPPUNIT_HAVE_UNIX_SHL_LOADER)
|
|
Packit |
8c9aa0 |
#include <cppunit/plugin/DynamicLibraryManager.h>
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
#include <dl.h>
|
|
Packit |
8c9aa0 |
#include <unistd.h>
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
CPPUNIT_NS_BEGIN
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
DynamicLibraryManager::LibraryHandle
|
|
Packit |
8c9aa0 |
DynamicLibraryManager::doLoadLibrary( const std::string &libraryName )
|
|
Packit |
8c9aa0 |
{
|
|
Packit |
8c9aa0 |
return ::shl_load(libraryName.c_str(), BIND_IMMEDIATE, 0L);
|
|
Packit |
8c9aa0 |
}
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
void
|
|
Packit |
8c9aa0 |
DynamicLibraryManager::doReleaseLibrary()
|
|
Packit |
8c9aa0 |
{
|
|
Packit |
8c9aa0 |
::shl_unload( (shl_t)m_libraryHandle);
|
|
Packit |
8c9aa0 |
}
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
DynamicLibraryManager::Symbol
|
|
Packit |
8c9aa0 |
DynamicLibraryManager::doFindSymbol( const std::string &symbol )
|
|
Packit |
8c9aa0 |
{
|
|
Packit |
8c9aa0 |
DynamicLibraryManager::Symbol L_symaddr = 0;
|
|
Packit |
8c9aa0 |
if ( ::shl_findsym( (shl_t*)(&m_libraryHandle),
|
|
Packit |
8c9aa0 |
symbol.c_str(),
|
|
Packit |
8c9aa0 |
TYPE_UNDEFINED,
|
|
Packit |
8c9aa0 |
&L_symaddr ) == 0 )
|
|
Packit |
8c9aa0 |
{
|
|
Packit |
8c9aa0 |
return L_symaddr;
|
|
Packit |
8c9aa0 |
}
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
return 0;
|
|
Packit |
8c9aa0 |
}
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
std::string
|
|
Packit |
8c9aa0 |
DynamicLibraryManager::getLastErrorDetail() const
|
|
Packit |
8c9aa0 |
{
|
|
Packit |
8c9aa0 |
return "";
|
|
Packit |
8c9aa0 |
}
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
CPPUNIT_NS_END
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
#endif // defined(CPPUNIT_HAVE_UNIX_SHL_LOADER)
|