##// END OF EJS Templates
Pre-0.7 partially back-ported.
Pre-0.7 partially back-ported.

File last commit:

r100:11a895cff789 pre-0.7
r106:7598f3bdb8ba 0.6
Show More
unixpluginloader.cpp
39 lines | 1.3 KiB | text/x-c | CppLexer
Jeandet Alexis
First init of SocExplorer Repository.
r0 #include "unixpluginloader.h"
#include <stdio.h>
#include <QDebug>
Alexis Jeandet
Pre-0.7 partially back-ported.
r106 #include <socexplorerengine.h>
Jeandet Alexis
First init of SocExplorer Repository.
r0
unixPluginLoader::unixPluginLoader(const QString &libPath)
{
Alexis Jeandet
Pre-0.7 partially back-ported.
r106 SocExplorerEngine::message("unixPluginLoader::unixPluginLoader","try to open "+libPath,3);
Jeandet Alexis
First init of SocExplorer Repository.
r0 dlHandle = dlopen(libPath.toStdString().c_str(),RTLD_LAZY|RTLD_GLOBAL);
if(dlHandle==NULL)
Alexis Jeandet
Pre-0.7 partially back-ported.
r106 SocExplorerEngine::message("unixPluginLoader::unixPluginLoader",QString("Failed ") + dlerror(),3);
Jeandet Alexis
First init of SocExplorer Repository.
r0 else
Alexis Jeandet
Pre-0.7 partially back-ported.
r106 SocExplorerEngine::message("unixPluginLoader::unixPluginLoader","Success " ,3);
Jeandet Alexis
First init of SocExplorer Repository.
r0 this->libPath = libPath;
}
void *unixPluginLoader::resolve(const QString &symbol)
{
if(dlHandle!=NULL)
{
Alexis Jeandet
Pre-0.7 partially back-ported.
r106 SocExplorerEngine::message("unixPluginLoader::resolve","try to resolve "+symbol+" in "+libPath ,3);
Jeandet Alexis
First init of SocExplorer Repository.
r0 void* sym = dlsym (dlHandle, symbol.toStdString().c_str());
if(sym==NULL)
Alexis Jeandet
Pre-0.7 partially back-ported.
r106 SocExplorerEngine::message("unixPluginLoader::resolve",QString("Failed")+ dlerror() ,3);
Jeandet Alexis
First init of SocExplorer Repository.
r0 else
Alexis Jeandet
Pre-0.7 partially back-ported.
r106 SocExplorerEngine::message("unixPluginLoader::resolve","Success",3);
Jeandet Alexis
First init of SocExplorer Repository.
r0 return sym;
}
return NULL;
}
void unixPluginLoader::close()
{
if(dlHandle!=NULL)
{
dlclose(dlHandle);
Alexis Jeandet
Pre-0.7 partially back-ported.
r106 SocExplorerEngine::message("unixPluginLoader::close",dlerror(),3);
Jeandet Alexis
First init of SocExplorer Repository.
r0 }
}