6 #include "stg/user_property.h"
 
   7 #include "stg/tariffs.h"
 
  12 std::pair<std::string, size_t> TD2Info(const TARIFF_DATA & td);
 
  14 void TariffUsersTable::UpdateSensors(Sensors & sensors) const
 
  16 std::map<std::string, size_t> data;
 
  18 std::list<TARIFF_DATA> tdl;
 
  19 tariffs.GetTariffsData(&tdl);
 
  20 std::transform(tdl.begin(),
 
  22                std::inserter(data, data.begin()),
 
  25 int handle = users.OpenSearch();
 
  26 assert(handle && "USERS::OpenSearch is always correct");
 
  29 while (!users.SearchNext(handle, &user))
 
  31     if (user->GetDeleted())
 
  33     std::string tariffName(user->GetProperty().tariffName.ConstData());
 
  34     std::map<std::string, size_t>::iterator it(data.lower_bound(tariffName));
 
  35     if (it == data.end() ||
 
  36         it->first != tariffName)
 
  38         data.insert(it, std::make_pair(tariffName, 1));
 
  46 users.CloseSearch(handle);
 
  49 OID prefixOid(prefix);
 
  51 std::map<std::string, size_t>::const_iterator it(data.begin());
 
  52 while (it != data.end())
 
  54     sensors[prefixOid.copyWithSuffix(2, static_cast<unsigned int>(idx))] = new ConstSensor<std::string>(it->first);
 
  55     sensors[prefixOid.copyWithSuffix(3, static_cast<unsigned int>(idx))] = new ConstSensor<unsigned long>(it->second);
 
  61 std::pair<std::string, size_t> TD2Info(const TARIFF_DATA & td)
 
  63 return std::make_pair(td.tariffConf.name, 0);