pacemaker  3.0.0-d8340737c4
Scalable High-Availability cluster resource manager
Functions
xml_element.h File Reference

Wrappers for and extensions to libxml2 for XML elements. More...

#include <sys/time.h>
#include <glib.h>
#include <libxml/tree.h>
#include <crm/common/xml_element_compat.h>
Include dependency graph for xml_element.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

const char * crm_xml_add (xmlNode *node, const char *name, const char *value)
 Create an XML attribute with specified name and value. More...
 
const char * crm_xml_add_int (xmlNode *node, const char *name, int value)
 Create an XML attribute with specified name and integer value. More...
 
const char * crm_xml_add_ll (xmlNode *node, const char *name, long long value)
 Create an XML attribute with specified name and long long int value. More...
 
const char * crm_xml_add_ms (xmlNode *node, const char *name, guint ms)
 Create an XML attribute with specified name and unsigned value. More...
 
const char * crm_xml_add_timeval (xmlNode *xml, const char *name_sec, const char *name_usec, const struct timeval *value)
 Create XML attributes for seconds and microseconds. More...
 
const char * crm_element_value (const xmlNode *data, const char *name)
 Retrieve the value of an XML attribute. More...
 
int crm_element_value_int (const xmlNode *data, const char *name, int *dest)
 Retrieve the integer value of an XML attribute. More...
 
int crm_element_value_ll (const xmlNode *data, const char *name, long long *dest)
 Retrieve the long long integer value of an XML attribute. More...
 
int crm_element_value_ms (const xmlNode *data, const char *name, guint *dest)
 Retrieve the millisecond value of an XML attribute. More...
 
int crm_element_value_epoch (const xmlNode *xml, const char *name, time_t *dest)
 Retrieve the seconds-since-epoch value of an XML attribute. More...
 
int crm_element_value_timeval (const xmlNode *data, const char *name_sec, const char *name_usec, struct timeval *dest)
 Retrieve the value of XML second/microsecond attributes as time. More...
 
char * crm_element_value_copy (const xmlNode *data, const char *name)
 Retrieve a copy of the value of an XML attribute. More...
 

Detailed Description

Wrappers for and extensions to libxml2 for XML elements.

Definition in file xml_element.h.

Function Documentation

◆ crm_element_value()

const char* crm_element_value ( const xmlNode *  data,
const char *  name 
)

Retrieve the value of an XML attribute.

Parameters
[in]dataXML node to check
[in]nameAttribute name to check
Returns
Value of specified attribute (may be NULL)

Definition at line 1168 of file xml_element.c.

◆ crm_element_value_copy()

char* crm_element_value_copy ( const xmlNode *  data,
const char *  name 
)

Retrieve a copy of the value of an XML attribute.

This is like crm_element_value() but allocating new memory for the result.

Parameters
[in]dataXML node to check
[in]nameAttribute name to check
Returns
Value of specified attribute (may be NULL)
Note
The caller is responsible for freeing the result.

Definition at line 1466 of file xml_element.c.

◆ crm_element_value_epoch()

int crm_element_value_epoch ( const xmlNode *  xml,
const char *  name,
time_t *  dest 
)

Retrieve the seconds-since-epoch value of an XML attribute.

This is like crm_element_value() but returning the value as a time_t.

Parameters
[in]xmlXML node to check
[in]nameAttribute name to check
[out]destWhere to store attribute value
Returns
pcmk_ok on success, -1 otherwise

Definition at line 1359 of file xml_element.c.

◆ crm_element_value_int()

int crm_element_value_int ( const xmlNode *  data,
const char *  name,
int *  dest 
)

Retrieve the integer value of an XML attribute.

This is like crm_element_value() but getting the value as an integer.

Parameters
[in]dataXML node to check
[in]nameAttribute name to check
[out]destWhere to store element value
Returns
0 on success, -1 otherwise

Definition at line 1201 of file xml_element.c.

◆ crm_element_value_ll()

int crm_element_value_ll ( const xmlNode *  data,
const char *  name,
long long *  dest 
)

Retrieve the long long integer value of an XML attribute.

This is like crm_element_value() but getting the value as a long long int.

Parameters
[in]dataXML node to check
[in]nameAttribute name to check
[out]destWhere to store element value
Returns
0 on success, -1 otherwise

Definition at line 1291 of file xml_element.c.

◆ crm_element_value_ms()

int crm_element_value_ms ( const xmlNode *  data,
const char *  name,
guint *  dest 
)

Retrieve the millisecond value of an XML attribute.

This is like crm_element_value() but returning the value as a guint.

Parameters
[in]dataXML node to check
[in]nameAttribute name to check
[out]destWhere to store attribute value
Returns
pcmk_ok on success, -1 otherwise

Definition at line 1322 of file xml_element.c.

◆ crm_element_value_timeval()

int crm_element_value_timeval ( const xmlNode *  xml,
const char *  name_sec,
const char *  name_usec,
struct timeval *  dest 
)

Retrieve the value of XML second/microsecond attributes as time.

This is like crm_element_value() but returning value as a struct timeval.

Parameters
[in]xmlXML to parse
[in]name_secName of XML attribute for seconds
[in]name_usecName of XML attribute for microseconds
[out]destWhere to store result
Returns
pcmk_ok on success, -errno on error
Note
Values default to 0 if XML or XML attribute does not exist

Definition at line 1388 of file xml_element.c.

◆ crm_xml_add()

const char* crm_xml_add ( xmlNode *  node,
const char *  name,
const char *  value 
)

Create an XML attribute with specified name and value.

Parameters
[in,out]nodeXML node to modify
[in]nameAttribute name to set
[in]valueAttribute value to set
Returns
New value on success, NULL otherwise
Note
This does nothing if node, name, or value are NULL or empty.

Definition at line 1015 of file xml_element.c.

◆ crm_xml_add_int()

const char* crm_xml_add_int ( xmlNode *  node,
const char *  name,
int  value 
)

Create an XML attribute with specified name and integer value.

This is like crm_xml_add() but taking an integer value.

Parameters
[in,out]nodeXML node to modify
[in]nameAttribute name to set
[in]valueAttribute value to set
Returns
New value as string on success, NULL otherwise
Note
This does nothing if node or name are NULL or empty.

Definition at line 1070 of file xml_element.c.

◆ crm_xml_add_ll()

const char* crm_xml_add_ll ( xmlNode *  xml,
const char *  name,
long long  value 
)

Create an XML attribute with specified name and long long int value.

This is like crm_xml_add() but taking a long long int value. It is a useful equivalent for defined types like time_t, etc.

Parameters
[in,out]xmlXML node to modify
[in]nameAttribute name to set
[in]valueAttribute value to set
Returns
New value as string on success, NULL otherwise
Note
This does nothing if xml or name are NULL or empty. This does not support greater than 64-bit values.

Definition at line 1120 of file xml_element.c.

◆ crm_xml_add_ms()

const char* crm_xml_add_ms ( xmlNode *  node,
const char *  name,
guint  ms 
)

Create an XML attribute with specified name and unsigned value.

This is like crm_xml_add() but taking a guint value.

Parameters
[in,out]nodeXML node to modify
[in]nameAttribute name to set
[in]msAttribute value to set
Returns
New value as string on success, NULL otherwise
Note
This does nothing if node or name are NULL or empty.

Definition at line 1092 of file xml_element.c.

◆ crm_xml_add_timeval()

const char* crm_xml_add_timeval ( xmlNode *  xml,
const char *  name_sec,
const char *  name_usec,
const struct timeval *  value 
)

Create XML attributes for seconds and microseconds.

This is like crm_xml_add() but taking a struct timeval.

Parameters
[in,out]xmlXML node to modify
[in]name_secName of XML attribute for seconds
[in]name_usecName of XML attribute for microseconds (or NULL)
[in]valueTime value to set
Returns
New seconds value as string on success, NULL otherwise
Note
This does nothing if xml, name_sec, or value is NULL.

Definition at line 1144 of file xml_element.c.