cctools
Functions
nvpair.h File Reference

This module is deprecated, please use jx.h for new code. More...

#include <stdio.h>
#include "int_sizes.h"
#include "hash_table.h"

Go to the source code of this file.

Functions

struct nvpairnvpair_create ()
 Create an empty nvpair. More...
 
void nvpair_delete (struct nvpair *n)
 Delete an nvpair. More...
 
void nvpair_parse (struct nvpair *n, const char *text)
 Load in an nvpair from ASCII text. More...
 
int nvpair_parse_stream (struct nvpair *n, FILE *stream)
 Load in an nvpair from a standard I/O stream. More...
 
int nvpair_print (struct nvpair *n, char *text, int length)
 Print an nvpair to ASCII text with a limit. More...
 
int nvpair_print_alloc (struct nvpair *n, char **text)
 Print an nvpair to ASCII text, allocating the needed buffer. More...
 
void nvpair_remove (struct nvpair *n, const char *name)
 Remove a property from an nvpair. More...
 
void nvpair_insert_string (struct nvpair *n, const char *name, const char *value)
 Insert a property in string form. More...
 
void nvpair_insert_integer (struct nvpair *n, const char *name, INT64_T value)
 Insert a property in integer form. More...
 
void nvpair_insert_float (struct nvpair *n, const char *name, double value)
 Insert a property in floating point form. More...
 
const char * nvpair_lookup_string (struct nvpair *n, const char *name)
 Lookup a property in string form. More...
 
INT64_T nvpair_lookup_integer (struct nvpair *n, const char *name)
 Lookup a property in integer form. More...
 
double nvpair_lookup_float (struct nvpair *n, const char *name)
 Lookup a property in floating point form. More...
 
void nvpair_export (struct nvpair *nv)
 Export all items in the nvpair to the environment with setenv. More...
 
void nvpair_first_item (struct nvpair *nv)
 Begin iteration over all items. More...
 
int nvpair_next_item (struct nvpair *nv, char **name, char **value)
 Continue iteration over all items. More...
 

Detailed Description

This module is deprecated, please use jx.h for new code.

An nvpair object is a collection of name-value pairs that might describe a complex object such as a host or a job. An nvpair object is a subset of the full generality of an XML document or a ClassAd. In fact, an nvpair can easily be exported into these and other formats. We use an nvapir object instead of these other database, because it has a dramatically simpler implementation that these other complex datatypes and removes any dependence on external software.

Function Documentation

struct nvpair* nvpair_create ( )

Create an empty nvpair.

Deprecated:
{
Returns
A pointer to an nvpair.
void nvpair_delete ( struct nvpair n)

Delete an nvpair.

Also deletes all contained names and values.

Parameters
nThe nvpair to delete.
void nvpair_parse ( struct nvpair n,
const char *  text 
)

Load in an nvpair from ASCII text.

Parameters
nAn nvpair from nvpair_create.
textThe ASCII text to parse.
int nvpair_parse_stream ( struct nvpair n,
FILE *  stream 
)

Load in an nvpair from a standard I/O stream.

Parameters
nAn nvpair from nvpair_create.
streamThe I/O stream to read.
int nvpair_print ( struct nvpair n,
char *  text,
int  length 
)

Print an nvpair to ASCII text with a limit.

Parameters
nThe npvair to print.
textThe buffer to print to.
lengthThe length of the buffer in bytes.
Returns
The actual length of buffer needed, in bytes.
int nvpair_print_alloc ( struct nvpair n,
char **  text 
)

Print an nvpair to ASCII text, allocating the needed buffer.

Parameters
nThe npvair to print.
textA pointer to a buffer pointer that will be allocated to the needed size.
Returns
The actual number of bytes written.
void nvpair_remove ( struct nvpair n,
const char *  name 
)

Remove a property from an nvpair.

Parameters
nThe nvpair to modify.
nameThe name of the property to remove.
void nvpair_insert_string ( struct nvpair n,
const char *  name,
const char *  value 
)

Insert a property in string form.

Parameters
nThe nvpair to modify.
nameThe name of the property to insert.
valueThe value of the property to insert.
void nvpair_insert_integer ( struct nvpair n,
const char *  name,
INT64_T  value 
)

Insert a property in integer form.

Parameters
nThe nvpair to modify.
nameThe name of the property to insert.
valueThe value of the property to insert.
void nvpair_insert_float ( struct nvpair n,
const char *  name,
double  value 
)

Insert a property in floating point form.

Parameters
nThe nvpair to modify.
nameThe name of the property to insert.
valueThe value of the property to insert.
const char* nvpair_lookup_string ( struct nvpair n,
const char *  name 
)

Lookup a property in string form.

Parameters
nThe nvpair to examine.
nameThe name of the property to return.
Returns
A pointer to the property string, if present, otherwise null.
INT64_T nvpair_lookup_integer ( struct nvpair n,
const char *  name 
)

Lookup a property in integer form.

Parameters
nThe nvpair to examine.
nameThe name of the property to return.
Returns
The integer value of the property, or zero if not present or not a number.
double nvpair_lookup_float ( struct nvpair n,
const char *  name 
)

Lookup a property in floating point form.

Parameters
nThe nvpair to examine.
nameThe name of the property to return.
Returns
The floating point value of the property, or zero if not present or not a number.
void nvpair_export ( struct nvpair nv)

Export all items in the nvpair to the environment with setenv.

Parameters
nvThe nvpair to be exported.
void nvpair_first_item ( struct nvpair nv)

Begin iteration over all items.

This function begins a new iteration over an nvpair, allowing you to visit every name and value in the table. Next, invoke nvpair_next_item to retrieve each value in order.

Parameters
nvA pointer to an nvpair.
int nvpair_next_item ( struct nvpair nv,
char **  name,
char **  value 
)

Continue iteration over all items.

This function returns the next name and value in the iteration.

Parameters
nvA pointer to an nvpair.
nameA pointer to a name pointer.
valueA pointer to a value pointer.
Returns
Zero if there are no more elements to visit, one otherwise.