CARMA C++
MonitorPointManager.h
1 #ifndef SZA_UTIL_MONITORPOINTMANAGER_H
2 #define SZA_UTIL_MONITORPOINTMANAGER_H
3 
11 #include <map>
12 #include <string>
13 #include <vector>
14 
15 namespace sza {
16  namespace util {
17 
18  class ArrayMapDataFrameManager;
19  class CoordRange;
20  class MonitorPoint;
21  class RegMapDataFrameManager;
22 
23  class MonitorPointManager {
24  public:
25 
29  MonitorPointManager();
30  MonitorPointManager(ArrayMapDataFrameManager* arrMapFm);
31  MonitorPointManager(RegMapDataFrameManager* regMapFm);
32 
36  virtual ~MonitorPointManager();
37 
43  MonitorPoint* addMonitorPoint(char* regMapName, char* boardName,
44  char* blockName,
45  CoordRange* range=0);
46 
47  MonitorPoint* addMonitorPoint(std::string regMapName,
48  std::string boardName,
49  std::string blockName,
50  CoordRange* range=0);
51 
52  MonitorPoint* addMonitorPoint(char* regMapName, char* boardName,
53  char* blockName,
54  int index);
55 
56  MonitorPoint* addMonitorPoint(char* boardName, char* blockName,
57  CoordRange* range=0);
58 
59  MonitorPoint* addMonitorPoint(char* boardName, char* blockName,
60  int index);
61 
65  MonitorPoint* findMonitorPoint(char* boardName, char* blockName,
66  CoordRange* range=0, bool doThrow=true);
67 
68  MonitorPoint* findMonitorPoint(char* regMapName, char* boardName,
69  char* blockName,
70  CoordRange* range=0, bool doThrow=true);
71 
72  MonitorPoint* findMonitorPoint(std::string boardName,
73  std::string blockName,
74  CoordRange* range=0, bool doThrow=true);
75 
76  MonitorPoint* findMonitorPoint(std::string regMapName,
77  std::string boardName,
78  std::string blockName,
79  CoordRange* range=0, bool doThrow=true);
80 
81 
82  // Remove a single monitor point maintained by this object
83 
84  void remMonitorPoint(std::string regMapName,
85  std::string boardName,
86  std::string blockName,
87  CoordRange* range=0);
88 
89  void remMonitorPoint(std::string boardName,
90  std::string blockName,
91  CoordRange* range=0);
92 
93  void remMonitorPoint(std::ostringstream& os);
94 
95  // Reset all monitor points managed by this object
96 
97  void reset();
98 
99  // Clear all monitor points managed by this object
100 
101  void clear();
102 
103  // List monitor points managed by this object
104 
105  void list();
106 
107  // Return a list of all monitor points
108 
109  std::vector<std::string> getList(bool sort=false);
110 
114  friend std::ostream& operator<<(std::ostream& os,
115  MonitorPointManager& mp);
116 
117  // Return a formatted printout of a single monitor point
118 
119  std::string formatReg(std::string regMapName, std::string boardName, std::string blockName,
120  CoordRange* range);
121 
122  private:
123 
124  bool isArrMap_;
125  RegMapDataFrameManager* regMapFm_;
126  ArrayMapDataFrameManager* arrMapFm_;
127 
128  std::vector<MonitorPoint*> monitorPoints_;
129  std::map<std::string, MonitorPoint*> monitorMap_;
130 
131  }; // End class Monitor
132 
133  } // End namespace util
134 } // End namespace sza
135 
136 
137 
138 #endif // End #ifndef SZA_UTIL_MONITORPOINTMANAGER_H