24 class SharedObjectLoader {
26 void* shared_object =
nullptr;
34 explicit SharedObjectLoader(
const char* pluginName) {
35 shared_object = dlopen(pluginName, RTLD_LAZY);
37 if (shared_object ==
nullptr)
41 #ifdef ENABLE_UNICODE_PATH_SUPPORT 47 explicit SharedObjectLoader(
const wchar_t* pluginName) : SharedObjectLoader(wStringtoMBCSstringChar(pluginName).c_str()) {
50 #endif // ENABLE_UNICODE_PATH_SUPPORT 52 ~SharedObjectLoader() noexcept(false) {
53 if (0 != dlclose(shared_object)) {
64 void* get_symbol(
const char* symbolName)
const {
65 void* procAddr =
nullptr;
67 procAddr = dlsym(shared_object, symbolName);
68 if (procAddr ==
nullptr)
69 THROW_IE_EXCEPTION <<
"dlSym cannot locate method '" << symbolName <<
"': " << dlerror();
#define THROW_IE_EXCEPTION
A macro used to throw the exception with a notable description.
Definition: ie_exception.hpp:25
Inference Engine API.
Definition: ie_argmax_layer.hpp:15
The macro defines a symbol import/export mechanism essential for Microsoft Windows(R) OS...
This is a header file with functions related to filesystem operations.
A header file for the main Inference Engine exception.