// SettingsStore.cpp // ///////////////////////////////////////////////////////////////////////////// // // Copyright (c) 2002 Iain Murray // ///////////////////////////////////////////////////////////////////////////// #include "SettingsStore.h" using namespace std; /* TODO: Consider using Template functions to make this neater. */ CSettingsStore::~CSettingsStore() { } bool CSettingsStore::GetBoolOption(const string& Key) { if (BoolMap.find(Key)==BoolMap.end()) { bool Value = false; LoadSetting(Key, &Value); BoolMap[Key] = Value; } return BoolMap[Key]; } long CSettingsStore::GetLongOption(const string& Key) { if (LongMap.find(Key)==LongMap.end()) { long Value = 0l; LoadSetting(Key, &Value); LongMap[Key] = Value; } return LongMap[Key]; } string& CSettingsStore::GetStringOption(const string& Key) { if (StringMap.find(Key)==StringMap.end()) { string Value = ""; LoadSetting(Key, &Value); StringMap[Key] = Value; } return StringMap[Key]; } void CSettingsStore::SetBoolOption(const string& Key, bool Value) { BoolMap[Key] = Value; SaveSetting(Key, Value); } void CSettingsStore::SetLongOption(const string& Key, long Value) { LongMap[Key] = Value; SaveSetting(Key, Value); } void CSettingsStore::SetStringOption(const string& Key, const string& Value) { StringMap[Key] = Value; SaveSetting(Key, Value); } void CSettingsStore::SetBoolDefault(const string& Key, bool Value) { bool TmpValue; if ( (BoolMap.find(Key)==BoolMap.end()) && (!LoadSetting(Key, &TmpValue)) ) SetBoolOption(Key, Value); } void CSettingsStore::SetLongDefault(const string& Key, long Value) { long TmpValue; if ( (LongMap.find(Key)==LongMap.end()) && (!LoadSetting(Key, &TmpValue)) ) SetLongOption(Key, Value); } void CSettingsStore::SetStringDefault(const string& Key, const string& Value) { string TmpValue; if ( (StringMap.find(Key)==StringMap.end()) && (!LoadSetting(Key, &TmpValue)) ) SetStringOption(Key, Value); } /* Private functions -- Settings are not saved between sessions unless these functions are over-ridden. --------------------------------------------------------------------------*/ bool CSettingsStore::LoadSetting(const string& , bool* ) { return false; } bool CSettingsStore::LoadSetting(const string& , long* ) { return false; } bool CSettingsStore::LoadSetting(const string& , string* ) { return false; } void CSettingsStore::SaveSetting(const string& , bool ) { } void CSettingsStore::SaveSetting(const string& , long ) { } void CSettingsStore::SaveSetting(const string& , const string& ) { }