X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/838ec5745c5198692997e0a1cb8a147682cba210..e7987df1fe4b07d5b8240acc98968400be12b757:/projects/stargazer/plugins/store/postgresql/postgresql_store.cpp diff --git a/projects/stargazer/plugins/store/postgresql/postgresql_store.cpp b/projects/stargazer/plugins/store/postgresql/postgresql_store.cpp index 4bf72c0e..37ff6dbd 100644 --- a/projects/stargazer/plugins/store/postgresql/postgresql_store.cpp +++ b/projects/stargazer/plugins/store/postgresql/postgresql_store.cpp @@ -38,48 +38,44 @@ * */ -#include -#include -#include +#include "postgresql_store.h" + +#include "stg/module_settings.h" +#include "stg/plugin_creator.h" #include -#include "postgresql_store.h" -#include "postgresql_store_utils.h" -#include "stg/module_settings.h" +#include +#include -class POSTGRESQL_STORE_CREATOR +namespace { -public: - POSTGRESQL_STORE_CREATOR() - : pqStore(new POSTGRESQL_STORE()) - { - }; - ~POSTGRESQL_STORE_CREATOR() - { - delete pqStore; - }; - POSTGRESQL_STORE * GetStore() { return pqStore; }; -private: - POSTGRESQL_STORE * pqStore; -} pqStoreeCreator; +PLUGIN_CREATOR pgsc; +} + +extern "C" STORE * GetStore(); //----------------------------------------------------------------------------- STORE * GetStore() { -return pqStoreeCreator.GetStore(); +return pgsc.GetPlugin(); } //----------------------------------------------------------------------------- POSTGRESQL_STORE::POSTGRESQL_STORE() : versionString("postgresql_store v.1.3"), + strError(), server("localhost"), database("stargazer"), user("stg"), password("123456"), + clientEncoding("KOI8"), + settings(), + mutex(), version(0), + retries(3), connection(NULL), - retries(3) + logger(GetPluginLogger(GetStgLogger(), "store_postgresql")) { pthread_mutex_init(&mutex, NULL); } @@ -96,37 +92,25 @@ pthread_mutex_destroy(&mutex); int POSTGRESQL_STORE::ParseSettings() { std::vector::iterator i; -string s; for(i = settings.moduleParams.begin(); i != settings.moduleParams.end(); ++i) { - s = i->param; - std::transform(s.begin(), s.end(), s.begin(), ToLower()); - if (s == "server") - { + std::string param(ToLower(i->param)); + if (param == "server") server = *(i->value.begin()); - } - if (s == "database") - { + else if (param == "database") database = *(i->value.begin()); - } - if (s == "user") - { + else if (param == "user") user = *(i->value.begin()); - } - if (s == "password") - { + else if (param == "password") password = *(i->value.begin()); - } - if (s == "retries") - { + else if (param == "retries") if (str2x(*(i->value.begin()), retries)) { strError = "Invalid 'retries' value"; printfd(__FILE__, "POSTGRESQL_STORE::ParseSettings(): '%s'\n", strError.c_str()); return -1; } - } } clientEncoding = "KOI8"; @@ -240,6 +224,8 @@ if (CommitTransaction()) return -1; } +logger("POSTGRESQL_STORE: Current DB schema version: %d", version); + return 0; } //-----------------------------------------------------------------------------