X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/46b0747592074017ff0ea4b33d4a7194235886e5..HEAD:/stargazer/plugins/other/smux/sensors.h?ds=inline diff --git a/stargazer/plugins/other/smux/sensors.h b/stargazer/plugins/other/smux/sensors.h deleted file mode 100644 index 35de996c..00000000 --- a/stargazer/plugins/other/smux/sensors.h +++ /dev/null @@ -1,302 +0,0 @@ -#ifndef __SENSORS_H__ -#define __SENSORS_H__ - -#include - -#include "stg/users.h" -#include "stg/tariffs.h" -#include "stg/admins.h" -#include "stg/services.h" -#include "stg/corporations.h" -#include "stg/traffcounter.h" -#include "stg/user_property.h" - -#include "stg/ObjectSyntax.h" - -#include "value2os.h" -#include "types.h" - -class Sensor { - public: - virtual ~Sensor() {} - virtual bool GetValue(ObjectSyntax_t * objectSyntax) const = 0; -#ifdef DEBUG - virtual std::string ToString() const = 0; -#endif -}; - -typedef std::map Sensors; - -class TotalUsersSensor : public Sensor { - public: - explicit TotalUsersSensor(const USERS & u) : users(u) {} - virtual ~TotalUsersSensor() {} - - bool GetValue(ObjectSyntax_t * objectSyntax) const - { - ValueToOS(users.Count(), objectSyntax); - return true; - } - -#ifdef DEBUG - std::string ToString() const - { std::string res; x2str(users.Count(), res); return res; } -#endif - - private: - const USERS & users; -}; - -class UsersSensor : public Sensor { - public: - explicit UsersSensor(USERS & u) : users(u) {} - virtual ~UsersSensor() {} - - bool GetValue(ObjectSyntax_t * objectSyntax) const; -#ifdef DEBUG - std::string ToString() const; -#endif - - private: - USERS & users; - - virtual bool UserPredicate(USER_PTR userPtr) const = 0; -}; - -class ConnectedUsersSensor : public UsersSensor { - public: - explicit ConnectedUsersSensor(USERS & u) : UsersSensor(u) {} - virtual ~ConnectedUsersSensor() {} - - private: - bool UserPredicate(USER_PTR userPtr) const - { return userPtr->GetConnected(); } -}; - -class AuthorizedUsersSensor : public UsersSensor { - public: - explicit AuthorizedUsersSensor(USERS & u) : UsersSensor(u) {} - virtual ~AuthorizedUsersSensor() {} - - private: - bool UserPredicate(USER_PTR userPtr) const - { return userPtr->GetAuthorized(); } -}; - -class AlwaysOnlineUsersSensor : public UsersSensor { - public: - explicit AlwaysOnlineUsersSensor(USERS & u) : UsersSensor(u) {} - virtual ~AlwaysOnlineUsersSensor() {} - - private: - bool UserPredicate(USER_PTR userPtr) const - { return userPtr->GetProperty().alwaysOnline; } -}; - -class NoCashUsersSensor : public UsersSensor { - public: - explicit NoCashUsersSensor(USERS & u) : UsersSensor(u) {} - virtual ~NoCashUsersSensor() {} - - private: - bool UserPredicate(USER_PTR userPtr) const - { return userPtr->GetProperty().cash < 0; } -}; - -class DisabledDetailStatsUsersSensor : public UsersSensor { - public: - explicit DisabledDetailStatsUsersSensor(USERS & u) : UsersSensor(u) {} - virtual ~DisabledDetailStatsUsersSensor() {} - - private: - bool UserPredicate(USER_PTR userPtr) const - { return userPtr->GetProperty().disabledDetailStat; } -}; - -class DisabledUsersSensor : public UsersSensor { - public: - explicit DisabledUsersSensor(USERS & u) : UsersSensor(u) {} - virtual ~DisabledUsersSensor() {} - - private: - bool UserPredicate(USER_PTR userPtr) const - { return userPtr->GetProperty().disabled; } -}; - -class PassiveUsersSensor : public UsersSensor { - public: - explicit PassiveUsersSensor(USERS & u) : UsersSensor(u) {} - virtual ~PassiveUsersSensor() {} - - private: - bool UserPredicate(USER_PTR userPtr) const - { return userPtr->GetProperty().passive; } -}; - -class CreditUsersSensor : public UsersSensor { - public: - explicit CreditUsersSensor(USERS & u) : UsersSensor(u) {} - virtual ~CreditUsersSensor() {} - - private: - bool UserPredicate(USER_PTR userPtr) const - { return userPtr->GetProperty().credit > 0; } -}; - -class FreeMbUsersSensor : public UsersSensor { - public: - explicit FreeMbUsersSensor(USERS & u) : UsersSensor(u) {} - virtual ~FreeMbUsersSensor() {} - - private: - bool UserPredicate(USER_PTR userPtr) const - { return userPtr->GetProperty().freeMb > 0; } -}; - -class TariffChangeUsersSensor : public UsersSensor { - public: - explicit TariffChangeUsersSensor(USERS & u) : UsersSensor(u) {} - virtual ~TariffChangeUsersSensor() {} - - private: - bool UserPredicate(USER_PTR userPtr) const - { return !userPtr->GetProperty().nextTariff.ConstData().empty(); } -}; - -class ActiveUsersSensor : public UsersSensor { - public: - explicit ActiveUsersSensor(USERS & u) : UsersSensor(u) {} - virtual ~ActiveUsersSensor() {} - - private: - bool UserPredicate(USER_PTR userPtr) const; -}; - -class TotalTariffsSensor : public Sensor { - public: - explicit TotalTariffsSensor(const TARIFFS & t) : tariffs(t) {} - virtual ~TotalTariffsSensor() {} - - bool GetValue(ObjectSyntax_t * objectSyntax) const - { - ValueToOS(tariffs.Count(), objectSyntax); - return true; - } - -#ifdef DEBUG - std::string ToString() const - { std::string res; x2str(tariffs.Count(), res); return res; } -#endif - - private: - const TARIFFS & tariffs; -}; - -class TotalAdminsSensor : public Sensor { - public: - explicit TotalAdminsSensor(const ADMINS & a) : admins(a) {} - virtual ~TotalAdminsSensor() {} - - bool GetValue(ObjectSyntax_t * objectSyntax) const - { - ValueToOS(admins.Count(), objectSyntax); - return true; - } - -#ifdef DEBUG - std::string ToString() const - { std::string res; x2str(admins.Count(), res); return res; } -#endif - - private: - const ADMINS & admins; -}; - -class TotalServicesSensor : public Sensor { - public: - explicit TotalServicesSensor(const SERVICES & s) : services(s) {} - virtual ~TotalServicesSensor() {} - - bool GetValue(ObjectSyntax_t * objectSyntax) const - { - ValueToOS(services.Count(), objectSyntax); - return true; - } - -#ifdef DEBUG - std::string ToString() const - { std::string res; x2str(services.Count(), res); return res; } -#endif - - private: - const SERVICES & services; -}; - -class TotalCorporationsSensor : public Sensor { - public: - explicit TotalCorporationsSensor(const CORPORATIONS & c) : corporations(c) {} - virtual ~TotalCorporationsSensor() {} - - bool GetValue(ObjectSyntax_t * objectSyntax) const - { - ValueToOS(corporations.Count(), objectSyntax); - return true; - } - -#ifdef DEBUG - std::string ToString() const - { std::string res; x2str(corporations.Count(), res); return res; } -#endif - - private: - const CORPORATIONS & corporations; -}; - -class TotalRulesSensor : public Sensor { - public: - explicit TotalRulesSensor(const TRAFFCOUNTER & t) : traffcounter(t) {} - virtual ~TotalRulesSensor() {} - - bool GetValue(ObjectSyntax_t * objectSyntax) const - { - ValueToOS(traffcounter.RulesCount(), objectSyntax); - return true; - } - -#ifdef DEBUG - std::string ToString() const - { std::string res; x2str(traffcounter.RulesCount(), res); return res; } -#endif - - private: - const TRAFFCOUNTER & traffcounter; -}; - -template -class ConstSensor : public Sensor { - public: - explicit ConstSensor(const T & v) : value(v) {} - virtual ~ConstSensor() {} - - bool GetValue(ObjectSyntax * objectSyntax) const - { return ValueToOS(value, objectSyntax); } - -#ifdef DEBUG - std::string ToString() const - { std::string res; x2str(value, res); return res; } -#endif - - private: - T value; -}; - -#ifdef DEBUG -template <> -inline -std::string ConstSensor::ToString() const -{ -return value; -} -#endif - -#endif