Man page - genders_query(3)
Packages contains this manual
- genders_errnum(3)
- genders_vallist_create(3)
- genders_attrlist_create(3)
- genders_strerror(3)
- genders_handle_create(3)
- genders_getmaxnodelen(3)
- genders_index_attrvals(3)
- genders_testattrval(3)
- genders_isnode(3)
- genders_vallist_destroy(3)
- genders_getattr(3)
- genders_getnodename(3)
- genders_perror(3)
- genders(3)
- genders_nodelist_create(3)
- genders_getnumnodes(3)
- genders_getnodes(3)
- genders_attrlist_clear(3)
- genders_getmaxvallen(3)
- genders_load_data(3)
- genders_nodelist_destroy(3)
- genders_isattrval(3)
- genders_handle_destroy(3)
- genders_getmaxattrs(3)
- libgenders(3)
- genders_testattr(3)
- genders_getnumattrs(3)
- genders_getmaxattrlen(3)
- genders_getattr_all(3)
- genders_errormsg(3)
- genders_testquery(3)
- genders_parse(3)
- genders_query(3)
- genders_isattr(3)
- genders_nodelist_clear(3)
- genders_vallist_clear(3)
- genders_attrlist_destroy(3)
apt-get install libgenders0-dev
Manual
GENDERS_QUERY
NAMESYNOPSIS
DESCRIPTION
EXAMPLES
RETURN VALUES
ERRORS
FILES
SEE ALSO
NAME
genders_query - query genders database for a set of nodes
SYNOPSIS
#include <genders.h>
int genders_query(genders_t handle, char *nodes[], int len, const char *query);
DESCRIPTION
genders_query() queries the genders database for a set of nodes based on the union, intersection, difference, or complement of genders attributes and values. The query for a set of nodes 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.
The nodes from the query are stored in the list pointed to by nodes . len indicates the number of nodes that can be stored in the list.
To avoid passing in a list that is not large enough to store all the nodes, genders_getnumnodes (3) should be used to determine the minimum number of elements nodes should be able to store. genders_nodelist_create (3) could be used to create a list that is guaranteed to be large enough to store all of the nodes.
EXAMPLES
The following are example queries that can be passed to genders_query() .
Determine the
set of nodes with the mgmt or login attribute:
"mgmt||login"
Determine the
set of nodes that are not login nodes:
"all--login"
Determine the
set of nodes that both login nodes and ntp servers:
"login&&ntpserv"
Determine the
set of nodes that are not mgmt or login nodes:
"˜(mgmt||login)"
RETURN VALUES
On success, the number of nodes stored in nodes is returned. 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).
GENDERS_ERR_NOTLOADED
genders_load_data (3) has not been called to load genders data.
GENDERS_ERR_OVERFLOW
The list pointed to by nodes is not large enough to store all the nodes.
GENDERS_ERR_PARAMETERS
An incorrect parameter has been passed in.
GENDERS_ERR_SYNTAX
There is a syntax error in the query.
GENDERS_ERR_OUTMEM
malloc (3) has failed internally, system is out of memory.
GENDERS_ERR_NULLPTR
A null pointer has been found in the list passed in.
GENDERS_ERR_MAGIC
handle has an incorrect magic number. handle does not point to a genders handle or handle has been destroyed by genders_handle_destroy (3).
GENDERS_ERR_INTERNAL
An internal system error has occurred.
FILES
/usr/include/genders.h
SEE ALSO
libgenders(3), genders_handle_create(3), genders_load_data(3), genders_getnumnodes(3), genders_nodelist_create(3), genders_errnum(3), genders_strerror(3)