]> git.stg.codes - stg.git/commitdiff
String coversion added to the sensors for debugging purpoces
authorMaxim Mamontov <faust.madf@gmail.com>
Mon, 8 Aug 2011 18:30:24 +0000 (21:30 +0300)
committerMaxim Mamontov <faust.madf@gmail.com>
Mon, 8 Aug 2011 18:30:24 +0000 (21:30 +0300)
projects/stargazer/plugins/other/smux/sensors.cpp
projects/stargazer/plugins/other/smux/sensors.h

index 7721d7b7dc3831a4889bb6225992d8e29c9cf18c..6018566c72d358efeac54bda5246d797bb6eb06b 100644 (file)
@@ -23,3 +23,26 @@ users.CloseSearch(handle);
 ValueToOS(count, objectSyntax);
 return true;
 }
+
+#ifdef DEBUG
+std::string UsersSensor::ToString() const
+{
+int handle = users.OpenSearch();
+if (!handle)
+    return "";
+
+USER_PTR user;
+size_t count = 0;
+while (!users.SearchNext(handle, &user))
+    {
+    if (UserPredicate(user))
+        ++count;
+    }
+
+users.CloseSearch(handle);
+
+std::string res;
+x2str(count, res);
+return res;
+}
+#endif
index 37bd20200b952db7fbae7bae31b8d3b514e1c1f7..f284063658251b2d8dd5425e8ef92d84504d17f4 100644 (file)
 class Sensor {
     public:
         virtual bool GetValue(ObjectSyntax_t * objectSyntax) const = 0;
+#ifdef DEBUG
+        virtual std::string ToString() const = 0;
+#endif
 };
 
 typedef std::map<OID, Sensor *> Sensors;
 
-class TableSensor {
-    public:
-        virtual bool appendTable(Sensors & sensors);
-};
-
 class TotalUsersSensor : public Sensor {
     public:
         TotalUsersSensor(const USERS & u) : users(u) {}
@@ -35,6 +33,11 @@ class TotalUsersSensor : public Sensor {
         return true;
         }
 
+#ifdef DEBUG
+        std::string ToString() const
+        { std::string res; x2str(users.GetUserNum(), res); return res; }
+#endif
+
     private:
         const USERS & users;
 };
@@ -42,9 +45,12 @@ class TotalUsersSensor : public Sensor {
 class UsersSensor : public Sensor {
     public:
         UsersSensor(USERS & u) : users(u) {}
-        virtual ~UsersSensor() {};
+        virtual ~UsersSensor() {}
 
         bool GetValue(ObjectSyntax_t * objectSyntax) const;
+#ifdef DEBUG
+        std::string ToString() const;
+#endif
 
     private:
         USERS & users;
@@ -163,6 +169,11 @@ class TotalTariffsSensor : public Sensor {
         return true;
         }
 
+#ifdef DEBUG
+        std::string ToString() const
+        { std::string res; x2str(tariffs.GetTariffsNum(), res); return res; }
+#endif
+
     private:
         const TARIFFS & tariffs;
 };
@@ -176,8 +187,20 @@ class ConstSensor : public Sensor {
         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;
 };
 
+template <>
+inline
+std::string ConstSensor<std::string>::ToString() const
+{
+return value;
+}
+
 #endif