nut/docs/man/upscli_list_start.txt
2011-01-26 10:35:08 +01:00

80 lines
2 KiB
Text

UPSCLI_LIST_START(3)
====================
NAME
----
upscli_list_start - begin multi-item retrieval from a UPS
SYNOPSIS
--------
#include <upsclient.h>
int upscli_list_start(UPSCONN_t *ups, int numq, const char **query)
DESCRIPTION
-----------
The *upscli_list_start()* function takes the pointer 'ups' to a
`UPSCONN_t` state structure, and the pointer 'query' to an array of
'numq' query elements. It builds a properly-formatted request from
those elements and transmits it to linkman:upsd[8].
Upon success, the caller must call linkman:upscli_list_next[3] to retrieve
the elements of the list. Failure to retrieve the list will most likely
result in the client getting out of sync with the server due to buffered
data.
USES
----
This function implements the "LIST" command in the protocol. As a
result, you can use it to request many different things from the server.
Some examples are:
- LIST UPS
- LIST VAR <ups>
- LIST RW <ups>
- LIST CMD <ups>
- LIST ENUM <ups> <var>
QUERY FORMATTING
----------------
To see the list of variables on a UPS called 'su700', the protocol command
would be `LIST VAR su700`. To start that list with this function, you
would populate query and numq as follows:
int numq;
const char *query[2];
query[0] = "VAR";
query[1] = "su700";
numq = 2;
All escaping of special characters and quoting of elements with spaces
are handled for you inside this function.
ERROR CHECKING
--------------
This function checks the response from linkman:upsd[8] against your query.
If it is not starting a list, or is starting the wrong type of list, it
will return an error code.
When this happens, linkman:upscli_upserror[3] will return
`UPSCLI_ERR_PROTOCOL`.
RETURN VALUE
------------
The *upscli_list_start()* function returns 0 on success, or -1 if an
error occurs.
SEE ALSO
--------
linkman:upscli_fd[3], linkman:upscli_get[3],
linkman:upscli_readline[3], linkman:upscli_sendline[3],
linkman:upscli_ssl[3],
linkman:upscli_strerror[3], linkman:upscli_upserror[3]