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
|
#include <string>
#include <sys/time.h> /* for gettimeofday(), timeval */
#include <vector>
#include <map>
#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);
int set40(const std::string mid, const int shift);
};
|