--- /dev/null
+#ifndef __TABLES_H__
+#define __TABLES_H__
+
+#include <string>
+#include <map>
+
+#include "sensors.h"
+
+class TARIFFS;
+class USERS;
+
+class TableSensor {
+ public:
+ explicit TableSensor(const std::string & p) : prefix(p) {}
+ virtual ~TableSensor() {}
+
+ const std::string & GetPrefix() const { return prefix; }
+ virtual void UpdateSensors(Sensors & sensors) const = 0;
+
+ protected:
+ std::string prefix;
+};
+
+class TariffUsersTable : public TableSensor {
+ public:
+ TariffUsersTable(const std::string & p,
+ TARIFFS & t,
+ USERS & u)
+ : TableSensor(p),
+ tariffs(t),
+ users(u)
+ {}
+ virtual ~TariffUsersTable() {}
+
+ void UpdateSensors(Sensors & sensors) const;
+
+ private:
+ TARIFFS & tariffs;
+ USERS & users;
+};
+
+typedef std::map<std::string, TableSensor *> Tables;
+
+#endif