tests: allow running make check without make install
[platform/upstream/weston.git] / shared / config-parser.h
index 34f5c31..1ecc8cc 100644 (file)
 #ifndef CONFIGPARSER_H
 #define CONFIGPARSER_H
 
+#ifdef  __cplusplus
+extern "C" {
+#endif
+
 enum config_key_type {
-       CONFIG_KEY_INTEGER,     /* typeof data = int */
-       CONFIG_KEY_STRING,      /* typeof data = char* */
-       CONFIG_KEY_BOOLEAN      /* typeof data = int */
+       CONFIG_KEY_INTEGER,             /* typeof data = int */
+       CONFIG_KEY_UNSIGNED_INTEGER,    /* typeof data = unsigned int */
+       CONFIG_KEY_STRING,              /* typeof data = char* */
+       CONFIG_KEY_BOOLEAN              /* typeof data = int */
 };
 
 struct config_key {
@@ -42,13 +47,71 @@ struct config_section {
        void (*done)(void *data);
 };
 
+enum weston_option_type {
+       WESTON_OPTION_INTEGER,
+       WESTON_OPTION_UNSIGNED_INTEGER,
+       WESTON_OPTION_STRING,
+       WESTON_OPTION_BOOLEAN
+};
+
+struct weston_option {
+       enum weston_option_type type;
+       const char *name;
+       int short_name;
+       void *data;
+};
+
+int
+parse_options(const struct weston_option *options,
+             int count, int *argc, char *argv[]);
+
+struct weston_config_section;
+struct weston_config;
+
+struct weston_config_section *
+weston_config_get_section(struct weston_config *config, const char *section,
+                         const char *key, const char *value);
 int
-parse_config_file(const char *path,
-                 const struct config_section *sections, int num_sections,
-                 void *data);
+weston_config_section_get_int(struct weston_config_section *section,
+                             const char *key,
+                             int32_t *value, int32_t default_value);
+int
+weston_config_section_get_uint(struct weston_config_section *section,
+                              const char *key,
+                              uint32_t *value, uint32_t default_value);
+int
+weston_config_section_get_double(struct weston_config_section *section,
+                                const char *key,
+                                double *value, double default_value);
+int
+weston_config_section_get_string(struct weston_config_section *section,
+                                const char *key,
+                                char **value,
+                                const char *default_value);
+int
+weston_config_section_get_bool(struct weston_config_section *section,
+                              const char *key,
+                              int *value, int default_value);
+const char *
+weston_config_get_libexec_dir(void);
+
+struct weston_config *
+weston_config_parse(const char *name);
+
+const char *
+weston_config_get_full_path(struct weston_config *config);
+
+void
+weston_config_destroy(struct weston_config *config);
+
+int weston_config_next_section(struct weston_config *config,
+                              struct weston_config_section **section,
+                              const char **name);
+
 
-char *
-config_file_path(const char *name);
+#ifdef  __cplusplus
+}
+#endif
 
 #endif /* CONFIGPARSER_H */