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)