MCPcopy Create free account
hub / github.com/OpenArkStudio/ARK / LoadPluginLibrary

Method LoadPluginLibrary

src/base/AFPluginManager.hpp:369–409  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

367 }
368
369 bool LoadPluginLibrary(const std::string& plugin_name)
370 {
371 auto iter = plugin_libs_.find(plugin_name);
372 ARK_ASSERT_RET_VAL(iter == plugin_libs_.end(), false);
373
374 AFDynLib* pLib = ARK_NEW AFDynLib(plugin_name);
375 ARK_ASSERT_RET_VAL(pLib != nullptr, false);
376
377 bool load_ret = pLib->Load(plugin_path_);
378 if (load_ret)
379 {
380 plugin_libs_.insert(std::make_pair(plugin_name, pLib));
381 auto func = (DLL_ENTRY_PLUGIN_FUNC)pLib->GetSymbol("DllEntryPlugin");
382 ARK_ASSERT_RET_VAL(func != nullptr, false);
383 func(this);
384
385 return true;
386 }
387 else
388 {
389#ifdef ARK_PLATFORM_WIN
390 CONSOLE_LOG << "Load dynamic library[" << pLib->GetName() << "] failed, ErrorNo=[" << GetLastError() << "]"
391 << std::endl;
392 CONSOLE_LOG << "Load [" << pLib->GetName() << "] failed" << std::endl;
393 assert(0);
394 return false;
395#else
396 char* error = dlerror();
397 if (error)
398 {
399 CONSOLE_LOG << stderr << " Load shared library[" << pLib->GetName() << "] failed, ErrorNo=[" << error
400 << "]" << std::endl;
401 CONSOLE_LOG << "Load [" << pLib->GetName() << "] failed" << std::endl;
402 assert(0);
403 return false;
404 }
405#endif
406 }
407
408 return true;
409 }
410
411 bool UnloadPluginLibrary(const std::string& plugin_name)
412 {

Callers

nothing calls this directly

Calls 6

AFDynLibClass · 0.85
GetSymbolMethod · 0.80
findMethod · 0.45
endMethod · 0.45
LoadMethod · 0.45
insertMethod · 0.45

Tested by

no test coverage detected