| /* |
| Copyright 2012 bigbiff/Dees_Troy TeamWin |
| This file is part of TWRP/TeamWin Recovery Project. |
| |
| TWRP is free software: you can redistribute it and/or modify |
| it under the terms of the GNU General Public License as published by |
| the Free Software Foundation, either version 3 of the License, or |
| (at your option) any later version. |
| |
| TWRP 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. |
| |
| You should have received a copy of the GNU General Public License |
| along with TWRP. If not, see <http://www.gnu.org/licenses/>. |
| */ |
| |
| #ifndef _DATAMANAGER_HPP_HEADER |
| #define _DATAMANAGER_HPP_HEADER |
| |
| #include <string> |
| #include <utility> |
| #include <map> |
| |
| using namespace std; |
| |
| class DataManager |
| { |
| public: |
| static int ResetDefaults(); |
| static int LoadValues(const string filename); |
| static int Flush(); |
| |
| // Core get routines |
| static int GetValue(const string varName, string& value); |
| static int GetValue(const string varName, int& value); |
| static int GetValue(const string varName, float& value); |
| static unsigned long long GetValue(const string varName, unsigned long long& value); |
| |
| // This is a dangerous function. It will create the value if it doesn't exist so it has a valid c_str |
| static string& GetValueRef(const string varName); |
| |
| // Helper functions |
| static string GetStrValue(const string varName); |
| static int GetIntValue(const string varName); |
| |
| // Core set routines |
| static int SetValue(const string varName, string value, int persist = 0); |
| static int SetValue(const string varName, int value, int persist = 0); |
| static int SetValue(const string varName, float value, int persist = 0); |
| static int SetValue(const string varName, unsigned long long value, int persist = 0); |
| static int SetProgress(float Fraction); |
| static int ShowProgress(float Portion, float Seconds); |
| |
| static void DumpValues(); |
| static void update_tz_environment_variables(); |
| static void SetBackupFolder(); |
| static void SetDefaultValues(); |
| static void Output_Version(void); // Outputs the version to a file in the TWRP folder |
| static void ReadSettingsFile(void); |
| |
| static string GetCurrentStoragePath(void); |
| static string& CGetCurrentStoragePath(); |
| static string GetSettingsStoragePath(void); |
| static string& CGetSettingsStoragePath(); |
| |
| protected: |
| typedef pair<string, int> TStrIntPair; |
| typedef pair<string, unsigned long long> TStrULLPair; |
| typedef pair<string, TStrIntPair> TNameValuePair; |
| static map<string, TStrIntPair> mValues; |
| static map<string, TStrULLPair> mULLValues; |
| static string mBackingFile; |
| static int mInitialized; |
| |
| static map<string, string> mConstValues; |
| |
| protected: |
| static int SaveValues(); |
| |
| static int GetMagicValue(string varName, string& value); |
| |
| private: |
| static void sanitize_device_id(char* device_id); |
| static void get_device_id(void); |
| |
| }; |
| |
| #endif // _DATAMANAGER_HPP_HEADER |
| |