1
2
3
4
5
6
7
8
9
10 #ifndef PCMK__CRM_COMMON_RULES_INTERNAL__H
11 #define PCMK__CRM_COMMON_RULES_INTERNAL__H
12
13 #include <regex.h>
14 #include <libxml/tree.h>
15
16 #include <crm/common/rules.h>
17 #include <crm/common/iso8601.h>
18
19 enum pcmk__combine {
20 pcmk__combine_unknown,
21 pcmk__combine_and,
22 pcmk__combine_or,
23 };
24
25 enum expression_type pcmk__condition_type(const xmlNode *condition);
26 char *pcmk__replace_submatches(const char *string, const char *match,
27 const regmatch_t submatches[], int nmatches);
28 enum pcmk__combine pcmk__parse_combine(const char *combine);
29
30 int pcmk__evaluate_date_expression(const xmlNode *date_expression,
31 const crm_time_t *now,
32 crm_time_t *next_change);
33 int pcmk__evaluate_condition(xmlNode *expr, const pcmk_rule_input_t *rule_input,
34 crm_time_t *next_change);
35 int pcmk__evaluate_rules(xmlNode *xml, const pcmk_rule_input_t *rule_input,
36 crm_time_t *next_change);
37
38 #endif