Blame src/cppunit/UnixDynamicLibraryManager.cpp

Packit 8c9aa0
#include <cppunit/Portability.h>
Packit 8c9aa0
Packit 8c9aa0
#if defined(CPPUNIT_HAVE_UNIX_DLL_LOADER)
Packit 8c9aa0
#include <cppunit/plugin/DynamicLibraryManager.h>
Packit 8c9aa0
Packit 8c9aa0
#include <dlfcn.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 ::dlopen( libraryName.c_str(), RTLD_NOW | RTLD_GLOBAL );
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
DynamicLibraryManager::doReleaseLibrary()
Packit 8c9aa0
{
Packit 8c9aa0
  ::dlclose( m_libraryHandle);
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
DynamicLibraryManager::Symbol 
Packit 8c9aa0
DynamicLibraryManager::doFindSymbol( const std::string &symbol )
Packit 8c9aa0
{
Packit 8c9aa0
  return ::dlsym ( m_libraryHandle, symbol.c_str() );
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
std::string 
Packit 8c9aa0
DynamicLibraryManager::getLastErrorDetail() const
Packit 8c9aa0
{
Packit 8c9aa0
    const char* last_error = ::dlerror();
Packit 8c9aa0
    if(last_error)
Packit 8c9aa0
        return last_error;
Packit 8c9aa0
    else
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_DLL_LOADER)