dictionary.h File Reference
Detailed Description
Implements a dictionary for string variables.
- Date:
- Aug 2000
- Version:
- Revision
- 1.11
Definition in file dictionary.h.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
Go to the source code of this file.
Data Structures | |
struct | _dictionary_ |
Dictionary object. More... | |
Typedefs | |
typedef struct _dictionary_ | dictionary |
Functions | |
void | dictionary_del (dictionary *vd) |
void | dictionary_dump (dictionary *d, FILE *out) |
char * | dictionary_get (dictionary *d, char *key, char *def) |
char | dictionary_getchar (dictionary *d, char *key, char def) |
double | dictionary_getdouble (dictionary *d, char *key, double def) |
int | dictionary_getint (dictionary *d, char *key, int def) |
unsigned | dictionary_hash (char *key) |
dictionary * | dictionary_new (int size) |
void | dictionary_set (dictionary *vd, char *key, char *val) |
void | dictionary_setdouble (dictionary *d, char *key, double val) |
void | dictionary_setint (dictionary *d, char *key, int val) |
void | dictionary_unset (dictionary *d, char *key) |
Typedef Documentation
typedef struct _dictionary_ dictionary |
Dictionary object.
This object contains a list of string/string associations. Each association is identified by a unique string key. Looking up values in the dictionary is speeded up by the use of a (hopefully collision-free) hash function.
Function Documentation
void dictionary_del | ( | dictionary * | vd | ) |
Delete a dictionary object.
- Parameters:
-
d dictionary object to deallocate.
- Returns:
- void
void dictionary_dump | ( | dictionary * | d, | |
FILE * | out | |||
) |
Dump a dictionary to an opened file pointer.
- Parameters:
-
d Dictionary to dump f Opened file pointer.
- Returns:
- void
[Key]=[Value], one per line. It is Ok to provide stdout or stderr as output file pointers.
char* dictionary_get | ( | dictionary * | d, | |
char * | key, | |||
char * | def | |||
) |
Get a value from a dictionary.
- Parameters:
-
d dictionary object to search. key Key to look for in the dictionary. def Default value to return if key not found.
- Returns:
- 1 pointer to internally allocated character string.
char dictionary_getchar | ( | dictionary * | d, | |
char * | key, | |||
char | def | |||
) |
Get a value from a dictionary, as a char.
- Parameters:
-
d dictionary object to search. key Key to look for in the dictionary. def Default value for the key if not found.
- Returns:
- char
double dictionary_getdouble | ( | dictionary * | d, | |
char * | key, | |||
double | def | |||
) |
Get a value from a dictionary, as a double.
- Parameters:
-
d dictionary object to search. key Key to look for in the dictionary. def Default value for the key if not found.
- Returns:
- double
int dictionary_getint | ( | dictionary * | d, | |
char * | key, | |||
int | def | |||
) |
Get a value from a dictionary, as an int.
- Parameters:
-
d dictionary object to search. key Key to look for in the dictionary. def Default value for the key if not found.
- Returns:
- int
unsigned dictionary_hash | ( | char * | key | ) |
Compute the hash key for a string.
- Parameters:
-
key Character string to use for key.
- Returns:
- 1 unsigned int on at least 32 bits.
dictionary* dictionary_new | ( | int | size | ) |
Create a new dictionary object.
- Parameters:
-
size Optional initial size of the dictionary.
- Returns:
- 1 newly allocated dictionary objet.
void dictionary_set | ( | dictionary * | vd, | |
char * | key, | |||
char * | val | |||
) |
Set a value in a dictionary.
- Parameters:
-
d dictionary object to modify. key Key to modify or add. val Value to add.
- Returns:
- void
It is Ok to provide a NULL value for val, but NULL values for the dictionary or the key are considered as errors: the function will return immediately in such a case.
Notice that if you dictionary_set a variable to NULL, a call to dictionary_get will return a NULL value: the variable will be found, and its value (NULL) is returned. In other words, setting the variable content to NULL is equivalent to deleting the variable from the dictionary. It is not possible (in this implementation) to have a key in the dictionary without value.
void dictionary_setdouble | ( | dictionary * | d, | |
char * | key, | |||
double | val | |||
) |
Set a key in a dictionary, providing a double.
- Parameters:
-
d Dictionary to update. key Key to modify or add val Double value to store (will be stored as a string).
- Returns:
- void
void dictionary_setint | ( | dictionary * | d, | |
char * | key, | |||
int | val | |||
) |
Set a key in a dictionary, providing an int.
- Parameters:
-
d Dictionary to update. key Key to modify or add val Integer value to store (will be stored as a string).
- Returns:
- void
void dictionary_unset | ( | dictionary * | d, | |
char * | key | |||
) |
Delete a key in a dictionary.
- Parameters:
-
d dictionary object to modify. key Key to remove.
- Returns:
- void