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 static inline gboolean
45 is_set(long long word, long long bit)
46 {
47 return ((word & bit) == bit);
48 }
49
50
51 static inline gboolean
52 is_set_any(long long word, long long bit)
53 {
54 return ((word & bit) != 0);
55 }
56
57
58 gboolean crm_str_eq(const char *a, const char *b, gboolean use_case);
59
60
61 gboolean safe_str_neq(const char *a, const char *b);
62
63
64 #define safe_str_eq(a, b) crm_str_eq(a, b, FALSE)
65
66
67 char *crm_itoa_stack(int an_int, char *buf, size_t len);
68
69
70 int pcmk_scan_nvpair(const char *input, char **name, char **value);
71
72
73 char *pcmk_format_nvpair(const char *name, const char *value,
74 const char *units);
75
76
77 const char *crm_xml_replace(xmlNode *node, const char *name, const char *value);
78
79
80 char *pcmk_format_named_time(const char *name, time_t epoch_time);
81
82
83 long long crm_parse_ll(const char *text, const char *default_text);
84
85
86 int crm_parse_int(const char *text, const char *default_text);
87
88
89 # define crm_atoi(text, default_text) crm_parse_int(text, default_text)
90
91
92 guint g_str_hash_traditional(gconstpointer v);
93
94
95 #define crm_str_hash g_str_hash_traditional
96
97
98 gboolean crm_strcase_equal(gconstpointer a, gconstpointer b);
99
100
101 guint crm_strcase_hash(gconstpointer v);
102
103
104 static inline GHashTable *
105 crm_str_table_new(void)
106 {
107 return g_hash_table_new_full(crm_str_hash, g_str_equal, free, free);
108 }
109
110
111 static inline GHashTable *
112 crm_strcase_table_new(void)
113 {
114 return g_hash_table_new_full(crm_strcase_hash, crm_strcase_equal,
115 free, free);
116 }
117
118
119 GHashTable *crm_str_table_dup(GHashTable *old_table);
120
121
122 static inline guint
123 crm_hash_table_size(GHashTable *hashtable)
124 {
125 if (hashtable == NULL) {
126 return 0;
127 }
128 return g_hash_table_size(hashtable);
129 }
130
131
132 char *crm_strip_trailing_newline(char *str);
133
134
135 int pcmk_numeric_strcasecmp(const char *s1, const char *s2);
136
137
138 static inline char *
139 crm_itoa(int an_int)
140 {
141 return crm_strdup_printf("%d", an_int);
142 }
143
144
145 static inline char *
146 crm_ftoa(double a_float)
147 {
148 return crm_strdup_printf("%f", a_float);
149 }
150
151
152 static inline char *
153 crm_ttoa(time_t epoch_time)
154 {
155 return crm_strdup_printf("%lld", (long long) epoch_time);
156 }
157
158
159 void crm_build_path(const char *path_c, mode_t mode);
160
161
162 char *score2char(int score);
163
164
165 char *score2char_stack(int score, char *buf, size_t len);
166
167 #ifdef __cplusplus
168 }
169 #endif
170
171 #endif