1999-11-04 22:56:02 +01:00
|
|
|
/* This implements a sort of variable repository. One could also think of it
|
|
|
|
* as cheap version of an associative array. In each one of these
|
|
|
|
* datastructures you can store name/value pairs.
|
|
|
|
*
|
|
|
|
* All functions (should) follow the Shit-In-Shit-Out (SISO) principle, i.e.,
|
|
|
|
* you can pass them NULL pointers and the like and they will return something
|
|
|
|
* appropriate.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef VARIABLES_H
|
|
|
|
#define VARIABLES_H
|
|
|
|
#include <c.h>
|
|
|
|
|
|
|
|
#define VALID_VARIABLE_CHARS "abcdefghijklmnopqrstuvwxyz0123456789_"
|
|
|
|
|
1999-11-05 00:14:30 +01:00
|
|
|
struct _variable
|
|
|
|
{
|
|
|
|
char *name;
|
|
|
|
char *value;
|
|
|
|
struct _variable *next;
|
1999-11-04 22:56:02 +01:00
|
|
|
};
|
|
|
|
|
1999-11-05 00:14:30 +01:00
|
|
|
typedef struct _variable *VariableSpace;
|
1999-11-04 22:56:02 +01:00
|
|
|
|
|
|
|
|
|
|
|
VariableSpace CreateVariableSpace(void);
|
1999-11-05 00:14:30 +01:00
|
|
|
const char *GetVariable(VariableSpace space, const char *name);
|
|
|
|
bool GetVariableBool(VariableSpace space, const char *name);
|
|
|
|
bool SetVariable(VariableSpace space, const char *name, const char *value);
|
|
|
|
bool DeleteVariable(VariableSpace space, const char *name);
|
|
|
|
void DestroyVariableSpace(VariableSpace space);
|
1999-11-04 22:56:02 +01:00
|
|
|
|
|
|
|
|
1999-11-05 00:14:30 +01:00
|
|
|
#endif /* VARIABLES_H */
|