Diffstat (limited to 'include/sitecing/sitecing_util.h') (more/less context) (show whitespace changes)
-rw-r--r-- | include/sitecing/sitecing_util.h | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/include/sitecing/sitecing_util.h b/include/sitecing/sitecing_util.h index f642c74..233292c 100644 --- a/include/sitecing/sitecing_util.h +++ b/include/sitecing/sitecing_util.h | |||
@@ -1,94 +1,118 @@ | |||
1 | #ifndef __SITECING_SITECING_UTIL_H | 1 | #ifndef __SITECING_SITECING_UTIL_H |
2 | #define __SITECING_SITECING_UTIL_H | 2 | #define __SITECING_SITECING_UTIL_H |
3 | 3 | ||
4 | #include <sys/types.h> | 4 | #include <sys/types.h> |
5 | #include <string> | 5 | #include <string> |
6 | #include <konforka/exception.h> | 6 | #include <konforka/exception.h> |
7 | #include <konforka/util.h> | 7 | #include <konforka/util.h> |
8 | 8 | ||
9 | /** | 9 | /** |
10 | * @file | 10 | * @file |
11 | * @brief utility classes and functions. | 11 | * @brief utility classes and functions. |
12 | */ | 12 | */ |
13 | 13 | ||
14 | namespace sitecing { | 14 | namespace sitecing { |
15 | using namespace std; | 15 | using namespace std; |
16 | 16 | ||
17 | /** | 17 | /** |
18 | * Base class for utility exceptions. | 18 | * Base class for utility exceptions. |
19 | */ | 19 | */ |
20 | class utility_error : public konforka::exception { | 20 | class utility_error : public konforka::exception { |
21 | public: | 21 | public: |
22 | /** | ||
23 | * @param fi file name | ||
24 | * @param fu function name | ||
25 | * @param l line number | ||
26 | * @param w what | ||
27 | */ | ||
22 | utility_error(const string& fi,const string& fu,int l,const string& w) | 28 | utility_error(const string& fi,const string& fu,int l,const string& w) |
23 | : konforka::exception(fi,fu,l,w) { } | 29 | : konforka::exception(fi,fu,l,w) { } |
24 | }; | 30 | }; |
25 | 31 | ||
26 | /** | 32 | /** |
27 | * No prefix or suffix found to strip out. | 33 | * No prefix or suffix found to strip out. |
28 | */ | 34 | */ |
29 | class utility_no_affix : public utility_error { | 35 | class utility_no_affix : public utility_error { |
30 | public: | 36 | public: |
37 | /** | ||
38 | * @param fi file name | ||
39 | * @param fu function name | ||
40 | * @param l line number | ||
41 | * @param w what | ||
42 | */ | ||
31 | utility_no_affix(const string& fi,const string& fu,int l,const string& w) | 43 | utility_no_affix(const string& fi,const string& fu,int l,const string& w) |
32 | : utility_error(fi,fu,l,w) { } | 44 | : utility_error(fi,fu,l,w) { } |
33 | }; | 45 | }; |
34 | /** | 46 | /** |
35 | * No prefix to strip found. | 47 | * No prefix to strip found. |
36 | */ | 48 | */ |
37 | class utility_no_prefix : public utility_no_affix { | 49 | class utility_no_prefix : public utility_no_affix { |
38 | public: | 50 | public: |
51 | /** | ||
52 | * @param fi file name | ||
53 | * @param fu function name | ||
54 | * @param l line number | ||
55 | * @param w what | ||
56 | */ | ||
39 | utility_no_prefix(const string& fi,const string& fu,int l,const string& w) | 57 | utility_no_prefix(const string& fi,const string& fu,int l,const string& w) |
40 | : utility_no_affix(fi,fu,l,w) { } | 58 | : utility_no_affix(fi,fu,l,w) { } |
41 | }; | 59 | }; |
42 | /** | 60 | /** |
43 | * No suffix to strip found. | 61 | * No suffix to strip found. |
44 | */ | 62 | */ |
45 | class utility_no_suffix : public utility_no_affix { | 63 | class utility_no_suffix : public utility_no_affix { |
46 | public: | 64 | public: |
65 | /** | ||
66 | * @param fi file name | ||
67 | * @param fu function name | ||
68 | * @param l line number | ||
69 | * @param w what | ||
70 | */ | ||
47 | utility_no_suffix(const string& fi,const string& fu,int l,const string& w) | 71 | utility_no_suffix(const string& fi,const string& fu,int l,const string& w) |
48 | : utility_no_affix(fi,fu,l,w) { } | 72 | : utility_no_affix(fi,fu,l,w) { } |
49 | }; | 73 | }; |
50 | 74 | ||
51 | /** | 75 | /** |
52 | * The file lock object. Released at the object destruction. | 76 | * The file lock object. Released at the object destruction. |
53 | */ | 77 | */ |
54 | class file_lock { | 78 | class file_lock { |
55 | public: | 79 | public: |
56 | /** | 80 | /** |
57 | * The file descriptor. | 81 | * The file descriptor. |
58 | */ | 82 | */ |
59 | int fd; | 83 | int fd; |
60 | 84 | ||
61 | file_lock() | 85 | file_lock() |
62 | : fd(-1) { } | 86 | : fd(-1) { } |
63 | /** | 87 | /** |
64 | * @param f file name. | 88 | * @param f file name. |
65 | */ | 89 | */ |
66 | file_lock(const string& f) | 90 | file_lock(const string& f) |
67 | : fd(-1) { lock(f); } | 91 | : fd(-1) { lock(f); } |
68 | ~file_lock() { unlock(); } | 92 | ~file_lock() { unlock(); } |
69 | 93 | ||
70 | /** | 94 | /** |
71 | * Do lock. | 95 | * Do lock. |
72 | * @param f file name. | 96 | * @param f file name. |
73 | */ | 97 | */ |
74 | void lock(const string& f); | 98 | void lock(const string& f); |
75 | /** | 99 | /** |
76 | * @todo TODO: wish I could remember the details -- document me. | 100 | * @todo TODO: wish I could remember the details -- document me. |
77 | */ | 101 | */ |
78 | void lock(); | 102 | void lock(); |
79 | /** | 103 | /** |
80 | * Release the lock obtained. | 104 | * Release the lock obtained. |
81 | */ | 105 | */ |
82 | void unlock(); | 106 | void unlock(); |
83 | }; | 107 | }; |
84 | 108 | ||
85 | /** | 109 | /** |
86 | * The pid file. Removed at object destruction. | 110 | * The pid file. Removed at object destruction. |
87 | */ | 111 | */ |
88 | class pid_file { | 112 | class pid_file { |
89 | public: | 113 | public: |
90 | /** | 114 | /** |
91 | * The file name. | 115 | * The file name. |
92 | */ | 116 | */ |
93 | string file_name; | 117 | string file_name; |
94 | /** | 118 | /** |