CARMA C++
MonitorDataExtractor.h
Go to the documentation of this file.
1 #ifndef CARMA_UI_DBMS_MONITORDATAEXTRACTOR_H
2 #define CARMA_UI_DBMS_MONITORDATAEXTRACTOR_H
3 
17 #include "carma/dbms/Table.h"
18 #include <set>
19 #include <vector>
20 #include <map>
21 
22 
23 namespace carma {
24 
25 namespace dbms {
26  // forward declaration of classes
27  class MonitorDataQueryManager;
28  class TimeRangeFilter;
29  class MonitorPointFilter;
30  class MonitorConfigurationDatabase;
31 }
32 
33 namespace ui {
34 
39 namespace dbms {
40 
46  public:
47  MonitorDataExtractor(const std::string &dbConfFile);
48  virtual ~MonitorDataExtractor();
49 
54  void addMonitorPoint(const std::string &mpName);
65  void addMonitorPoints(const std::string &mpName,
66  const std::string &multiWildcard,
67  const std::string &singleWildcard);
68 
69  void addMonitorPoints(const std::string &mpName,
70  const std::string &multiWildcard,
71  const std::string &singleWildcard,
72  const std::string &selectionMask);
73 
77  void clearPreviousQuery();
78 
94  void setTimeRange(const int &beginTime,
95  const int &endTime,
96  const carma::dbms::MonitorAverageType &averageType =
97  carma::dbms::FRAME_AVG,
98  const bool &includeTime1 = false,
99  const bool &includeTime2 = false,
100  const carma::dbms::TimeFilter::TimeColumnType colType =
101  carma::dbms::TimeFilter::FRAMECOUNT);
102 
109  void setFilter();
110 
115  std::map<int, carma::dbms::Table> getTablePerMp();
116 
122 
127  std::string getCanonicalName(const std::string &tagId);
128 
133  std::string getCanonicalName(const int tagId);
134 
135  private:
136  void createMonitorDataQueryManager();
137 
139  carma::dbms::MPSelectorSet mpSelectors_;
140  carma::dbms::TimeRangeFilter *timeRange_;
141  std::set<carma::dbms::MonitorPointFilter*> mpFilters_;
143  }; // end class MonitorDataExtractor
144 }; // end namespace dbms
145 }; // end namespace ui
146 }; // end namespace carma
147 
148 #endif
Class to mimic a db table The Table class is meant to mimic a database table.
Definition: Table.h:34
std::set< MonitorPointSelector *, MPSelectorCompare > MPSelectorSet
A set of MonitorPointSelector points ordered by tagID.
void setTimeRange(const int &beginTime, const int &endTime, const carma::dbms::MonitorAverageType &averageType=carma::dbms::FRAME_AVG, const bool &includeTime1=false, const bool &includeTime2=false, const carma::dbms::TimeFilter::TimeColumnType colType=carma::dbms::TimeFilter::FRAMECOUNT)
set the time range for finding monitor points
MonitorPointSelector class.
void setFilter()
(note: not implemented yet) this member function should set up filters used for monitor points (see c...
This class contains methods for accessing monitor configuration information.
void addMonitorPoint(const std::string &mpName)
Adds a single monitor point to the search criteria for the DBMS.
void clearPreviousQuery()
Clears query that was set up for MonitorDataExtractor.
carma::dbms::Table getTableOfAllMps()
get monitor points from dbms, where all monitor points are put into a single Table ...
Class to compose and execute a query of the monitor database.
std::string getCanonicalName(const std::string &tagId)
Return the canonical name for a given tagId.
base class for creating UI objects that can access the DBMS
Definition: DataExtractor.h:27
MonitorAverageType
average type of the monitor[point,data file,table]
std::map< int, carma::dbms::Table > getTablePerMp()
get monitor points from dbms, where each monitor point occupies a single Table
represents an SQL query time range filter (part of a WHERE clause This class represents a (closed) ti...
class to represent a simple time filter
void addMonitorPoints(const std::string &mpName, const std::string &multiWildcard, const std::string &singleWildcard)
Add multiple monitor points using wildcard characters.
Table class.
Class for extracting monitor data from the DBMS.