CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Vulture.h
Go to the documentation of this file.
1 #ifndef EVENTFILTER_UTILITIES_VULTURE_H
2 #define EVENTFILTER_UTILITIES_VULTURE_H
3 
4 
5 
6 #include <string>
7 #include <vector>
8 
9 #include <sys/types.h>
10 #include <dirent.h>
11 #include <stdint.h>
12 
13 #include <toolbox/lang/Class.h>
14 
17 
18 namespace toolbox{
19  namespace task{
20  class WorkLoop;
21  class ActionSignature;
22  }
23 }
24 
25 namespace evf{
26 
27  class CurlPoster;
28 
29  static const int VULTURE_START_MESSAGE_URL_SIZE = 128;
30 
33  int run_;
34  };
35 
36  class Vulture : public toolbox::lang::Class {
37 
38  public:
39 
40  Vulture(bool);
41  virtual ~Vulture();
42  pid_t makeProcess();
43  int start(std::string,int=0);
44  int stop();
45  int hasStarted();
46  int hasStopped();
47  pid_t kill();
48  void retrieve_corefile(char *, char *, uint64_t);
49 
50 
51  private:
52 
53  static const int vulture_queue_offset = 400;
54  void startProwling();
55  bool control(toolbox::task::WorkLoop*);
56  bool prowling(toolbox::task::WorkLoop*);
57  void analyze();
58 
59  static const std::string FS;
60  toolbox::task::WorkLoop *wlCtrl_;
61  toolbox::task::ActionSignature *asCtrl_;
62  bool running_;
63  toolbox::task::WorkLoop *wlProwl_;
64  toolbox::task::ActionSignature *asProwl_;
65  bool prowling_;
66  std::string iDieUrl_;
68  pid_t vulturePid_;
69  DIR *tmp_;
70  std::vector<std::string> currentCoreList_;
71  time_t lastUpdate_;
72  unsigned int newCores_;
76  int started_;
77  int stopped_;
79  };
80 }
81 #endif
int stop()
Definition: Vulture.cc:254
char url_[VULTURE_START_MESSAGE_URL_SIZE]
Definition: Vulture.h:32
pid_t makeProcess()
Definition: Vulture.cc:154
bool running_
Definition: Vulture.h:62
toolbox::task::WorkLoop * wlProwl_
Definition: Vulture.h:63
virtual ~Vulture()
Definition: Vulture.cc:147
pid_t kill()
Definition: Vulture.cc:263
time_t lastUpdate_
Definition: Vulture.h:71
SlaveQueue * sq_
Definition: Vulture.h:75
static const std::string FS
Definition: Vulture.h:59
void retrieve_corefile(char *, char *, uint64_t)
bool prowling(toolbox::task::WorkLoop *)
Definition: Vulture.cc:343
bool updateMode_
Definition: Vulture.h:67
std::vector< std::string > currentCoreList_
Definition: Vulture.h:70
DIR * tmp_
Definition: Vulture.h:69
toolbox::task::ActionSignature * asCtrl_
Definition: Vulture.h:61
int start(std::string, int=0)
Definition: Vulture.cc:241
toolbox::task::ActionSignature * asProwl_
Definition: Vulture.h:64
toolbox::task::WorkLoop * wlCtrl_
Definition: Vulture.h:60
bool control(toolbox::task::WorkLoop *)
Definition: Vulture.cc:295
bool prowling_
Definition: Vulture.h:65
void startProwling()
Definition: Vulture.cc:272
void analyze()
Definition: Vulture.cc:398
CurlPoster * poster_
Definition: Vulture.h:73
unsigned long long uint64_t
Definition: Time.h:15
static const int vulture_queue_offset
Definition: Vulture.h:53
static const int VULTURE_START_MESSAGE_URL_SIZE
Definition: Vulture.h:29
int hasStopped()
Definition: Vulture.cc:228
MasterQueue * mq_
Definition: Vulture.h:74
int hasStarted()
Definition: Vulture.cc:215
Vulture(bool)
Definition: Vulture.cc:117
unsigned int newCores_
Definition: Vulture.h:72
bool handicapped_
Definition: Vulture.h:78
int stopped_
Definition: Vulture.h:77
int started_
Definition: Vulture.h:76
std::string iDieUrl_
Definition: Vulture.h:66
pid_t vulturePid_
Definition: Vulture.h:68