#ifndef INCLUDE_CONFIG_H
#define INCLUDE_CONFIG_H

#include "common/asyncio.h"

#ifdef __GNUG__
#pragma interface
#endif

#include <clib/exec_protos.h>
#include <clib/dos_protos.h>

#define CFG_WRITE_SUCCESS 1
#define CFG_WRITE_FAIL 0

#define CFG_READ_SUCCESS 1
#define CFG_READ_FAIL 0

#define BUFFERSIZE  256

class ConfigClass 
{
public:
	  ConfigClass(APTR pool, char* fname);
	 ~ConfigClass();
	 
    int Load ();
    int Save ();
    
    char *GetString (char *item, char *def);
    BOOL  SetString (char *item, char *data);

    BOOL Set (char *item, char *data);
    BOOL Set (char *item, long data);
    void Set (char *item, char **list, long num);
    void Set (char *item, long  *list, long num);

    char *Get (char *item, char *def);
    long Get  (char *item, long def = 0);
    void Get  (char *item, char **list, long num, char **data);
    void Get  (char *item, long  *list, long num, long  *data);

    private:
    char *filename;
    APTR mempool;
    struct List cfglist;

    int add_list_item (char *item);
};

#endif