#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"
const CORPORATIONS & corporations;
};
+class TotalRulesSensor : public Sensor {
+ public:
+ 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 <typename T>
class ConstSensor : public Sensor {
public:
#include "stg/common.h"
#include "stg/plugin_creator.h"
-#include "stg/users.h"
+/*#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 "smux.h"
#include "utils.h"
admins(NULL),
services(NULL),
corporations(NULL),
+ traffcounter(NULL),
running(false),
stopped(true),
sock(-1)
int SMUX::Start()
{
-assert(users != NULL && "users not NULL");
-assert(tariffs != NULL && "tariffs not NULL");
-assert(admins != NULL && "admins not NULL");
-assert(services != NULL && "services not NULL");
-assert(corporations != NULL && "corporations not NULL");
+assert(users != NULL && "users must not be NULL");
+assert(tariffs != NULL && "tariffs must not be NULL");
+assert(admins != NULL && "admins must not be NULL");
+assert(services != NULL && "services must not be NULL");
+assert(corporations != NULL && "corporations must not be NULL");
+assert(traffcounter != NULL && "traffcounter must not be NULL");
if (PrepareNet())
return -1;
sensors[OID(".1.3.6.1.4.1.38313.1.4.1")] = new TotalServicesSensor(*services);
// Corporations
sensors[OID(".1.3.6.1.4.1.38313.1.5.1")] = new TotalCorporationsSensor(*corporations);
+// Traffcounter
+sensors[OID(".1.3.6.1.4.1.38313.1.6.1")] = new TotalRulesSensor(*traffcounter);
// Table data
tables[".1.3.6.1.4.1.38313.1.1.6"] = new TariffUsersTable(".1.3.6.1.4.1.38313.1.1.6", *users);
class TARIFFS;
class SERVICES;
class CORPORATIONS;
+class TRAFFCOUNTER;
typedef bool (SMUX::*SMUXPacketHandler)(const SMUX_PDUs_t * pdus);
typedef bool (SMUX::*PDUsHandler)(const PDUs_t * pdus);
void SetTariffs(TARIFFS * t) { tariffs = t; }
void SetAdmins(ADMINS * a) { admins = a; }
void SetServices(SERVICES * s) { services = s; }
+ void SetTraffcounter(TRAFFCOUNTER * tc) { traffcounter = tc; }
void SetCorporations(CORPORATIONS * c) { corporations = c; }
void SetSettings(const MODULE_SETTINGS & s) { settings = s; }
int ParseSettings();
ADMINS * admins;
SERVICES * services;
CORPORATIONS * corporations;
+ TRAFFCOUNTER * traffcounter;
mutable std::string errorStr;
SMUX_SETTINGS smuxSettings;