X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/687631532197750696d35aa12c40406b04fb878d..9e8281bc8ffdbb5555ee6082a3de0db421b092c0:/projects/stargazer/user_impl.h diff --git a/projects/stargazer/user_impl.h b/projects/stargazer/user_impl.h index 935dcd0e..7aab735d 100644 --- a/projects/stargazer/user_impl.h +++ b/projects/stargazer/user_impl.h @@ -34,13 +34,13 @@ #include "stg/user.h" #include "stg/os_int.h" -#include "stg/stg_const.h" +#include "stg/const.h" #include "stg/user_stat.h" #include "stg/user_conf.h" #include "stg/user_ips.h" #include "stg/user_property.h" #include "stg/auth.h" -#include "stg/stg_message.h" +#include "stg/message.h" #include "stg/noncopyable.h" //----------------------------------------------------------------------------- @@ -48,7 +48,11 @@ class TARIFF; class TARIFFS; class ADMIN; class USER_IMPL; +#ifdef USE_ABSTRACT_SETTINGS +class SETTINGS; +#else class SETTINGS_IMPL; +#endif //----------------------------------------------------------------------------- class USER_ID_GENERATOR { friend class USER_IMPL; @@ -87,11 +91,11 @@ private: USER_IMPL * user; }; //----------------------------------------------------------------------------- -class CHG_IP_NOTIFIER : public PROPERTY_NOTIFIER_BASE, - private NONCOPYABLE { +class CHG_IPS_NOTIFIER : public PROPERTY_NOTIFIER_BASE, + private NONCOPYABLE { public: - CHG_IP_NOTIFIER(USER_IMPL * u) : user(u) {} - void Notify(const uint32_t & oldCash, const uint32_t & newCash); + CHG_IPS_NOTIFIER(USER_IMPL * u) : user(u) {} + void Notify(const USER_IPS & oldIPs, const USER_IPS & newIPs); private: USER_IMPL * user; @@ -101,13 +105,21 @@ class USER_IMPL : public USER { friend class CHG_PASSIVE_NOTIFIER; friend class CHG_TARIFF_NOTIFIER; friend class CHG_CASH_NOTIFIER; -friend class CHG_IP_NOTIFIER; +friend class CHG_IPS_NOTIFIER; public: +#ifdef USE_ABSTRACT_SETTINGS + USER_IMPL(const SETTINGS * settings, + const STORE * store, + const TARIFFS * tariffs, + const ADMIN * sysAdmin, + const USERS * u); +#else USER_IMPL(const SETTINGS_IMPL * settings, const STORE * store, const TARIFFS * tariffs, const ADMIN * sysAdmin, const USERS * u); +#endif USER_IMPL(const USER_IMPL & u); virtual ~USER_IMPL(); @@ -117,7 +129,7 @@ public: int WriteStat(); int WriteMonthStat(); - std::string const & GetLogin() const { return login; } + const std::string & GetLogin() const { return login; } void SetLogin(std::string const & l); uint32_t GetCurrIP() const { return currIP; } @@ -184,17 +196,18 @@ public: void MidnightResetSessionStat(); void ProcessDayFee(); - void SetPrepaidTraff(); void ProcessDayFeeSpread(); void ProcessNewMonth(); bool IsInetable(); - std::string GetEnabledDirs(); + std::string GetEnabledDirs(); void OnAdd(); void OnDelete(); private: + USER_IMPL & operator=(const USER_IMPL & rvalue); + const USERS * users; USER_PROPERTIES property; STG_LOGGER & WriteServLog; @@ -203,6 +216,8 @@ private: void Disconnect(bool fakeDisconnect, const std::string & reason); int SaveMonthStat(int month, int year); + void SetPrepaidTraff(); + int SendMessage(STG_MSG & msg) const; void ScanMessage(); @@ -233,7 +248,11 @@ private: TRAFF_STAT traffStat; std::pair traffStatSaved; +#ifdef USE_ABSTRACT_SETTINGS + const SETTINGS * settings; +#else const SETTINGS_IMPL * settings; +#endif std::set authorizedBy; @@ -288,7 +307,7 @@ private: CHG_PASSIVE_NOTIFIER passiveNotifier; CHG_TARIFF_NOTIFIER tariffNotifier; CHG_CASH_NOTIFIER cashNotifier; - CHG_IP_NOTIFIER ipNotifier; + CHG_IPS_NOTIFIER ipNotifier; mutable pthread_mutex_t mutex; @@ -296,4 +315,6 @@ private: }; //----------------------------------------------------------------------------- +typedef USER_IMPL * USER_IMPL_PTR; + #endif //USER_H