X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/43d188bd1622464192974dc98f756f59a8ec02fe..ff5b020a0b3d4c61da3425de56d80a54534d1f03:/projects/stargazer/user_impl.h diff --git a/projects/stargazer/user_impl.h b/projects/stargazer/user_impl.h index 1aaffc86..2fc2729e 100644 --- a/projects/stargazer/user_impl.h +++ b/projects/stargazer/user_impl.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; @@ -64,6 +68,9 @@ public: void Notify(const int & oldPassive, const int & newPassive); private: + CHG_PASSIVE_NOTIFIER(const CHG_PASSIVE_NOTIFIER & rvalue); + CHG_PASSIVE_NOTIFIER & operator=(const CHG_PASSIVE_NOTIFIER & rvalue); + USER_IMPL * user; }; //----------------------------------------------------------------------------- @@ -74,6 +81,9 @@ public: void Notify(const std::string & oldTariff, const std::string & newTariff); private: + CHG_TARIFF_NOTIFIER(const CHG_TARIFF_NOTIFIER & rvalue); + CHG_TARIFF_NOTIFIER & operator=(const CHG_TARIFF_NOTIFIER & rvalue); + USER_IMPL * user; }; //----------------------------------------------------------------------------- @@ -84,12 +94,18 @@ public: void Notify(const double & oldCash, const double & newCash); private: + CHG_CASH_NOTIFIER(const CHG_CASH_NOTIFIER & rvalue); + CHG_CASH_NOTIFIER & operator=(const CHG_CASH_NOTIFIER & rvalue); + USER_IMPL * user; }; //----------------------------------------------------------------------------- class CHG_IPS_NOTIFIER : public PROPERTY_NOTIFIER_BASE, private NONCOPYABLE { public: + CHG_IPS_NOTIFIER(const CHG_IPS_NOTIFIER & rvalue); + CHG_IPS_NOTIFIER & operator=(const CHG_IPS_NOTIFIER & rvalue); + CHG_IPS_NOTIFIER(USER_IMPL * u) : user(u) {} void Notify(const USER_IPS & oldIPs, const USER_IPS & newIPs); @@ -103,11 +119,19 @@ friend class CHG_TARIFF_NOTIFIER; friend class CHG_CASH_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(); @@ -184,7 +208,6 @@ public: void MidnightResetSessionStat(); void ProcessDayFee(); - void SetPrepaidTraff(); void ProcessDayFeeSpread(); void ProcessNewMonth(); @@ -195,6 +218,8 @@ public: void OnDelete(); private: + USER_IMPL & operator=(const USER_IMPL & rvalue); + const USERS * users; USER_PROPERTIES property; STG_LOGGER & WriteServLog; @@ -203,6 +228,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 +260,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 +319,7 @@ private: CHG_PASSIVE_NOTIFIER passiveNotifier; CHG_TARIFF_NOTIFIER tariffNotifier; CHG_CASH_NOTIFIER cashNotifier; - CHG_IPS_NOTIFIER ipNotifier; + CHG_IPS_NOTIFIER ipNotifier; mutable pthread_mutex_t mutex;