return INFERENCE_ENGINE_ERROR_NONE;
}
+int InferenceEngineCommon::InitBackendEngine(std::string &backend_path)
+{
+ LOGI("lib: %s", backend_path.c_str());
+ mBackendModule = dlopen(backend_path.c_str(), RTLD_NOW);
+ LOGI("HANDLE : [%p]", mBackendModule);
+
+ if (!mBackendModule) {
+ LOGE("Fail to dlopen %s", backend_path.c_str());
+ LOGE("Error: %s\n", dlerror());
+ return INFERENCE_ENGINE_ERROR_NOT_SUPPORTED;
+ }
+
+ init_t* EngineInit = (init_t *)dlsym(mBackendModule, "EngineCommonInit");
+ char *error = NULL;
+ if ((error = dlerror()) != NULL) {
+ LOGE("Error: %s\n", error);
+ dlclose(mBackendModule);
+ mBackendModule = nullptr;
+ return INFERENCE_ENGINE_ERROR_INTERNAL;
+ }
+
+ mBackendHandle = EngineInit();
+ if (mBackendHandle == NULL) {
+ LOGE("Fail to EngineInit");
+ dlclose(mBackendModule);
+ mBackendModule = nullptr;
+ return INFERENCE_ENGINE_ERROR_INTERNAL;
+ }
+
+ return INFERENCE_ENGINE_ERROR_NONE;
+}
+
int InferenceEngineCommon::BindBackend(inference_engine_config *config)
{
LOGI("ENTER");
mBackendLibName = "libinference-engine-" + config->backend_name + ".so";
- char *error = NULL;
- LOGI("lib: %s", mBackendLibName.c_str());
- mBackendModule = dlopen(mBackendLibName.c_str(), RTLD_NOW);
- LOGI("HANDLE : [%p]", mBackendModule);
-
- if (!mBackendModule) {
- LOGE("Fail to dlopen %s", mBackendLibName.c_str());
- LOGE("Error: %s\n", dlerror());
- return INFERENCE_ENGINE_ERROR_NOT_SUPPORTED;
- }
-
- init_t* EngineInit = (init_t *)dlsym(mBackendModule, "EngineCommonInit");
- if ((error = dlerror()) != NULL) {
- LOGE("Error: %s\n", error);
- dlclose(mBackendModule);
- mBackendModule = nullptr;
- return INFERENCE_ENGINE_ERROR_INTERNAL;
- }
-
- mBackendHandle = EngineInit();
- if (mBackendHandle == NULL) {
- LOGE("Fail to EngineInit");
- dlclose(mBackendModule);
- mBackendModule = nullptr;
- return INFERENCE_ENGINE_ERROR_INTERNAL;
- }
+ int ret = InitBackendEngine(mBackendLibName);
+ if (ret != INFERENCE_ENGINE_ERROR_NONE) {
+ return ret;
+ }
if (mUseProfiler == true) {
mProfiler->AddBackendName(config->backend_name);