-rw-r--r-- | include/sitecing/cgi_component.h | 11 | ||||
-rw-r--r-- | include/sitecing/component_factory.h | 14 | ||||
-rw-r--r-- | include/sitecing/component_so.h | 6 | ||||
-rw-r--r-- | include/sitecing/configuration.h | 23 | ||||
-rw-r--r-- | include/sitecing/file_factory.h | 4 | ||||
-rw-r--r-- | include/sitecing/process_manager.h | 2 | ||||
-rw-r--r-- | include/sitecing/scoreboard.h | 3 | ||||
-rw-r--r-- | include/sitecing/sitecing_parser.h | 6 | ||||
-rw-r--r-- | include/sitecing/sitecing_util.h | 24 | ||||
-rw-r--r-- | include/sitecing/util.h | 4 |
10 files changed, 63 insertions, 34 deletions
diff --git a/include/sitecing/cgi_component.h b/include/sitecing/cgi_component.h index 91df689..0cad438 100644 --- a/include/sitecing/cgi_component.h +++ b/include/sitecing/cgi_component.h | |||
@@ -26,29 +26,20 @@ namespace sitecing { | |||
26 | /** | 26 | /** |
27 | * The interface to the CGI gateway. | 27 | * The interface to the CGI gateway. |
28 | */ | 28 | */ |
29 | kingate::cgi_gateway* __CGI; | 29 | kingate::cgi_gateway* __CGI; |
30 | 30 | ||
31 | cgi_component(); | 31 | cgi_component(); |
32 | virtual ~cgi_component(); | 32 | virtual ~cgi_component(); |
33 | 33 | ||
34 | /** | ||
35 | * @overload acomponent::__set_interface() | ||
36 | */ | ||
37 | void __set_interface(sitecing_interface* scif); | 34 | void __set_interface(sitecing_interface* scif); |
38 | /** | 35 | void __on_change_interface(sitecing_interface *oscif); |
39 | * @overload acomponent::__on_change_interface() | ||
40 | */ | ||
41 | void __on_change_interface(sitecing_interface *o); | ||
42 | /** | 36 | /** |
43 | * Invoked on the change of the interface to the CGI. | 37 | * Invoked on the change of the interface to the CGI. |
44 | */ | 38 | */ |
45 | virtual void __on_change_CGI(kingate::cgi_gateway *o); | 39 | virtual void __on_change_CGI(kingate::cgi_gateway *o); |
46 | /** | ||
47 | * @overload acomponent::__on_imports() | ||
48 | */ | ||
49 | virtual void __on_imports(); | 40 | virtual void __on_imports(); |
50 | }; | 41 | }; |
51 | 42 | ||
52 | } | 43 | } |
53 | 44 | ||
54 | #endif /* __SITECING_CGI_COMPONENT_H */ | 45 | #endif /* __SITECING_CGI_COMPONENT_H */ |
diff --git a/include/sitecing/component_factory.h b/include/sitecing/component_factory.h index 9ddf70d..8f103e0 100644 --- a/include/sitecing/component_factory.h +++ b/include/sitecing/component_factory.h | |||
@@ -37,31 +37,19 @@ namespace sitecing { | |||
37 | */ | 37 | */ |
38 | configuration& config; | 38 | configuration& config; |
39 | 39 | ||
40 | /** | 40 | /** |
41 | * @param c reference to the configuration container. | 41 | * @param c reference to the configuration container. |
42 | */ | 42 | */ |
43 | component_factory(configuration& c); | 43 | component_factory(configuration& c); |
44 | 44 | ||
45 | /** | ||
46 | * @overload file_factory::get_dependencies() | ||
47 | */ | ||
48 | virtual void get_dependencies(const string& dst,file_list_t& deps); | 45 | virtual void get_dependencies(const string& dst,file_list_t& deps); |
49 | /** | 46 | virtual bool is_uptodate(const string& dst,file_list_t *deps=0); |
50 | * @overload file_factory::is_uptodate() | ||
51 | */ | ||
52 | virtual bool is_uptodate(const string& dst,file_list_t *deps=NULL); | ||
53 | /** | ||
54 | * @overload file_factory::build() | ||
55 | */ | ||
56 | virtual void build(const string& dst); | 47 | virtual void build(const string& dst); |
57 | /** | ||
58 | * @overload file_factory::make() | ||
59 | */ | ||
60 | virtual void make(const string& dst); | 48 | virtual void make(const string& dst); |
61 | 49 | ||
62 | /** | 50 | /** |
63 | * Helper function for executing external command. | 51 | * Helper function for executing external command. |
64 | * @param cmd the command to execute. | 52 | * @param cmd the command to execute. |
65 | * @param args the command line arguments. | 53 | * @param args the command line arguments. |
66 | * @param stdo stdout for the child process. | 54 | * @param stdo stdout for the child process. |
67 | * @param stde stderr for the child process. | 55 | * @param stde stderr for the child process. |
diff --git a/include/sitecing/component_so.h b/include/sitecing/component_so.h index 3239d4a..3daceef 100644 --- a/include/sitecing/component_so.h +++ b/include/sitecing/component_so.h | |||
@@ -144,16 +144,22 @@ namespace sitecing { | |||
144 | template<typename CT> | 144 | template<typename CT> |
145 | class so_component_t : public sitecing::so_component { | 145 | class so_component_t : public sitecing::so_component { |
146 | public: | 146 | public: |
147 | /** | 147 | /** |
148 | * @param s The untyped instance container. | 148 | * @param s The untyped instance container. |
149 | */ | 149 | */ |
150 | so_component_t(const so_component& s) | 150 | so_component_t(const so_component& s) |
151 | : so_component(s) { } | 151 | : so_component(s) { } |
152 | |||
153 | /** | ||
154 | * typed dereference operator | ||
155 | * @return the pointer to the most derived component instance | ||
156 | * @see acomponent::__the_most_derived_this() | ||
157 | */ | ||
152 | CT* operator->() { | 158 | CT* operator->() { |
153 | return static_cast<CT*>(ac->__the_most_derived_this()); | 159 | return static_cast<CT*>(ac->__the_most_derived_this()); |
154 | } | 160 | } |
155 | }; | 161 | }; |
156 | 162 | ||
157 | } | 163 | } |
158 | 164 | ||
159 | #endif /* __SITECING_COMPONENT_SO_H */ | 165 | #endif /* __SITECING_COMPONENT_SO_H */ |
diff --git a/include/sitecing/configuration.h b/include/sitecing/configuration.h index 330a5a6..a2bf612 100644 --- a/include/sitecing/configuration.h +++ b/include/sitecing/configuration.h | |||
@@ -139,18 +139,27 @@ namespace sitecing { | |||
139 | * The action handler component. | 139 | * The action handler component. |
140 | */ | 140 | */ |
141 | string action; | 141 | string action; |
142 | /** | 142 | /** |
143 | * Arguments for the action hander coponent. | 143 | * Arguments for the action hander coponent. |
144 | */ | 144 | */ |
145 | list<string> args; | 145 | list<string> args; |
146 | 146 | ||
147 | /** | ||
148 | * @param s regex pattern | ||
149 | * @param a action handler | ||
150 | */ | ||
147 | action_handler_t(const string& s,const string& a) | 151 | action_handler_t(const string& s,const string& a) |
148 | : s_regex(s), regex(s), action(a) { } | 152 | : s_regex(s), regex(s), action(a) { } |
153 | /** | ||
154 | * Copy constructor | ||
155 | * | ||
156 | * @param s source object | ||
157 | */ | ||
149 | action_handler_t(const action_handler_t& s) | 158 | action_handler_t(const action_handler_t& s) |
150 | : s_regex(s.s_regex), regex(s.regex), action (s.action), args(s.args) { } | 159 | : s_regex(s.s_regex), regex(s.regex), action (s.action), args(s.args) { } |
151 | }; | 160 | }; |
152 | /** | 161 | /** |
153 | * Type for the list of action handlers. | 162 | * Type for the list of action handlers. |
154 | */ | 163 | */ |
155 | typedef list<action_handler_t> action_handlers_t; | 164 | typedef list<action_handler_t> action_handlers_t; |
156 | /** | 165 | /** |
@@ -213,17 +222,17 @@ namespace sitecing { | |||
213 | * See if the data is still valid. | 222 | * See if the data is still valid. |
214 | * @return true if yes. | 223 | * @return true if yes. |
215 | */ | 224 | */ |
216 | bool is_valid(); | 225 | bool is_valid(); |
217 | 226 | ||
218 | /** | 227 | /** |
219 | * Load the configuration file. | 228 | * Load the configuration file. |
220 | * @param config the main configuration container. | 229 | * @param config the main configuration container. |
221 | * @param the configuration file. | 230 | * @param cfile the configuration file. |
222 | */ | 231 | */ |
223 | void parse(configuration *config,const string& cfile); | 232 | void parse(configuration *config,const string& cfile); |
224 | }; | 233 | }; |
225 | 234 | ||
226 | /** | 235 | /** |
227 | * The main configuration container. | 236 | * The main configuration container. |
228 | */ | 237 | */ |
229 | class configuration { | 238 | class configuration { |
@@ -293,17 +302,17 @@ namespace sitecing { | |||
293 | */ | 302 | */ |
294 | flag_multi_process = 0x00000400, | 303 | flag_multi_process = 0x00000400, |
295 | /** | 304 | /** |
296 | * Was the user specified? | 305 | * Was the user specified? |
297 | * @see user | 306 | * @see user |
298 | */ | 307 | */ |
299 | flag_user = 0x00000800, | 308 | flag_user = 0x00000800, |
300 | /** | 309 | /** |
301 | * @Was the group specified? | 310 | * Was the group specified? |
302 | * @see group | 311 | * @see group |
303 | */ | 312 | */ |
304 | flag_group = 0x00001000, | 313 | flag_group = 0x00001000, |
305 | /** | 314 | /** |
306 | * Was the root to change to specified? | 315 | * Was the root to change to specified? |
307 | * @see chroot | 316 | * @see chroot |
308 | */ | 317 | */ |
309 | flag_chroot = 0x00002000, | 318 | flag_chroot = 0x00002000, |
@@ -385,32 +394,40 @@ namespace sitecing { | |||
385 | * The file to store PID into. | 394 | * The file to store PID into. |
386 | */ | 395 | */ |
387 | string pid_file; | 396 | string pid_file; |
388 | /** | 397 | /** |
389 | * Whether we should fork into background. | 398 | * Whether we should fork into background. |
390 | */ | 399 | */ |
391 | bool daemonize; | 400 | bool daemonize; |
392 | 401 | ||
402 | /** | ||
403 | * Type for the config options map | ||
404 | * @see specs | ||
405 | */ | ||
393 | typedef map<string,config_options> specs_t; | 406 | typedef map<string,config_options> specs_t; |
394 | /** | 407 | /** |
395 | * The local config options map. | 408 | * The local config options map. |
396 | */ | 409 | */ |
397 | specs_t specs; | 410 | specs_t specs; |
411 | /** | ||
412 | * Type for the loaded per-dir config map | ||
413 | * @see loaded_specs | ||
414 | */ | ||
398 | typedef map<string,loaded_options> loaded_specs_t; | 415 | typedef map<string,loaded_options> loaded_specs_t; |
399 | /** | 416 | /** |
400 | * The local config options as specified in per-dir config files | 417 | * The local config options as specified in per-dir config files |
401 | * map. | 418 | * map. |
402 | */ | 419 | */ |
403 | loaded_specs_t loaded_specs; | 420 | loaded_specs_t loaded_specs; |
404 | 421 | ||
405 | configuration(); | 422 | configuration(); |
406 | /** | 423 | /** |
407 | * @param cfile the configuration file. | 424 | * @param cfile the configuration file. |
408 | * @param ab @todo TODO:: document me | 425 | * @param ab document me @todo TODO:: document me |
409 | */ | 426 | */ |
410 | configuration(const string& cfile,bool ab=false); | 427 | configuration(const string& cfile,bool ab=false); |
411 | 428 | ||
412 | /** | 429 | /** |
413 | * Parse the configuration file. | 430 | * Parse the configuration file. |
414 | * @param cfile the configuration file. | 431 | * @param cfile the configuration file. |
415 | */ | 432 | */ |
416 | void parse(const string& cfile); | 433 | void parse(const string& cfile); |
diff --git a/include/sitecing/file_factory.h b/include/sitecing/file_factory.h index 7ec82da..43a27bb 100644 --- a/include/sitecing/file_factory.h +++ b/include/sitecing/file_factory.h | |||
@@ -27,23 +27,23 @@ namespace sitecing { | |||
27 | */ | 27 | */ |
28 | typedef list<string> file_list_t; | 28 | typedef list<string> file_list_t; |
29 | 29 | ||
30 | file_factory() | 30 | file_factory() |
31 | : depth(0) { } | 31 | : depth(0) { } |
32 | 32 | ||
33 | /** | 33 | /** |
34 | * Fetch depndencies for the given file. | 34 | * Fetch depndencies for the given file. |
35 | * @param dst destination file. | 35 | * @param dst the destination file. |
36 | * @param deps where to put dependencies to. | 36 | * @param deps where to put dependencies to. |
37 | */ | 37 | */ |
38 | virtual void get_dependencies(const string& dst,file_list_t& deps) = 0; | 38 | virtual void get_dependencies(const string& dst,file_list_t& deps) = 0; |
39 | /** | 39 | /** |
40 | * Check if the destination is up to day. | 40 | * Check if the destination is up to day. |
41 | * @param the destination file. | 41 | * @param dst the destination file. |
42 | * @param deps if the deps pointer is non there, the dependencies | 42 | * @param deps if the deps pointer is non there, the dependencies |
43 | * retrieved will be stored there. | 43 | * retrieved will be stored there. |
44 | * @return true if yes. | 44 | * @return true if yes. |
45 | * @see get_dependencies() | 45 | * @see get_dependencies() |
46 | */ | 46 | */ |
47 | virtual bool is_uptodate(const string& dst,file_list_t* deps=0); | 47 | virtual bool is_uptodate(const string& dst,file_list_t* deps=0); |
48 | /** | 48 | /** |
49 | * Build the file requested. | 49 | * Build the file requested. |
diff --git a/include/sitecing/process_manager.h b/include/sitecing/process_manager.h index 73415d3..921f159 100644 --- a/include/sitecing/process_manager.h +++ b/include/sitecing/process_manager.h | |||
@@ -49,17 +49,17 @@ namespace sitecing { | |||
49 | 49 | ||
50 | /** | 50 | /** |
51 | * The main loop. | 51 | * The main loop. |
52 | */ | 52 | */ |
53 | void manage(); | 53 | void manage(); |
54 | 54 | ||
55 | /** | 55 | /** |
56 | * The worker function. | 56 | * The worker function. |
57 | * @param the slot allocated for the process. | 57 | * @param slot the slot allocated for the process. |
58 | */ | 58 | */ |
59 | virtual void process(int slot) = 0; | 59 | virtual void process(int slot) = 0; |
60 | 60 | ||
61 | /** | 61 | /** |
62 | * @todo TODO: wish I could remember -- document me. | 62 | * @todo TODO: wish I could remember -- document me. |
63 | */ | 63 | */ |
64 | void manage_children(); | 64 | void manage_children(); |
65 | /** | 65 | /** |
diff --git a/include/sitecing/scoreboard.h b/include/sitecing/scoreboard.h index 788f881..1371ab1 100644 --- a/include/sitecing/scoreboard.h +++ b/include/sitecing/scoreboard.h | |||
@@ -40,16 +40,19 @@ namespace sitecing { | |||
40 | * The process is accepting connection. | 40 | * The process is accepting connection. |
41 | */ | 41 | */ |
42 | state_accept, | 42 | state_accept, |
43 | /** | 43 | /** |
44 | * The process is processing request. | 44 | * The process is processing request. |
45 | */ | 45 | */ |
46 | state_processing | 46 | state_processing |
47 | } state; | 47 | } state; |
48 | /** | ||
49 | * Process ID | ||
50 | */ | ||
48 | pid_t pid; | 51 | pid_t pid; |
49 | }; | 52 | }; |
50 | 53 | ||
51 | /** | 54 | /** |
52 | * The scoreboard manager. | 55 | * The scoreboard manager. |
53 | */ | 56 | */ |
54 | class scoreboard { | 57 | class scoreboard { |
55 | /** | 58 | /** |
diff --git a/include/sitecing/sitecing_parser.h b/include/sitecing/sitecing_parser.h index a8474f3..a53ef22 100644 --- a/include/sitecing/sitecing_parser.h +++ b/include/sitecing/sitecing_parser.h | |||
@@ -83,17 +83,18 @@ class sitecing_parser : public sitecing_parserFlexLexer { | |||
83 | */ | 83 | */ |
84 | bool bTypeOnly; | 84 | bool bTypeOnly; |
85 | 85 | ||
86 | /** | 86 | /** |
87 | * @param t type. | 87 | * @param t type. |
88 | * @param n name. | 88 | * @param n name. |
89 | * @param i initializer. | 89 | * @param i initializer. |
90 | * @param bc whether it is a component. | 90 | * @param bc whether it is a component. |
91 | * @param bto @todo TODO: @see bTypeOnly. | 91 | * @param bto document me @todo TODO: |
92 | * @see bTypeOnly. | ||
92 | */ | 93 | */ |
93 | member_variable(const string& t,const string& n,const string& i,bool bc = false,bool bto = false) | 94 | member_variable(const string& t,const string& n,const string& i,bool bc = false,bool bto = false) |
94 | : type(t), name(n), initializer(i), bComponent(bc), bTypeOnly(bto) { } | 95 | : type(t), name(n), initializer(i), bComponent(bc), bTypeOnly(bto) { } |
95 | }; | 96 | }; |
96 | /** | 97 | /** |
97 | * The list of member variables. | 98 | * The list of member variables. |
98 | */ | 99 | */ |
99 | typedef list<member_variable> member_variables_t; | 100 | typedef list<member_variable> member_variables_t; |
@@ -216,18 +217,17 @@ class sitecing_parser : public sitecing_parserFlexLexer { | |||
216 | */ | 217 | */ |
217 | string _name; | 218 | string _name; |
218 | /** | 219 | /** |
219 | * The argument declaration. Obviously for member functions. | 220 | * The argument declaration. Obviously for member functions. |
220 | */ | 221 | */ |
221 | string _args; | 222 | string _args; |
222 | 223 | ||
223 | /** | 224 | /** |
224 | * @param flags. | 225 | * @param f processing flags @see flags |
225 | * @see flags | ||
226 | */ | 226 | */ |
227 | modus_operandi(int f = 0) | 227 | modus_operandi(int f = 0) |
228 | : modus(modus_code), flags(f) { } | 228 | : modus(modus_code), flags(f) { } |
229 | 229 | ||
230 | /** | 230 | /** |
231 | * Change the processing mode. | 231 | * Change the processing mode. |
232 | */ | 232 | */ |
233 | void modify(modus_t m); | 233 | void modify(modus_t m); |
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 | |||
@@ -14,41 +14,65 @@ | |||
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 { |
diff --git a/include/sitecing/util.h b/include/sitecing/util.h index 5750ab6..a38ae90 100644 --- a/include/sitecing/util.h +++ b/include/sitecing/util.h | |||
@@ -17,25 +17,25 @@ namespace sitecing { | |||
17 | * the html_escape options enumeration. | 17 | * the html_escape options enumeration. |
18 | */ | 18 | */ |
19 | enum html_escape_options { | 19 | enum html_escape_options { |
20 | /** | 20 | /** |
21 | * Turn spaces into | 21 | * Turn spaces into |
22 | */ | 22 | */ |
23 | html_escape_nbsp = 0x0001, | 23 | html_escape_nbsp = 0x0001, |
24 | /** | 24 | /** |
25 | * Turn newlines into <br/> or <br>. | 25 | * Turn newlines into br/ or br. |
26 | */ | 26 | */ |
27 | html_escape_br = 0x0002, | 27 | html_escape_br = 0x0002, |
28 | /** | 28 | /** |
29 | * Turn quotes to " | 29 | * Turn quotes to " |
30 | */ | 30 | */ |
31 | html_escape_quot = 0x0004, | 31 | html_escape_quot = 0x0004, |
32 | /** | 32 | /** |
33 | * Do not put '/' into <br/> consruct. | 33 | * Do not put '/' into br consruct. |
34 | */ | 34 | */ |
35 | html_escape_br_noslash = 0x0008 | 35 | html_escape_br_noslash = 0x0008 |
36 | }; | 36 | }; |
37 | /** | 37 | /** |
38 | * Escape string suitable for html output. | 38 | * Escape string suitable for html output. |
39 | * @param str the string. | 39 | * @param str the string. |
40 | * @param flags options. | 40 | * @param flags options. |
41 | * @return the string escaped. | 41 | * @return the string escaped. |