diff options
Diffstat (limited to 'AudioManagerDaemon/HookEngine.cpp')
-rw-r--r-- | AudioManagerDaemon/HookEngine.cpp | 47 |
1 files changed, 0 insertions, 47 deletions
diff --git a/AudioManagerDaemon/HookEngine.cpp b/AudioManagerDaemon/HookEngine.cpp index e400de2..cd4e0ef 100644 --- a/AudioManagerDaemon/HookEngine.cpp +++ b/AudioManagerDaemon/HookEngine.cpp @@ -31,53 +31,6 @@ DLT_DECLARE_CONTEXT(AudioManager); -template<class T>T* getCreateFunction(std::string libname) { - - // cut off directories - char* fileWithPath = const_cast<char*>(libname.c_str()); - std::string libFileName = basename(fileWithPath); - - // cut off "lib" in front and cut off .so end" - std::string createFunctionName = libFileName.substr(3, libFileName.length() - 6) + "Factory"; - DLT_LOG(AudioManager,DLT_LOG_INFO, DLT_STRING("Lib entry point name "),DLT_STRING(createFunctionName.c_str())); - - // open library#include <unistd.h> - void *libraryHandle; - dlerror(); // Clear any existing error - libraryHandle = dlopen(libname.c_str(), RTLD_NOW /*LAZY*/); - const char* dlopen_error = dlerror(); - if (!libraryHandle || dlopen_error) - { - DLT_LOG(AudioManager,DLT_LOG_INFO, DLT_STRING("dlopen failed"),DLT_STRING(dlopen_error)); - return 0; - } - - // get entry point from shared lib - dlerror(); // Clear any existing error - DLT_LOG(AudioManager,DLT_LOG_INFO, DLT_STRING("loading external function with name"),DLT_STRING(createFunctionName.c_str())); - - union - { - void* voidPointer; - T* typedPointer; - } functionPointer; - - // Note: direct cast is not allowed by ISO C++. e.g. - // T* createFunction = reinterpret_cast<T*>(dlsym(libraryHandle, createFunctionName.c_str())); - // compiler warning: "forbids casting between pointer-to-function and pointer-to-object" - - functionPointer.voidPointer = dlsym(libraryHandle, createFunctionName.c_str()); - T* createFunction = functionPointer.typedPointer; - - const char* dlsym_error = dlerror(); - if (!createFunction || dlsym_error) - { - DLT_LOG(AudioManager,DLT_LOG_INFO, DLT_STRING("Failed to load shared lib entry point"),DLT_STRING(dlsym_error)); - } - - return createFunction; -} - /** * this path needs to be adjusted to whatever is suitable on the system */ |