trusty (3) pmparsehostspec.3.gz

Provided by: libpcp3-dev_3.8.12ubuntu1_amd64 bug

NAME

       __pmParseHostSpec, __pmUnparseHostSpec, __pmFreeHostSpec - uniform host specification parser

C SYNOPSIS

       #include <pcp/pmapi.h>
       #include <pcp/impl.h>

       int __pmParseHostSpec(const char *string, pmHostSpec **hostsp, int *count, char **errmsg);
       int __pmUnparseHostSpec(pmHostSpec *hosts, int count, char *string, size_t size);
       void __pmFreeHostSpec(pmHostSpec *hosts, int count);

       cc ... -lpcp

DESCRIPTION

       __pmParseHostSpec  accepts a string specifying the location of a PCP performance metric collector daemon.
       The syntax of the various formats of this string is described in PCPIntro(1) where several  examples  are
       also presented.

       The syntax allows the initial pmcd(1) hostname to be optionally followed by a list of port numbers, which
       will be tried in order when connecting to pmcd on that host.  The portlist is separated from the hostname
       using a colon, and each port in the list is comma-separated.

       In  addition,  one  or more optional pmproxy(1) hosts can be specified (currently, only one proxy host is
       supported by the PCP protocols).  These are separated from each other and from the pmcd  component  using
       the  @  character.   These  may also be followed by an optional port list, using the same comma-separated
       syntax as before.

       __pmParseHostSpec takes a null-terminated host specification string and returns an  array  of  pmHostSpec
       structures, where the array has count entries.

       These  pmHostSpec  structures  that  are  returned  via  hostsp  represent  each  individual  host in the
       specification string and has the following declaration:

           typedef struct {
               char    *name;       /* hostname (always valid) */
               int     *ports;      /* array of host port numbers */
               int     nports;      /* number of ports in host port array */
           } pmHostSpec;

       __pmUnparseHostSpec performs the inverse operation, creating a string representation  from  a  number  of
       hosts structures.  Where the count of structures indicated by hosts is greater than one, the proxy syntax
       is used to indicate a chain of proxied hosts.  The size of the supplied string buffer must be provided by
       the caller using the size parameter.

RETURN VALUE

       If  the  given  string  is  successfully parsed __pmParseHostSpec returns zero.  In this case the dynamic
       storage allocated by __pmParseHostSpec can be released by  calling  __pmFreeHostSpec  using  the  address
       returned from __pmParseHostSpec via hosts.

       __pmParseHostSpec  returns  PM_ERR_GENERIC and a dynamically allocated error message string in errmsg, if
       the given string does not parse, and the user-supplied errmsg pointer is non-null.  Be sure  to  free(3C)
       the error message string in this situation.

       In the case of an error, hosts is undefined.  In the case of success, errmsg is undefined.

       On  success __pmUnparseHostSpec returns a positive value indicating the number of characters written into
       the supplied buffer.  However, if the supplied buffer was too small, a negative status code of -E2BIG  is
       returned.

SEE ALSO

       pmcd(1), pmproxy(1), pmchart(1), __pmParseHostAttrsSpec(3), PMAPI(3) and pmNewContext(3).