summaryrefslogtreecommitdiff
path: root/src/libaudcore/inifile.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/libaudcore/inifile.h')
-rw-r--r--src/libaudcore/inifile.h23
1 files changed, 16 insertions, 7 deletions
diff --git a/src/libaudcore/inifile.h b/src/libaudcore/inifile.h
index 87189c2..f9ee049 100644
--- a/src/libaudcore/inifile.h
+++ b/src/libaudcore/inifile.h
@@ -20,14 +20,23 @@
#ifndef LIBAUDCORE_INIFILE_H
#define LIBAUDCORE_INIFILE_H
-#include "vfs.h"
+class VFSFile;
-void inifile_parse (VFSFile * file,
- void (* handle_heading) (const char * heading, void * data),
- void (* handle_entry) (const char * key, const char * value, void * data),
- void * data);
+class IniParser
+{
+public:
+ virtual ~IniParser () {}
-bool_t inifile_write_heading (VFSFile * file, const char * heading);
-bool_t inifile_write_entry (VFSFile * file, const char * key, const char * value);
+ void parse (VFSFile & file);
+
+protected:
+ virtual void handle_heading (const char * heading) = 0;
+ virtual void handle_entry (const char * key, const char * value) = 0;
+};
+
+bool inifile_write_heading (VFSFile & file, const char * heading)
+ __attribute__ ((warn_unused_result));
+bool inifile_write_entry (VFSFile & file, const char * key, const char * value)
+ __attribute__ ((warn_unused_result));
#endif /* LIBAUDCORE_INIFILE_H */