This source file includes following definitions.
- is_not_set
- is_set
- is_set_any
- crm_str_table_new
- crm_strcase_table_new
- crm_hash_table_size
- crm_itoa
- crm_ftoa
- crm_ttoa
1
2
3
4
5
6
7
8
9
10 #ifndef PCMK__CRM_COMMON_UTIL_COMPAT__H
11 #define PCMK__CRM_COMMON_UTIL_COMPAT__H
12
13 #include <glib.h>
14 #include <libxml/tree.h>
15 #include <crm/common/util.h>
16
17 #ifdef __cplusplus
18 extern "C" {
19 #endif
20
21
22
23
24
25
26
27
28
29
30
31 #define crm_get_interval crm_parse_interval_spec
32
33
34 #define CRM_DEFAULT_OP_TIMEOUT_S "20s"
35
36
37 static inline gboolean
38 is_not_set(long long word, long long bit)
39 {
40 return ((word & bit) == 0);
41 }
42
43
44
45 static inline gboolean
46 is_set(long long word, long long bit)
47 {
48 return ((word & bit) == bit);
49 }
50
51
52 static inline gboolean
53 is_set_any(long long word, long long bit)
54 {
55 return ((word & bit) != 0);
56 }
57
58
59 gboolean crm_str_eq(const char *a, const char *b, gboolean use_case);
60
61
62 gboolean safe_str_neq(const char *a, const char *b);
63
64
65 #define safe_str_eq(a, b) crm_str_eq(a, b, FALSE)
66
67
68 char *crm_itoa_stack(int an_int, char *buf, size_t len);
69
70
71 int pcmk_scan_nvpair(const char *input, char **name, char **value);
72
73
74 char *pcmk_format_nvpair(const char *name, const char *value,
75 const char *units);
76
77
78 const char *crm_xml_replace(xmlNode *node, const char *name, const char *value);
79
80
81 char *pcmk_format_named_time(const char *name, time_t epoch_time);
82
83
84 long long crm_parse_ll(const char *text, const char *default_text);
85
86
87 int crm_parse_int(const char *text, const char *default_text);
88
89
90 #define crm_atoi(text, default_text) crm_parse_int(text, default_text)
91
92
93 guint g_str_hash_traditional(gconstpointer v);
94
95
96 #define crm_str_hash g_str_hash_traditional
97
98
99 gboolean crm_strcase_equal(gconstpointer a, gconstpointer b);
100
101
102 guint crm_strcase_hash(gconstpointer v);
103
104
105 static inline GHashTable *
106 crm_str_table_new(void)
107 {
108 return g_hash_table_new_full(crm_str_hash, g_str_equal, free, free);
109 }
110
111
112 static inline GHashTable *
113 crm_strcase_table_new(void)
114 {
115 return g_hash_table_new_full(crm_strcase_hash, crm_strcase_equal,
116 free, free);
117 }
118
119
120 GHashTable *crm_str_table_dup(GHashTable *old_table);
121
122
123 static inline guint
124 crm_hash_table_size(GHashTable *hashtable)
125 {
126 if (hashtable == NULL) {
127 return 0;
128 }
129 return g_hash_table_size(hashtable);
130 }
131
132
133 char *crm_strip_trailing_newline(char *str);
134
135
136 int pcmk_numeric_strcasecmp(const char *s1, const char *s2);
137
138
139 static inline char *
140 crm_itoa(int an_int)
141 {
142 return crm_strdup_printf("%d", an_int);
143 }
144
145
146 static inline char *
147 crm_ftoa(double a_float)
148 {
149 return crm_strdup_printf("%f", a_float);
150 }
151
152
153 static inline char *
154 crm_ttoa(time_t epoch_time)
155 {
156 return crm_strdup_printf("%lld", (long long) epoch_time);
157 }
158
159
160 void crm_build_path(const char *path_c, mode_t mode);
161
162
163 guint crm_parse_interval_spec(const char *input);
164
165
166 #define ONLINESTATUS PCMK_VALUE_ONLINE
167
168
169 #define OFFLINESTATUS PCMK_VALUE_OFFLINE
170
171
172 char *pcmk_hostname(void);
173
174 #ifdef __cplusplus
175 }
176 #endif
177
178 #endif