Provided by: libpcp3-dev_3.5.11_amd64 bug


       pmNameAll,  pmRequestNameAll,  pmReceiveNameAll - translate a PMID to a set of performance
       metric names


       #include <pcp/pmapi.h>

       int pmNameAll(pmID pmid, char ***nameset);
       int pmRequestNameAll(int ctx, pmID pmid);
       int pmReceiveNameAll(int ctx, char ***nameset);

       cc ... -lpcp


       Given a  Performance  Metric  ID  (PMID)  via  pmid,  pmNameAll  will  determine  all  the
       corresponding  metric  names,  if  any,  in the Performance Metrics Name Space (PMNS), and
       return these via nameset.

       The resulting list of pointers nameset and  the  values  (the  relative  names)  that  the
       pointers reference will have been allocated by pmNameAll with a single call to malloc(3C),
       and it is the responsibility of the pmNameAll caller to free(nameset) to release the space
       when it is no longer required.

       In the absence of errors, pmNameAll returns the number of names in nameset.

       For  many  examples  of a PMNS, there will be a 1:1 mapping between a name and a PMID, and
       under these circumstances, pmNameID(3)  provides  a  slightly  simpler  interface  in  the
       absence of duplicate names for a particular PMID.

       pmRequestNameAll and pmReceiveNameAll are used by applications which must communicate with
       the PMCD asynchronously.  These functions take explicit  context  handle  ctx  which  must
       refer  to  a  host  context  (i.e.  created  by  passing PM_CONTEXT_HOST to pmNewContext).
       pmRequestNameAll sends request to PMCD to return names of all metrics matching a PMID  and
       returns  without  waiting  for the response, pmReceiveNameAll reads reply from PMCD. It is
       the responsibility of the application to make sure  the  data  are  ready  before  calling
       pmReceiveNameAll to avoid blocking.


       PMAPI(3),         pmGetChildren(3),         pmGetChildrenStatus(3),        pmGetConfig(3),
       pmLoadASCIINameSpace(3),      pmLoadNameSpace(3),      pmLookupName(3),       pmNameID(3),
       pmNewContext(3), pcp.conf(4), pcp.env(4) and pmns(4).


              Failed  to  access  a  PMNS  for  operation.  Note that if the application hasn't a
              priori called pmLoadNameSpace(3) and wants to use the distributed PMNS, then a call
              to pmNameAll must be made after the creation of a context (see pmNewContext(3)).

              pmid does not correspond to a defined PMID in the PMNS.

              Other diagnostics are for protocol failures when accessing the distributed PMNS.

              Context is currently in use by another asynchronous call.