diff options
Diffstat (limited to '')
-rw-r--r-- | data.hpp | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/data.hpp b/data.hpp new file mode 100644 index 000000000..58c55ddec --- /dev/null +++ b/data.hpp @@ -0,0 +1,79 @@ +/* + * Copyright (C) 2007 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#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); + + // 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 void DumpValues(); + static void SetDefaultValues(); + static void ReadSettingsFile(void); + + static string GetCurrentStoragePath(void); + static string& CGetCurrentStoragePath(); + static string GetCurrentStorageMount(void); + static string& CGetCurrentStorageMount(); + static string GetSettingsStoragePath(void); + static string& CGetSettingsStoragePath(); + static string GetSettingsStorageMount(void); + static string& CGetSettingsStorageMount(); + +protected: + typedef pair<string, int> TStrIntPair; + typedef pair<string, TStrIntPair> TNameValuePair; + static map<string, TStrIntPair> mValues; + static string mBackingFile; + static int mInitialized; + + static map<string, string> mConstValues; + +protected: + static int SaveValues(); + + static int GetMagicValue(string varName, string& value); + +}; + +#endif // _DATAMANAGER_HPP_HEADER + |