X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/becf6dfe4fe2ecd43792aa53a302c5866483f306..ab1d6ad7b6563c4c7a8841abae32aad79711f351:/projects/stargazer/tariffs_impl.cpp diff --git a/projects/stargazer/tariffs_impl.cpp b/projects/stargazer/tariffs_impl.cpp index 1f8a4230..a912c338 100644 --- a/projects/stargazer/tariffs_impl.cpp +++ b/projects/stargazer/tariffs_impl.cpp @@ -32,17 +32,18 @@ #include #include -#include "tariffs.h" -#include "stg_locker.h" -#include "stg_logger.h" -#include "base_store.h" -#include "admin.h" +#include "stg/locker.h" +#include "stg/logger.h" +#include "stg/store.h" +#include "stg/admin.h" +#include "tariffs_impl.h" using namespace std; //----------------------------------------------------------------------------- -TARIFFS::TARIFFS(BASE_STORE * st) - : tariffs(), +TARIFFS_IMPL::TARIFFS_IMPL(STORE * st) + : TARIFFS(), + tariffs(), store(st), WriteServLog(GetStgLogger()), strError(), @@ -52,12 +53,12 @@ pthread_mutex_init(&mutex, NULL); ReadTariffs(); } //----------------------------------------------------------------------------- -TARIFFS::~TARIFFS() +TARIFFS_IMPL::~TARIFFS_IMPL() { pthread_mutex_destroy(&mutex); } //----------------------------------------------------------------------------- -int TARIFFS::ReadTariffs() +int TARIFFS_IMPL::ReadTariffs() { STG_LOCKER lock(&mutex, __FILE__, __LINE__); @@ -79,26 +80,26 @@ for (int i = 0; i < tariffsNum; i++) WriteServLog("%s", store->GetStrError().c_str()); return -1; } - tariffs.push_back(TARIFF(td)); + tariffs.push_back(TARIFF_IMPL(td)); } return 0; } //----------------------------------------------------------------------------- -int TARIFFS::GetTariffsNum() const +size_t TARIFFS_IMPL::Count() const { STG_LOCKER lock(&mutex, __FILE__, __LINE__); return tariffs.size(); } //----------------------------------------------------------------------------- -const TARIFF * TARIFFS::FindByName(const string & name) const +const TARIFF * TARIFFS_IMPL::FindByName(const string & name) const { if (name == NO_TARIFF_NAME) return &noTariff; STG_LOCKER lock(&mutex, __FILE__, __LINE__); -list::const_iterator ti; -ti = find(tariffs.begin(), tariffs.end(), TARIFF(name)); +list::const_iterator ti; +ti = find(tariffs.begin(), tariffs.end(), TARIFF_IMPL(name)); if (ti != tariffs.end()) return &(*ti); @@ -106,13 +107,13 @@ if (ti != tariffs.end()) return NULL; } //----------------------------------------------------------------------------- -int TARIFFS::Chg(const TARIFF_DATA & td, const ADMIN & admin) +int TARIFFS_IMPL::Chg(const TARIFF_DATA & td, const ADMIN * admin) { -const PRIV * priv = admin.GetPriv(); +const PRIV * priv = admin->GetPriv(); if (!priv->tariffChg) { - string s = admin.GetLogStr() + " Change tariff \'" + string s = admin->GetLogStr() + " Change tariff \'" + td.tariffConf.name + "\'. Access denied."; strError = "Access denied."; WriteServLog(s.c_str()); @@ -121,13 +122,13 @@ if (!priv->tariffChg) STG_LOCKER lock(&mutex, __FILE__, __LINE__); -list::iterator ti; -ti = find(tariffs.begin(), tariffs.end(), TARIFF(td.tariffConf.name)); +list::iterator ti; +ti = find(tariffs.begin(), tariffs.end(), TARIFF_IMPL(td.tariffConf.name)); if (ti == tariffs.end()) { strError = "Tariff \'" + td.tariffConf.name + "\' cannot be changed. Tariff does not exist."; - WriteServLog("%s %s", admin.GetLogStr().c_str(), strError.c_str()); + WriteServLog("%s %s", admin->GetLogStr().c_str(), strError.c_str()); return -1; } @@ -141,18 +142,18 @@ if (store->SaveTariff(td, td.tariffConf.name)) } WriteServLog("%s Tariff \'%s\' changed.", - admin.GetLogStr().c_str(), td.tariffConf.name.c_str()); + admin->GetLogStr().c_str(), td.tariffConf.name.c_str()); return 0; } //----------------------------------------------------------------------------- -int TARIFFS::Del(const string & name, const ADMIN & admin) +int TARIFFS_IMPL::Del(const string & name, const ADMIN * admin) { -const PRIV * priv = admin.GetPriv(); +const PRIV * priv = admin->GetPriv(); if (!priv->tariffChg) { - string s = admin.GetLogStr() + " Delete tariff \'" + string s = admin->GetLogStr() + " Delete tariff \'" + name + "\'. Access denied."; strError = "Access denied."; WriteServLog(s.c_str()); @@ -161,13 +162,13 @@ if (!priv->tariffChg) STG_LOCKER lock(&mutex, __FILE__, __LINE__); -list::iterator ti; -ti = find(tariffs.begin(), tariffs.end(), TARIFF(name)); +list::iterator ti; +ti = find(tariffs.begin(), tariffs.end(), TARIFF_IMPL(name)); if (ti == tariffs.end()) { strError = "Tariff \'" + name + "\' cannot be deleted. Tariff does not exist."; - WriteServLog("%s %s", admin.GetLogStr().c_str(), strError.c_str()); + WriteServLog("%s %s", admin->GetLogStr().c_str(), strError.c_str()); return -1; } @@ -181,18 +182,18 @@ if (store->DelTariff(name)) tariffs.erase(ti); WriteServLog("%s Tariff \'%s\' deleted.", - admin.GetLogStr().c_str(), + admin->GetLogStr().c_str(), name.c_str()); return 0; } //----------------------------------------------------------------------------- -int TARIFFS::Add(const string & name, const ADMIN & admin) +int TARIFFS_IMPL::Add(const string & name, const ADMIN * admin) { -const PRIV * priv = admin.GetPriv(); +const PRIV * priv = admin->GetPriv(); if (!priv->tariffChg) { - string s = admin.GetLogStr() + " Add tariff \'" + string s = admin->GetLogStr() + " Add tariff \'" + name + "\'. Access denied."; strError = "Access denied."; WriteServLog(s.c_str()); @@ -201,17 +202,17 @@ if (!priv->tariffChg) STG_LOCKER lock(&mutex, __FILE__, __LINE__); -list::iterator ti; -ti = find(tariffs.begin(), tariffs.end(), TARIFF(name)); +list::iterator ti; +ti = find(tariffs.begin(), tariffs.end(), TARIFF_IMPL(name)); if (ti != tariffs.end()) { - strError = "Tariff \'" + name + "\' cannot be added. Tariff alredy exist."; - WriteServLog("%s %s", admin.GetLogStr().c_str(), strError.c_str()); + strError = "Tariff \'" + name + "\' cannot be added. Tariff already exist."; + WriteServLog("%s %s", admin->GetLogStr().c_str(), strError.c_str()); return -1; } -tariffs.push_back(TARIFF(name)); +tariffs.push_back(TARIFF_IMPL(name)); if (store->AddTariff(name) < 0) { @@ -221,22 +222,20 @@ if (store->AddTariff(name) < 0) } WriteServLog("%s Tariff \'%s\' added.", - admin.GetLogStr().c_str(), name.c_str()); + admin->GetLogStr().c_str(), name.c_str()); return 0; } //----------------------------------------------------------------------------- -void TARIFFS::GetTariffsData(std::list * tdl) +void TARIFFS_IMPL::GetTariffsData(std::list * tdl) { assert(tdl != NULL && "Tariffs data list is not null"); STG_LOCKER lock(&mutex, __FILE__, __LINE__); -std::list::const_iterator it = tariffs.begin(); -TARIFF_DATA td; +std::list::const_iterator it = tariffs.begin(); for (; it != tariffs.end(); ++it) { - it->GetTariffData(&td); - tdl->push_back(td); + tdl->push_back(it->GetTariffData()); } } //-----------------------------------------------------------------------------