52 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
// Read an INI file into easy-to-access name/value pairs.
 | 
						|
 | 
						|
// inih and INIReader are released under the New BSD license (see LICENSE.txt).
 | 
						|
// Go to the project home page for more info:
 | 
						|
//
 | 
						|
// http://code.google.com/p/inih/
 | 
						|
 | 
						|
#ifndef __INIREADER_H__
 | 
						|
#define __INIREADER_H__
 | 
						|
 | 
						|
#include <map>
 | 
						|
#include <string>
 | 
						|
 | 
						|
// Read an INI file into easy-to-access name/value pairs. (Note that I've gone
 | 
						|
// for simplicity here rather than speed, but it should be pretty decent.)
 | 
						|
class INIReader
 | 
						|
{
 | 
						|
public:
 | 
						|
    // Construct INIReader and parse given filename. See ini.h for more info
 | 
						|
    // about the parsing.
 | 
						|
    INIReader(std::string filename);
 | 
						|
 | 
						|
    // Return the result of ini_parse(), i.e., 0 on success, line number of
 | 
						|
    // first error on parse error, or -1 on file open error.
 | 
						|
    int ParseError();
 | 
						|
 | 
						|
    // Get a string value from INI file, returning default_value if not found.
 | 
						|
    std::string Get(std::string section,
 | 
						|
                    std::string name,
 | 
						|
                    std::string default_value);
 | 
						|
 | 
						|
    // Get an integer (long) value from INI file, returning default_value if
 | 
						|
    // not found or not a valid integer (decimal "1234", "-1234", or hex "0x4d2").
 | 
						|
    long GetInteger(std::string section, std::string name, long default_value);
 | 
						|
 | 
						|
    // Get a boolean value from INI file, returning default_value if not found or if
 | 
						|
    // not a valid true/false value. Valid true values are "true", "yes", "on", "1",
 | 
						|
    // and valid false values are "false", "no", "off", "0" (not case sensitive).
 | 
						|
    bool GetBoolean(std::string section, std::string name, bool default_value);
 | 
						|
 | 
						|
private:
 | 
						|
    int                                _error;
 | 
						|
    std::map<std::string, std::string> _values;
 | 
						|
    static std::string MakeKey(std::string section, std::string name);
 | 
						|
    static int         ValueHandler(void*       user,
 | 
						|
                                    const char* section,
 | 
						|
                                    const char* name,
 | 
						|
                                    const char* value);
 | 
						|
};
 | 
						|
 | 
						|
#endif      // __INIREADER_H__
 |