aboutsummaryrefslogtreecommitdiffstats
path: root/android_config.h
diff options
context:
space:
mode:
Diffstat (limited to 'android_config.h')
-rw-r--r--android_config.h57
1 files changed, 57 insertions, 0 deletions
diff --git a/android_config.h b/android_config.h
new file mode 100644
index 0000000..5e8b048
--- /dev/null
+++ b/android_config.h
@@ -0,0 +1,57 @@
+/* Copyright (C) 2007-2008 The Android Open Source Project
+**
+** This software is licensed under the terms of the GNU General Public
+** License version 2, as published by the Free Software Foundation, and
+** may be copied, distributed, and modified under those terms.
+**
+** This program is distributed in the hope that it will be useful,
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+** GNU General Public License for more details.
+*/
+#ifndef ANDROID_CONFIG_H
+#define ANDROID_CONFIG_H
+
+/** ANDROID CONFIGURATION FILE SUPPORT
+ **
+ ** A configuration file is loaded as a simplre tree of (key,value)
+ ** pairs. keys and values are simple strings
+ **/
+typedef struct AConfig AConfig;
+
+struct AConfig
+{
+ AConfig* next;
+ AConfig* first_child;
+ AConfig* last_child;
+ const char* name;
+ const char* value;
+};
+
+/* parse a text string into a config node tree */
+extern void aconfig_load(AConfig* root, char* data);
+
+/* parse a file into a config node tree, return 0 in case of success, -1 otherwise */
+extern int aconfig_load_file(AConfig* root, const char* path);
+
+/* save a config node tree into a file, return 0 in case of success, -1 otherwise */
+extern int aconfig_save_file(AConfig* root, const char* path);
+
+/* create a single config node */
+extern AConfig* aconfig_node(const char *name, const char *value);
+
+/* locate a named child of a config node */
+extern AConfig* aconfig_find(AConfig *root, const char *name);
+
+/* add a named child to a config node (or modify it if it already exists) */
+extern void aconfig_set(AConfig *root, const char *name, const char *value);
+
+
+/* look up a child by name and return its value, eventually converted
+ * into a boolean or integer */
+extern int aconfig_bool (AConfig *root, const char *name, int _default);
+extern unsigned aconfig_unsigned(AConfig *root, const char *name, unsigned _default);
+extern int aconfig_int (AConfig *root, const char *name, int _default);
+extern const char* aconfig_str (AConfig *root, const char *name, const char *_default);
+
+#endif /* ANDROID_CONFIG_H */