artdaq_mfextensions  v1_06_02
qt_rule_engine.cpp
1 
2 #include "ErrorHandler/Components/qt_rule_engine.h"
3 
4 #include <QtCore/QMetaType>
5 #include <boost/bind/bind.hpp>
6 
7 using namespace novadaq::errorhandler;
8 
9 qt_rule_engine::qt_rule_engine(fhicl::ParameterSet const& pset, QObject* parent)
10  : QObject(parent)
11  , engine(pset, boost::bind(&qt_rule_engine::new_alarm, this, boost::placeholders::_1, boost::placeholders::_2), boost::bind(&qt_rule_engine::cond_match, this, boost::placeholders::_1))
12 {
13 }
14 
15 qt_rule_engine::~qt_rule_engine()
16 {
17 }
18 
19 void qt_rule_engine::new_alarm(std::string const& rule_name, std::string const& msg)
20 {
21  emit alarm(QString(rule_name.c_str()), QString(msg.c_str()));
22 }
23 
24 void qt_rule_engine::cond_match(std::string const& cond_name)
25 {
26  emit match(QString(cond_name.c_str()));
27 }
28 
29 QVector<QString>
30 qt_rule_engine::cond_names() const
31 {
32  QVector<QString> names;
33  std::vector<std::string>::const_iterator it = engine.cond_names().begin();
34  for (; it != engine.cond_names().end(); ++it)
35  names.push_back(QString(it->c_str()));
36  return names;
37 }
38 
39 QVector<QString>
40 qt_rule_engine::rule_names() const
41 {
42  QVector<QString> names;
43  std::vector<std::string>::const_iterator it = engine.rule_names().begin();
44  for (; it != engine.rule_names().end(); ++it)
45  names.push_back(QString(it->c_str()));
46  return names;
47 }
48 
49 QVector<QString>
50 qt_rule_engine::rule_cond_names(QString const& name) const
51 {
52  std::vector<std::string> const& std_names = engine.rule_cond_names(name.toUtf8().constData());
53 
54  QVector<QString> names;
55 
56  std::vector<std::string>::const_iterator it = std_names.begin();
57  for (; it != std_names.end(); ++it)
58  names.push_back(QString(it->c_str()));
59  return names;
60 }