X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/641204dfbdb9fc870cdd2e7f9e3169a44693e7bf..5e7cbf1bbd282c0b18a09c5e77e237a4e20f6e32:/projects/stargazer/store_loader.cpp diff --git a/projects/stargazer/store_loader.cpp b/projects/stargazer/store_loader.cpp index 56bd01ac..d27c0902 100644 --- a/projects/stargazer/store_loader.cpp +++ b/projects/stargazer/store_loader.cpp @@ -30,10 +30,12 @@ #include +#include "stg/common.h" +#include "stg/store.h" #include "store_loader.h" -#include "common.h" +#include "settings_impl.h" -STORE_LOADER::STORE_LOADER(const SETTINGS & settings) +STORE_LOADER::STORE_LOADER(const SETTINGS_IMPL & settings) : isLoaded(false), handle(NULL), plugin(NULL), @@ -50,16 +52,17 @@ Unload(); bool STORE_LOADER::Load() { -printfd(__FILE__, "STORE_LOADER::Load()\n"); if (isLoaded) { + errorStr = "Store plugin '" + pluginFileName + "' was already loaded!"; + printfd(__FILE__, "STORE_LOADER::Load() - %s\n", errorStr.c_str()); return false; } if (pluginFileName.empty()) { errorStr = "Empty store plugin filename"; - printfd(__FILE__, "STORE_LOADER::Load - %s\n", errorStr.c_str()); + printfd(__FILE__, "STORE_LOADER::Load() - %s\n", errorStr.c_str()); return true; } @@ -69,18 +72,18 @@ if (!handle) { errorStr = "Error loading plugin '" + pluginFileName + "': '" + dlerror() + "'"; - printfd(__FILE__, "STORE_LOADER::Load - %s\n", errorStr.c_str()); + printfd(__FILE__, "STORE_LOADER::Load() - %s\n", errorStr.c_str()); return true; } isLoaded = true; -BASE_STORE * (*GetStore)(); -GetStore = (BASE_STORE * (*)())dlsym(handle, "GetStore"); +STORE * (*GetStore)(); +GetStore = reinterpret_cast(dlsym(handle, "GetStore")); if (!GetStore) { - errorStr = "GetStore not found."; - printfd(__FILE__, "STORE_LOADER::Load - %s\n", errorStr.c_str()); + errorStr = std::string("GetStore() not found! ") + dlerror(); + printfd(__FILE__, "STORE_LOADER::Load() - %s\n", errorStr.c_str()); return true; } @@ -88,8 +91,8 @@ plugin = GetStore(); if (!plugin) { - errorStr = "NULL store plugin"; - printfd(__FILE__, "STORE_LOADER::Load - %s\n"); + errorStr = "Plugin was not created!"; + printfd(__FILE__, "STORE_LOADER::Load() - %s\n"); return true; } @@ -97,7 +100,7 @@ plugin->SetSettings(storeSettings); if (plugin->ParseSettings()) { errorStr = plugin->GetStrError(); - printfd(__FILE__, "Failed to parse settings. Plugin reports: '%s'\n", errorStr.c_str()); + printfd(__FILE__, "STORE_LOADER::Load() - Failed to parse settings. Plugin reports: '%s'\n", errorStr.c_str()); return true; } @@ -109,15 +112,15 @@ bool STORE_LOADER::Unload() printfd(__FILE__, "STORE_LOADER::Unload()\n"); if (!isLoaded) { - return false; + return true; } if (dlclose(handle)) { - errorStr = "Failed to unload plugin: '"; + errorStr = "Failed to unload plugin '"; + errorStr += pluginFileName + "': "; errorStr += dlerror(); - errorStr += "'"; - printfd(__FILE__, "STORE_LOADER::Unload - %s\n", errorStr.c_str()); + printfd(__FILE__, "STORE_LOADER::Unload() - %s\n", errorStr.c_str()); return true; }