Blame src/cppunit/UnixDynamicLibraryManager.cpp

Packit Service e31359
#include <cppunit/Portability.h>
Packit Service e31359
Packit Service e31359
#if defined(CPPUNIT_HAVE_UNIX_DLL_LOADER)
Packit Service e31359
#include <cppunit/plugin/DynamicLibraryManager.h>
Packit Service e31359
Packit Service e31359
#include <dlfcn.h>
Packit Service e31359
#include <unistd.h>
Packit Service e31359
Packit Service e31359
Packit Service e31359
CPPUNIT_NS_BEGIN
Packit Service e31359
Packit Service e31359
Packit Service e31359
DynamicLibraryManager::LibraryHandle 
Packit Service e31359
DynamicLibraryManager::doLoadLibrary( const std::string &libraryName )
Packit Service e31359
{
Packit Service e31359
  return ::dlopen( libraryName.c_str(), RTLD_NOW | RTLD_GLOBAL );
Packit Service e31359
}
Packit Service e31359
Packit Service e31359
Packit Service e31359
void 
Packit Service e31359
DynamicLibraryManager::doReleaseLibrary()
Packit Service e31359
{
Packit Service e31359
  ::dlclose( m_libraryHandle);
Packit Service e31359
}
Packit Service e31359
Packit Service e31359
Packit Service e31359
DynamicLibraryManager::Symbol 
Packit Service e31359
DynamicLibraryManager::doFindSymbol( const std::string &symbol )
Packit Service e31359
{
Packit Service e31359
  return ::dlsym ( m_libraryHandle, symbol.c_str() );
Packit Service e31359
}
Packit Service e31359
Packit Service e31359
Packit Service e31359
std::string 
Packit Service e31359
DynamicLibraryManager::getLastErrorDetail() const
Packit Service e31359
{
Packit Service e31359
    const char* last_error = ::dlerror();
Packit Service e31359
    if(last_error)
Packit Service e31359
        return last_error;
Packit Service e31359
    else
Packit Service e31359
        return "";
Packit Service e31359
}
Packit Service e31359
Packit Service e31359
Packit Service e31359
CPPUNIT_NS_END
Packit Service e31359
Packit Service e31359
Packit Service e31359
#endif // defined(CPPUNIT_HAVE_UNIX_DLL_LOADER)