A class for managing application settings. More...
#include <ApplicationSettings.h>
Public Types | |
typedef ObjectLevelLockingPolicy< ::boost::lock_guard< ::boost::recursive_mutex > > | LockRead |
typedef ObjectLevelLockingPolicy< ::boost::lock_guard< ::boost::recursive_mutex > > | LockWrite |
typedef volatile ApplicationSettings | VolatileType |
Public Member Functions | |
ApplicationSettings () | |
Constructor. More... | |
void | changed () |
This method can be used by clients to inform manually that the internal state has changed. More... | |
const boost::property_tree::ptree & | getAllSettings () const |
It return a reading reference to the internal settings. More... | |
boost::property_tree::ptree & | getAllSettings () |
It return a reference to the internal settings. More... | |
std::string | getValue (const std::string &key) |
It returns the value for a given key or empty. More... | |
void | load (const std::string &settingsFile) |
It initializes the application settings. More... | |
void | setValue (const std::string &key, const std::string &value) |
It stores the value according to the key. More... | |
void | update () |
It updates the application settings. More... | |
~ApplicationSettings () | |
The destructor will automatically save the settings to a file if one is set. More... | |
Protected Attributes | |
bool | m_dirty |
A dirty bit to indicate wheter the clients have made changes in the settings since the last update. More... | |
std::string | m_file |
The settings file name. More... | |
boost::property_tree::ptree | m_settings |
This will keep our settings in memory. More... | |
A class for managing application settings.
This class can be used to keep user preferences that customize the application's appearance and behavior. It can also be used to keep settings applied to the system (for all users).
For each setting you must provide an unique name. The rule for setting names are the same as for XML element names: it can be any combination of letters, numbers, or an underscore, they must not start with a number and cannot have white spaces.
Definition at line 67 of file ApplicationSettings.h.
|
inherited |
Definition at line 205 of file ThreadingPolicies.h.
|
inherited |
Definition at line 206 of file ThreadingPolicies.h.
|
inherited |
Definition at line 204 of file ThreadingPolicies.h.
|
inline |
Constructor.
Definition at line 171 of file ApplicationSettings.h.
|
inline |
The destructor will automatically save the settings to a file if one is set.
Definition at line 177 of file ApplicationSettings.h.
References update().
|
inline |
This method can be used by clients to inform manually that the internal state has changed.
This method is useful when accessing the internal settings structure.
Definition at line 238 of file ApplicationSettings.h.
References m_dirty.
|
inline |
It return a reading reference to the internal settings.
Definition at line 245 of file ApplicationSettings.h.
References m_settings.
|
inline |
It return a reference to the internal settings.
Definition at line 250 of file ApplicationSettings.h.
References m_settings.
|
inline |
It returns the value for a given key or empty.
key | The key used to identify the searched value. |
Definition at line 190 of file ApplicationSettings.h.
References m_settings.
|
inline |
It initializes the application settings.
settingsFile | The name of the application settings file. |
Definition at line 204 of file ApplicationSettings.h.
References te::core::FileSystem::isRegularFile(), m_dirty, m_file, and m_settings.
|
inline |
It stores the value according to the key.
key | The key used to identify the given value. The key must follow the same rules as XML elements and they can be subclassified using a dot notation: setValue(key.subkey.subsubkey, value). |
value | The value to be stored, any valid string. |
Definition at line 182 of file ApplicationSettings.h.
References m_dirty, and m_settings.
|
inline |
It updates the application settings.
Definition at line 216 of file ApplicationSettings.h.
References m_dirty, m_file, m_settings, and te::core::FileSystem::remove().
Referenced by ~ApplicationSettings().
|
protected |
A dirty bit to indicate wheter the clients have made changes in the settings since the last update.
Definition at line 168 of file ApplicationSettings.h.
Referenced by changed(), load(), setValue(), and update().
|
protected |
The settings file name.
Definition at line 167 of file ApplicationSettings.h.
|
protected |
This will keep our settings in memory.
Definition at line 166 of file ApplicationSettings.h.
Referenced by getAllSettings(), getValue(), load(), setValue(), and update().