summaryrefslogtreecommitdiff
path: root/tools/libltgrey.h
blob: 14ed144a3b152d3d94c991a770f1171d1a522882 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <string>
#include <sys/time.h>           /* for gettimeofday(), timeval */
#include <vector>
#include <map>

// beware:  access illogically comes *before* modification
// in the array passed to utimes:
const int upd_ac(0);
const int upd_mod(1);

#define state_40_macro \
foo(unseen)  \
foo(green)   \
foo(ripe)    \
foo(spoiled) \
foo(fail)

// expand the codes to make some <const int> names:
#define foo(name) name,
typedef enum {
  state_40_macro
} state_40;
#undef foo

class whatsit{
public:
  std::string parent_dir;
  std::string progname;
  pid_t mypid;
  std::string suffix;
  std::string progid;
  int verbosity;
  std::map<state_40,std::string> decode_40;

  whatsit(const std::string name, const std::string _parent_dir);
  int doit(const int penalty, const int stain);
// access comes after modification:
  void update(const std::string msg, const timeval new_mod,
        const timeval new_ac, const int penalty, const int stain);
  int setup();
  int check_dns(const char* ipvar, const char* namevar);
  int check_dns_sub(const char* ipvar, const char* namevar,
    std::string &addr, std::string &host,
    std::vector<std::string> &checked);
  void dump(const std::string var);
  int maybe_mkdir(const std::string somedir, const std::string msg);
  state_40 get40(const std::string mid);
  state_40 get40(const std::string mid, timeval times[2]);
  int set40(const std::string mid, const int shift);
  void scan40(const int copies);
};