diff options
author | Piotr Dziwiński <piotrdz@gmail.com> | 2012-08-12 10:15:19 -0700 |
---|---|---|
committer | Piotr Dziwiński <piotrdz@gmail.com> | 2012-08-12 10:15:19 -0700 |
commit | 50deedb6cbc927f6c7d6c3c5e9134d11c20782ae (patch) | |
tree | 8eb3fbd914cfea11660534b296bfddcffcc5f7b4 /src/common/profile.h | |
parent | bc24b9f9e516e657fcc0034808e010287fc2e393 (diff) | |
parent | 62b545128f37746c343760e464872655b5523c6f (diff) | |
download | colobot-50deedb6cbc927f6c7d6c3c5e9134d11c20782ae.tar.gz colobot-50deedb6cbc927f6c7d6c3c5e9134d11c20782ae.tar.bz2 colobot-50deedb6cbc927f6c7d6c3c5e9134d11c20782ae.zip |
Merge pull request #36 from Erihel/dev
Merge of new features: plugins and INI profile, changes from dev-graphics
Diffstat (limited to 'src/common/profile.h')
-rw-r--r-- | src/common/profile.h | 98 |
1 files changed, 91 insertions, 7 deletions
diff --git a/src/common/profile.h b/src/common/profile.h index 2c76a0b..0886522 100644 --- a/src/common/profile.h +++ b/src/common/profile.h @@ -18,13 +18,97 @@ #pragma once +#include <cstdlib> +#include <vector> +#include <utility> -extern bool InitCurrentDirectory(); -extern bool SetLocalProfileString(char* section, char* key, char* string); -extern bool GetLocalProfileString(char* section, char* key, char* buffer, int max); -extern bool SetLocalProfileInt(char* section, char* key, int value); -extern bool GetLocalProfileInt(char* section, char* key, int &value); -extern bool SetLocalProfileFloat(char* section, char* key, float value); -extern bool GetLocalProfileFloat(char* section, char* key, float &value); +#include <lib/simpleini/SimpleIni.h> +#include <common/singleton.h> +/** + * @file common/profile.h + * @brief Class for loading profile (currently for loading ini config file) + */ + + +/** +* @class CProfile +* +* @brief Class for loading profile (currently for loading ini config file) +* +*/ +class CProfile : public CSingleton<CProfile> +{ + public: + CProfile(); + ~CProfile(); + + /** Loads colobot.ini from current directory + * @return return true on success + */ + bool InitCurrentDirectory(); + + /** Sets string value in section under specified key + * @param std::string section + * @param std::string key + * @param std::string value + * @return return true on success + */ + bool SetLocalProfileString(std::string section, std::string key, std::string value); + + /** Gets string value in section under specified key + * @param std::string section + * @param std::string key + * @param std::string& buffer + * @return return true on success + */ + bool GetLocalProfileString(std::string section, std::string key, std::string& buffer); + + /** Sets int value in section under specified key + * @param std::string section + * @param std::string key + * @param int value + * @return return true on success + */ + bool SetLocalProfileInt(std::string section, std::string key, int value); + + /** Gets int value in section under specified key + * @param std::string section + * @param std::string key + * @param int& value + * @return return true on success + */ + bool GetLocalProfileInt(std::string section, std::string key, int &value); + + /** Sets float value in section under specified key + * @param std::string section + * @param std::string key + * @param float value + * @return return true on success + */ + bool SetLocalProfileFloat(std::string section, std::string key, float value); + + /** Gets float value in section under specified key + * @param std::string section + * @param std::string key + * @param float& value + * @return return true on success + */ + bool GetLocalProfileFloat(std::string section, std::string key, float &value); + + /** Gets all values in section under specified key + * @param std::string section + * @param std::string key + * @return vector of values + */ + std::vector< std::string > GetLocalProfileSection(std::string section, std::string key); + + private: + CSimpleIniA *m_ini; +}; + +//! Global function to get profile instance +inline CProfile* GetProfile() { + return CProfile::GetInstancePointer(); +} |