cctools
Data Structures | Functions
nvpair.h File Reference

An nvpair object is a collection of name-value pairs that might describe a complex object such as a host or a job. More...

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

Go to the source code of this file.

Data Structures

struct  nvpair_header

Functions

struct nvpair * nvpair_create ()
 Create an empty nvpair.
void nvpair_delete (struct nvpair *n)
 Delete an nvpair.
void nvpair_parse (struct nvpair *n, const char *text)
 Load in an nvpair from ASCII text.
int nvpair_parse_stream (struct nvpair *n, FILE *stream)
 Load in an nvpair from a standard I/O stream.
int nvpair_print (struct nvpair *n, char *text, int length)
 Print an nvpair to ASCII text with a limit.
int nvpair_print_alloc (struct nvpair *n, char **text)
 Print an nvpair to ASCII text, allocating the needed buffer.
void nvpair_insert_string (struct nvpair *n, const char *name, const char *value)
 Insert a property in string form.
void nvpair_insert_integer (struct nvpair *n, const char *name, INT64_T value)
 Insert a property in integer form.
const char * nvpair_lookup_string (struct nvpair *n, const char *name)
 Lookup a property in string form.
INT64_T nvpair_lookup_integer (struct nvpair *n, const char *name)
 Lookup a property in integer form.
void nvpair_print_text (struct nvpair *n, FILE *stream)
 Print an entire nvpair in text form.
void nvpair_print_xml (struct nvpair *n, FILE *stream)
 Print an entire nvpair in XML form.
void nvpair_print_new_classads (struct nvpair *n, FILE *stream)
 Print an entire nvpair in new ClassAd form.
void nvpair_print_old_classads (struct nvpair *n, FILE *stream)
 Print an entire nvpair in old ClassAd form.
void nvpair_print_html_solo (struct nvpair *n, FILE *stream)
 Print an entire nvpair in HTML form.

Detailed Description

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, and 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 ( )
read

Create an empty nvpair.

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_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.
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 an integer.
void nvpair_print_text ( struct nvpair *  n,
FILE *  stream 
)

Print an entire nvpair in text form.

Parameters
nThe nvpair to print.
streamThe stream on which to print.
void nvpair_print_xml ( struct nvpair *  n,
FILE *  stream 
)

Print an entire nvpair in XML form.

Parameters
nThe nvpair to print.
streamThe stream on which to print.
void nvpair_print_new_classads ( struct nvpair *  n,
FILE *  stream 
)

Print an entire nvpair in new ClassAd form.

Parameters
nThe nvpair to print.
streamThe stream on which to print.
void nvpair_print_old_classads ( struct nvpair *  n,
FILE *  stream 
)

Print an entire nvpair in old ClassAd form.

Parameters
nThe nvpair to print.
streamThe stream on which to print.
void nvpair_print_html_solo ( struct nvpair *  n,
FILE *  stream 
)

Print an entire nvpair in HTML form.

Parameters
nThe nvpair to print.
streamThe stream on which to print.