pacemaker 2.1.8-2.1.8
Scalable High-Availability cluster resource manager
Loading...
Searching...
No Matches
util_compat.h
Go to the documentation of this file.
1/*
2 * Copyright 2004-2024 the Pacemaker project contributors
3 *
4 * The version control history for this file may have further details.
5 *
6 * This source code is licensed under the GNU Lesser General Public License
7 * version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY.
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
18extern "C" {
19#endif
20
31#define crm_get_interval crm_parse_interval_spec
32
34#define CRM_DEFAULT_OP_TIMEOUT_S "20s"
35
37static inline gboolean
38is_not_set(long long word, long long bit)
39{
40 return ((word & bit) == 0);
41}
42
43// NOTE: sbd (as of at least 1.5.2) uses this
45static inline gboolean
46is_set(long long word, long long bit)
47{
48 return ((word & bit) == bit);
49}
50
52static inline gboolean
53is_set_any(long long word, long long bit)
54{
55 return ((word & bit) != 0);
56}
57
59gboolean crm_str_eq(const char *a, const char *b, gboolean use_case);
60
62gboolean safe_str_neq(const char *a, const char *b);
63
65#define safe_str_eq(a, b) crm_str_eq(a, b, FALSE)
66
68char *crm_itoa_stack(int an_int, char *buf, size_t len);
69
71int pcmk_scan_nvpair(const char *input, char **name, char **value);
72
74char *pcmk_format_nvpair(const char *name, const char *value,
75 const char *units);
76
78const char *crm_xml_replace(xmlNode *node, const char *name, const char *value);
79
81char *pcmk_format_named_time(const char *name, time_t epoch_time);
82
84long long crm_parse_ll(const char *text, const char *default_text);
85
87int crm_parse_int(const char *text, const char *default_text);
88
90#define crm_atoi(text, default_text) crm_parse_int(text, default_text)
91
93guint g_str_hash_traditional(gconstpointer v);
94
96#define crm_str_hash g_str_hash_traditional
97
99gboolean crm_strcase_equal(gconstpointer a, gconstpointer b);
100
102guint crm_strcase_hash(gconstpointer v);
103
105static inline GHashTable *
106crm_str_table_new(void)
107{
108 return g_hash_table_new_full(crm_str_hash, g_str_equal, free, free);
109}
110
112static inline GHashTable *
113crm_strcase_table_new(void)
114{
115 return g_hash_table_new_full(crm_strcase_hash, crm_strcase_equal,
116 free, free);
117}
118
120GHashTable *crm_str_table_dup(GHashTable *old_table);
121
123static inline guint
124crm_hash_table_size(GHashTable *hashtable)
125{
126 if (hashtable == NULL) {
127 return 0;
128 }
129 return g_hash_table_size(hashtable);
130}
131
133char *crm_strip_trailing_newline(char *str);
134
136int pcmk_numeric_strcasecmp(const char *s1, const char *s2);
137
139static inline char *
140crm_itoa(int an_int)
141{
142 return crm_strdup_printf("%d", an_int);
143}
144
146static inline char *
147crm_ftoa(double a_float)
148{
149 return crm_strdup_printf("%f", a_float);
150}
151
153static inline char *
154crm_ttoa(time_t epoch_time)
155{
156 return crm_strdup_printf("%lld", (long long) epoch_time);
157}
158
160void crm_build_path(const char *path_c, mode_t mode);
161
163guint crm_parse_interval_spec(const char *input);
164
166#define ONLINESTATUS PCMK_VALUE_ONLINE
167
169#define OFFLINESTATUS PCMK_VALUE_OFFLINE
170
172char *pcmk_hostname(void);
173
174#ifdef __cplusplus
175}
176#endif
177
178#endif // PCMK__CRM_COMMON_UTIL_COMPAT__H
const char * name
Definition cib.c:26
Utility functions.
char * crm_strdup_printf(char const *format,...) G_GNUC_PRINTF(1
guint g_str_hash_traditional(gconstpointer v)
Definition strings.c:1364
char * pcmk_format_nvpair(const char *name, const char *value, const char *units)
Definition nvpair.c:1011
gboolean crm_strcase_equal(gconstpointer a, gconstpointer b)
Definition strings.c:1370
char * crm_itoa_stack(int an_int, char *buf, size_t len)
Definition strings.c:1355
gboolean crm_str_eq(const char *a, const char *b, gboolean use_case)
Definition strings.c:1335
const char * crm_xml_replace(xmlNode *node, const char *name, const char *value)
Definition nvpair.c:1028
GHashTable * crm_str_table_dup(GHashTable *old_table)
Definition strings.c:1382
int pcmk_scan_nvpair(const char *input, char **name, char **value)
Definition nvpair.c:1005
gboolean safe_str_neq(const char *a, const char *b)
Definition strings.c:1320
void crm_build_path(const char *path_c, mode_t mode)
Definition io.c:651
guint crm_strcase_hash(gconstpointer v)
Definition strings.c:1376
int pcmk_numeric_strcasecmp(const char *s1, const char *s2)
Definition strings.c:1436
guint crm_parse_interval_spec(const char *input)
Definition utils.c:512
char * crm_strip_trailing_newline(char *str)
Definition strings.c:1430
char * pcmk_hostname(void)
Definition utils.c:541
char * pcmk_format_named_time(const char *name, time_t epoch_time)
Definition nvpair.c:1018
long long crm_parse_ll(const char *text, const char *default_text)
Definition strings.c:1388
#define crm_str_hash
Definition util_compat.h:96
int crm_parse_int(const char *text, const char *default_text)
Definition strings.c:1405
xmlNode * input