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_XML_IO__H
11 #define PCMK__CRM_COMMON_XML_IO__H
12
13 #include <libxml/tree.h> // xmlNode
14
15 #ifdef __cplusplus
16 extern "C" {
17 #endif
18
19 /**
20 * \file
21 * \brief Wrappers for and extensions to XML input/output functions
22 * \ingroup core
23 */
24
25 /* Define compression parameters for IPC messages
26 *
27 * Compression costs a LOT, so we don't want to do it unless we're hitting
28 * message limits. Currently, we use 128KB as the threshold, because higher
29 * values don't play well with the heartbeat stack. With an earlier limit of
30 * 10KB, compressing 184 of 1071 messages accounted for 23% of the total CPU
31 * used by the cib.
32 */
33 #define CRM_BZ2_BLOCKS 4
34 #define CRM_BZ2_WORK 20
35 #define CRM_BZ2_THRESHOLD (128 * 1024)
36
37 void save_xml_to_file(const xmlNode *xml, const char *desc,
38 const char *filename);
39
40 #ifdef __cplusplus
41 }
42 #endif
43
44 #endif // PCMK__CRM_COMMON_XML_IO__H