summaryrefslogblamecommitdiff
path: root/src/common/raconf.h
blob: 68a2b51b20b814fc21c1c1f9f8182fd83e0dc957 (plain) (tree)
1
2
3
4
5
6
7
8
9








                                                                           


                                                            
  
                                                     




                              
    
                                     
   



                                             
                                            

 
    



                                            
                                  

 

                                                                              

   



                                                                                                      

   
                                                                                                   





                                                                                                                            
                                                                                                                                  



      
// Copyright (c) rAthena Project (www.rathena.org) - Licensed under GNU GPL
// For more information, see LICENCE in the main folder

#ifndef _rA_CONF_H_
#define _rA_CONF_H_

#include "../common/cbasetypes.h"

// rAthena generic configuration file parser
// 
//  Config file Syntax is athena style 
//	extended with ini style support (including sections)
//
//	Comments are started with // or ; (ini style)
//

typedef struct raconf *raconf;


/** 
 * Parses a rAthna Configuration file
 * 
 * @param file_name path to the file to parse
 *
 * @returns not NULL incase of success
 */
raconf	raconf_parse(const char *file_name);


/** 
 * Frees a Handle received from raconf_parse
 *
 * @param rc - the handle to free
 */
void	raconf_destroy(raconf rc);


/** 
 * Gets the value for Section / Key pair, if key not exists returns _default! 
 *
 */
bool 		raconf_getbool(raconf rc, const char *section, const char *key,	bool _default);
float		raconf_getfloat(raconf rc,const char *section, const char *key, float _default);
int64		raconf_getint(raconf rc,  const char *section, const char *key, int64 _default);  
const char*	raconf_getstr(raconf rc,  const char *section, const char *key, const char *_default);

/**
 * Gets the value for Section / Key pair, but has fallback section option if not found in section, 
 * if not found in both - default gets returned.
 *
 */
bool        raconf_getboolEx(raconf rc, const char *section, const char *fallback_section, const char *key, bool _default);
float       raconf_getfloatEx(raconf rc,const char *section, const char *fallback_section, const char *key, float _default);
int64       raconf_getintEx(raconf rc,  const char *section, const char *fallback_section, const char *key, int64 _default);
const char* raconf_getstrEx(raconf rc,  const char *section, const char *fallback_section, const char *key, const char *_default);



#endif