int genders_testquery(genders_t handle, const char *node, const char *query);
DESCRIPTION
genders_testquery() tests if the node pointed to by node
meets the conditions specified in the query. If node is NULL,
the current node is tested. Queries are based on the union,
intersection, difference, or complement of genders attributes and
values. The query is passed as a string through the query
parameter. The set operation union is represented by two pipe symbols
('||'), intersection by two ampersand symbols ('&&'), difference by
two minus symbols ('--'), and complement by a tilde ('~'). Set
operations are performed left to right. Parentheses may be used to
change the order of operations. A list of query examples are listed
below. A NULL query retrieves all nodes from the genders database.
EXAMPLES
The following are example queries that can be
passed to genders_testquery().
Test if a node contains the mgmt or login attribute:
"mgmt||login"
Test if a node is not a login node:
"all--login"
Test if a node is both a login node and ntp server:
"login&&ntpserv"
Test if a node is not a mgmt or login node:
"~(mgmt||login)"
RETURN VALUES
If the node as met the conditions of the query, 1 is returned. 0 is
returned if the node does not meet the conditions of the query. On
error, -1 is returned, and an error code is returned in handle.
The error code can be retrieved via
genders_errnum(3)
, and a description of the error code can be retrieved via
genders_strerror(3).
Error codes are defined in genders.h.
ERRORS
GENDERS_ERR_NULLHANDLE
The handle parameter is NULL. The genders handle must be
created with
genders_handle_create(3).