summaryrefslogtreecommitdiff
path: root/src/common/raconf.h
diff options
context:
space:
mode:
authorblacksirius <blacksirius@54d463be-8e91-2dee-dedb-b68131a5f0ec>2012-06-10 16:04:24 +0000
committerblacksirius <blacksirius@54d463be-8e91-2dee-dedb-b68131a5f0ec>2012-06-10 16:04:24 +0000
commite85c28ce148e0740697c76e9751b0d9cacbe67d1 (patch)
tree8ca92b709d2606a738e911eaaf9605efadc0c79e /src/common/raconf.h
parent76ed57676c0ed81a433f45c4350b5b5fcba11a7d (diff)
downloadhercules-e85c28ce148e0740697c76e9751b0d9cacbe67d1.tar.gz
hercules-e85c28ce148e0740697c76e9751b0d9cacbe67d1.tar.bz2
hercules-e85c28ce148e0740697c76e9751b0d9cacbe67d1.tar.xz
hercules-e85c28ce148e0740697c76e9751b0d9cacbe67d1.zip
- added some missing copyrights
- merged (bs-coreoptimize->trunk) generic athena style configuration parser (raconf) - merged (bs-coreoptimize->trunk) threadsafe memory pool (mempool) [i need it for the new 'socket' system] - set svn:eol-style property on newer files were it was missing git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16263 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/common/raconf.h')
-rw-r--r--src/common/raconf.h59
1 files changed, 59 insertions, 0 deletions
diff --git a/src/common/raconf.h b/src/common/raconf.h
new file mode 100644
index 000000000..68a2b51b2
--- /dev/null
+++ b/src/common/raconf.h
@@ -0,0 +1,59 @@
+// 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