/* 
 * File:   Param.h
 * Author: SeanHalle@yahoo.com
 *
 * Created on November 19, 2009, 6:30 PM
 */

#ifndef _PARAM_H
#define	_PARAM_H

typedef
struct
 { int type;
   int intValue;
   char * strValue;
   float floatValue;
 }
ParamStruc;

#define INT_PARAM_TYPE    0
#define STRING_PARAM_TYPE 1
#define FLOAT_PARAM_TYPE  2

#define HASHSIZE 101

typedef
struct _HashEntry
 {
  char       *key;
  ParamStruc *param;
  struct _HashEntry *next;
 }
HashEntry;

typedef
struct
 { int bagSz;
   HashEntry* *entries;
 }
ParamBag;

ParamBag    *makeParamBag();
ParamStruc  *getParamFromBag( char *key, ParamBag * bag );
int          addParamToBag( char* key, ParamStruc *param, ParamBag *bag );
void         freeParamBag( ParamBag *bag );
//char        *paramBagToString( ParamBag * bag )
ParamStruc  *makeParamStruc();
ParamStruc  *makeParamFromStrs( char * type, char *value );
ssize_t      getline( char **lineptr, size_t *n, FILE *stream );

#endif	/* _PARAM_H */

