NAME¶
__pmSpecLocalPMDA - process command-line argument for the table of DSO
  PMDAs
C SYNOPSIS¶
#include <pcp/pmapi.h>
 
#include <pcp/impl.h>
char *__pmSpecLocalPMDA(const char * 
spec);
cc ... -lpcp
DESCRIPTION¶
PCP contexts of type 
PM_CONTEXT_LOCAL are used by clients that wish to
  fetch metrics directly from one or more PMDAs on the local host without
  involving 
pmcd(1).
__pmSpecLocalPMDA provides a convenience wrapper to be used by
  applications that wish to use a command line argument (usually with 
-K)
  to control the DSO PMDAs that are available for a 
PM_CONTEXT_LOCAL
  context.
The 
spec argument specifies actions for one or more DSO PMDAs using up to
  four fields separated by commas (``,''), namely:
  - -
 
  - an opcode with one of the values add (add a new entry), del
      (delete an existing entry) or clear (clear all entries from the
      table).
 
  - -
 
  - the PMDA's domain number
 
  - -
 
  - the path to the PMDA DSO (may be absolute or relative to the
      $PCP_VAR_DIR/pmdas directory and the DSO suffix is optional), and
 
  - -
 
  - the name of the PMDA's initialization routine.
 
All fields are required to add a new entry. To delete an entry the opcode is
  required plus either or both of the domain number and path fields. To clear
  all entries, only the opcode is required.
If 
spec is parsed successfully, then 
__pmLocalPMDA(3) is called
  with the extracted arguments.
RETURN VALUE¶
On success, 
__pmSpecLocalPMDA will return NULL.
On error or failure, 
__pmSpecLocalPMDA will return a pointer to a static
  error message.
EXAMPLES¶
Some examples of valid 
spec strings:
  - clear
 
  - Delete all entries from the DSO table.
 
  - add,123,foo/foo_pmda,foo_init
 
  - Add the ``foo'' PMDA using domain 123. The PMDA's DSO is most likely in
      below the directory $PCP_PMDAS_DIR and named foo/foo_pmda.so
      (for ELF-style platforms) or foo/foo_pmda.dylib (for BSD-style
      platforms) or fooo_pmda.dll (for Windows-style platforms). The
      initialization routine for the ``foo'' PMDA is foo_init().
 
  - del,123
 
  - Delete the entry for the DSO with domain 123.
 
  - del,,foo/foo_pmda
 
  - Delete the entry with a pathname to the DSO that matches
      foo/foo_pmda.
 
  - del,123,foo/foo_pmda
 
  - Delete the entry for the DSO with either domain 123 and/or a pathname to
      the DSO that matches foo/foo_pmda.
 
SEE ALSO¶
PMAPI(3), 
__pmLocalPMDA(3) and 
pmNewContext(3).