blob: 1edabad477cc14d2e30a7a822e0af456eeeded26 [file] [log] [blame]
#include <regex>
#include <iostream>
#include "sensorset.hpp"
#include "directory.hpp"
// TODO: Issue#2 - STL regex generates really bloated code. Use POSIX regex
// interfaces instead.
static const std::regex sensors_regex =
std::regex("^(fan|in|temp)([0-9]+)_([a-z]*)", std::regex::extended);
static const auto sensor_regex_match_count = 4;
SensorSet::SensorSet(const std::string& path)
{
Directory d(path);
std::string file;
while(d.next(file))
{
std::smatch match;
std::regex_search(file, match, sensors_regex);
if (match.size() != sensor_regex_match_count) continue;
container[make_pair(match[1],match[2])].emplace(match[3]);
}
}