]> git.stg.codes - stg.git/commitdiff
Make tariff table based on tariff list
authorMaxim Mamontov <faust.madf@gmail.com>
Thu, 1 Sep 2011 10:59:54 +0000 (13:59 +0300)
committerMaxim Mamontov <faust.madf@gmail.com>
Thu, 1 Sep 2011 10:59:54 +0000 (13:59 +0300)
projects/stargazer/plugins/other/smux/tables.cpp
projects/stargazer/plugins/other/smux/tables.h

index 023b90b2b1df4f6f5db8d5b818368ca03d30b072..962c91a8207f3e288ceb2e1eb1adb1ffcc56223f 100644 (file)
@@ -1,16 +1,29 @@
+#include <cassert>
 #include <utility>
 #include <utility>
+#include <iterator>
+#include <algorithm>
 
 #include "stg/user_property.h"
 
 #include "stg/user_property.h"
+#include "stg/tariffs.h"
+#include "stg/users.h"
 
 #include "tables.h"
 
 
 #include "tables.h"
 
+std::pair<std::string, size_t> TD2Info(const TARIFF_DATA & td);
+
 void TariffUsersTable::UpdateSensors(Sensors & sensors) const
 {
 std::map<std::string, size_t> data;
 
 void TariffUsersTable::UpdateSensors(Sensors & sensors) const
 {
 std::map<std::string, size_t> data;
 
+std::list<TARIFF_DATA> tdl;
+tariffs.GetTariffsData(&tdl);
+std::transform(tdl.begin(),
+               tdl.end(),
+               std::inserter(data, data.begin()),
+               TD2Info);
+
 int handle = users.OpenSearch();
 int handle = users.OpenSearch();
-if (!handle)
-    return;
+assert(handle && "USERS::OpenSearch is always correct");
 
 USER_PTR user;
 while (!users.SearchNext(handle, &user))
 
 USER_PTR user;
 while (!users.SearchNext(handle, &user))
@@ -43,3 +56,8 @@ while (it != data.end())
     ++it;
     }
 }
     ++it;
     }
 }
+
+std::pair<std::string, size_t> TD2Info(const TARIFF_DATA & td)
+{
+return std::make_pair(td.tariffConf.name, 0);
+}
index ad3b55a3c979ca5ba5a15fc6e76d2728c69d4530..ea0bc627b67261b7df4959ed66e702684066e318 100644 (file)
@@ -6,6 +6,9 @@
 
 #include "sensors.h"
 
 
 #include "sensors.h"
 
+class TARIFFS;
+class USERS;
+
 class TableSensor {
     public:
         TableSensor(const std::string & p) : prefix(p) {}
 class TableSensor {
     public:
         TableSensor(const std::string & p) : prefix(p) {}
@@ -21,8 +24,10 @@ class TableSensor {
 class TariffUsersTable : public TableSensor {
     public:
         TariffUsersTable(const std::string & p,
 class TariffUsersTable : public TableSensor {
     public:
         TariffUsersTable(const std::string & p,
+                         TARIFFS & t,
                          USERS & u)
             : TableSensor(p),
                          USERS & u)
             : TableSensor(p),
+              tariffs(t),
               users(u)
         {}
         virtual ~TariffUsersTable() {}
               users(u)
         {}
         virtual ~TariffUsersTable() {}
@@ -30,6 +35,7 @@ class TariffUsersTable : public TableSensor {
         void UpdateSensors(Sensors & sensors) const;
 
     private:
         void UpdateSensors(Sensors & sensors) const;
 
     private:
+        TARIFFS & tariffs;
         USERS & users;
 };
 
         USERS & users;
 };