CMS 3D CMS Logo

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
iDie.h
Go to the documentation of this file.
1 #ifndef EVENTFILTER_GOODIES_IDIE_H
2 #define EVENTFILTER_GOODIES_IDIE_H
3 
6 
7 #include "xdata/String.h"
8 #include "xdata/UnsignedInteger32.h"
9 #include "xdata/ActionListener.h"
10 
11 #include "xoap/MessageReference.h"
12 #include "xoap/MessageFactory.h"
13 #include "xoap/Method.h"
14 
15 #include "xgi/Utils.h"
16 #include "xgi/Input.h"
17 #include "xgi/Output.h"
18 #include "xgi/Method.h"
19 
20 #include "xdaq/Application.h"
21 
22 #include "toolbox/net/URN.h"
23 #include "toolbox/fsm/exception/Exception.h"
24 
25 
26 #include <vector>
27 
28 #include <sys/time.h>
29 
30 
31 namespace evf {
32 
33 
34  namespace internal{
35  struct fu{
36  time_t tstamp;
37  unsigned int ccount;
38  std::vector<pid_t> cpids;
39  std::vector<std::string> signals;
40  std::vector<std::string> stacktraces;
41  };
42  }
43  typedef std::map<std::string,internal::fu> fmap;
44  typedef fmap::iterator ifmap;
45 
46  class iDie : public xdaq::Application,
47  public xdata::ActionListener
48  {
49  public:
50  //
51  // xdaq instantiator macro
52  //
54 
55 
56  //
57  // construction/destruction
58  //
59  iDie(xdaq::ApplicationStub *s);
60  virtual ~iDie();
61  //UI
64  void summaryTable(xgi::Input *in,xgi::Output *out)
66  void detailsTable(xgi::Input *in,xgi::Output *out)
68  void dumpTable(xgi::Input *in,xgi::Output *out)
70  void updater(xgi::Input *in,xgi::Output *out)
72  void iChoke(xgi::Input *in,xgi::Output *out)
76  //AI
77  void postEntry(xgi::Input*in,xgi::Output*out)
81 
82  // *fake* fsm soap command callback
83  xoap::MessageReference fsmCallback(xoap::MessageReference msg)
85 
86  // xdata:ActionListener interface
87  void actionPerformed(xdata::Event& e);
88 
89 
90  private:
91 
93  sorted_indices(const std::vector<int> &arr) : arr_(arr)
94  {
95  ind_.resize(arr_.size(),0);
96  unsigned int i = 0;
97  while(i<ind_.size()) {ind_[i] = i; i++;}
98  std::sort(ind_.rbegin(),ind_.rend(),*this);
99  }
100  int operator[](size_t ind) const {return arr_[ind_[ind]];}
101 
102  bool operator()(const size_t a, const size_t b) const
103  {
104  return arr_[a]<arr_[b];
105  }
106  int ii(size_t ind){return ind_[ind];}
107  std::vector<int> ind_;
108  const std::vector<int> &arr_;
109  };
110  //
111  // private member functions
112  //
113 
114  void reset();
115  void parseModuleLegenda(std::string);
116  void parseModuleHisto(const char *, unsigned int);
117  void parsePathLegenda(std::string);
118  void parsePathHisto(const unsigned char *, unsigned int);
119  //
120  // member data
121  //
122 
123  // message logger
124  Logger log_;
125 
126  // monitored parameters
127  xdata::String url_;
128  xdata::String class_;
129  xdata::UnsignedInteger32 instance_;
130  xdata::String hostname_;
131  xdata::UnsignedInteger32 runNumber_;
132  xdata::String configString_;
134 
135  unsigned int totalCores_;
136  unsigned int nstates_;
137  std::vector<int> cpuentries_;
138  std::vector<std::vector<int> > cpustat_;
139  std::vector<std::string> mapmod_;
140  unsigned int last_ls_;
141  std::vector<TriggerReportStatic>trp_;
142  std::vector<int> trpentries_;
143  std::vector<std::string> mappath_;
144  }; // class iDie
145 
146 
147 } // namespace evf
148 
149 
150 #endif
XDAQ_INSTANTIATOR()
int i
Definition: DBlmapReader.cc:9
xdata::UnsignedInteger32 runNumber_
Definition: iDie.h:131
#define Input(cl)
Definition: vmac.h:189
xdata::UnsignedInteger32 instance_
Definition: iDie.h:129
int operator[](size_t ind) const
Definition: iDie.h:100
iDie(xdaq::ApplicationStub *s)
Definition: iDie.cc:33
xdata::String configString_
Definition: iDie.h:132
std::vector< int > ind_
Definition: iDie.h:107
int ii(size_t ind)
Definition: iDie.h:106
void parsePathLegenda(std::string)
Definition: iDie.cc:476
unsigned int nstates_
Definition: iDie.h:136
time_t tstamp
Definition: iDie.h:36
void postEntryiChoke(xgi::Input *in, xgi::Output *out)
Definition: iDie.cc:402
Logger log_
Definition: iDie.h:124
void iChoke(xgi::Input *in, xgi::Output *out)
Definition: iDie.cc:257
void parseModuleLegenda(std::string)
Definition: iDie.cc:442
void updater(xgi::Input *in, xgi::Output *out)
Definition: iDie.cc:194
xdata::String class_
Definition: iDie.h:128
std::vector< int > cpuentries_
Definition: iDie.h:137
std::map< std::string, internal::fu > fmap
Definition: iDie.h:43
std::vector< int > trpentries_
Definition: iDie.h:142
std::vector< TriggerReportStatic > trp_
Definition: iDie.h:141
std::vector< std::vector< int > > cpustat_
Definition: iDie.h:138
unsigned int totalCores_
Definition: iDie.h:135
xoap::MessageReference fsmCallback(xoap::MessageReference msg)
Definition: iDie.cc:99
void actionPerformed(xdata::Event &e)
Definition: iDie.cc:83
Definition: iDie.h:46
void detailsTable(xgi::Input *in, xgi::Output *out)
Definition: iDie.cc:208
void postEntry(xgi::Input *in, xgi::Output *out)
Definition: iDie.cc:324
tuple out
Definition: dbtoconf.py:99
void parsePathHisto(const unsigned char *, unsigned int)
Definition: iDie.cc:489
void dumpTable(xgi::Input *in, xgi::Output *out)
Definition: iDie.cc:228
fmap fus_
Definition: iDie.h:133
unsigned int ccount
Definition: iDie.h:37
void defaultWeb(xgi::Input *in, xgi::Output *out)
Definition: iDie.cc:160
void iChokeMiniInterface(xgi::Input *in, xgi::Output *out)
Definition: iDie.cc:251
unsigned int last_ls_
Definition: iDie.h:140
std::vector< std::string > mappath_
Definition: iDie.h:143
double b
Definition: hdecay.h:120
bool operator()(const size_t a, const size_t b) const
Definition: iDie.h:102
std::vector< std::string > signals
Definition: iDie.h:39
xdata::String hostname_
Definition: iDie.h:130
void parseModuleHisto(const char *, unsigned int)
Definition: iDie.cc:459
#define Output(cl)
Definition: vmac.h:193
double a
Definition: hdecay.h:121
void reset()
Definition: iDie.cc:436
void summaryTable(xgi::Input *in, xgi::Output *out)
Definition: iDie.cc:200
virtual ~iDie()
Definition: iDie.cc:78
std::vector< std::string > stacktraces
Definition: iDie.h:40
fmap::iterator ifmap
Definition: iDie.h:44
string s
Definition: asciidump.py:422
const std::vector< int > & arr_
Definition: iDie.h:108
std::vector< pid_t > cpids
Definition: iDie.h:38
xdata::String url_
Definition: iDie.h:127
sorted_indices(const std::vector< int > &arr)
Definition: iDie.h:93
std::vector< std::string > mapmod_
Definition: iDie.h:139