26 #ifndef __TERRALIB_COMMON_INTERNAL_APPLICATIONSETTINGS_H 
   27 #define __TERRALIB_COMMON_INTERNAL_APPLICATIONSETTINGS_H 
   32 #include "../core/filesystem/FileSystem.h" 
   38 #include <boost/property_tree/ptree.hpp> 
   39 #include <boost/property_tree/xml_parser.hpp> 
   40 #include <boost/filesystem.hpp> 
   41 #include <boost/noncopyable.hpp> 
   69                                        ::boost::recursive_mutex,
 
   70                                        ::boost::lock_guard< ::boost::recursive_mutex>,
 
   71                                        ::boost::lock_guard< ::boost::recursive_mutex> >,
 
   72             public ::boost::noncopyable
 
   94         void setValue(
const std::string& key, 
const std::string& value);
 
  105         std::string 
getValue(
const std::string& key);
 
  120         void load(
const std::string& settingsFile);
 
  213         boost::property_tree::read_xml(
m_file, 
m_settings, boost::property_tree::xml_parser::trim_whitespace);
 
  227 #if BOOST_VERSION > 105600 
  228         boost::property_tree::xml_writer_settings<std::string> settings(
'\t', 1);
 
  230         boost::property_tree::xml_writer_settings<char> settings(
'\t', 1);
 
  232         boost::property_tree::write_xml(
m_file, 
m_settings, std::locale(), settings);
 
Threading policies that can be applied to TerraLib classes that need some synchronization schema.
 
A class for managing application settings.
 
boost::property_tree::ptree m_settings
This will keep our settings in memory.
 
void setValue(const std::string &key, const std::string &value)
It stores the value according to the key.
 
std::string m_file
The settings file name.
 
bool m_dirty
A dirty bit to indicate wheter the clients have made changes in the settings since the last update.
 
void update()
It updates the application settings.
 
~ApplicationSettings()
The destructor will automatically save the settings to a file if one is set.
 
const boost::property_tree::ptree & getAllSettings() const
It return a reading reference to the internal settings.
 
void changed()
This method can be used by clients to inform manually that the internal state has changed.
 
void load(const std::string &settingsFile)
It initializes the application settings.
 
ApplicationSettings()
Constructor.
 
std::string getValue(const std::string &key)
It returns the value for a given key or empty.
 
This policy assures an object-level locking scheme for a derived class.
 
ObjectLevelLockingPolicy< ::boost::lock_guard< ::boost::recursive_mutex > > LockRead
 
ObjectLevelLockingPolicy< ::boost::lock_guard< ::boost::recursive_mutex > > LockWrite
 
static bool remove(const std::string &path)
Removes a file or directory from a given path in UTF-8.
 
static bool isRegularFile(const std::string &path)
Checks if a given path in UTF-8 is a regular file.
 
Proxy configuration file for TerraView (see terraview_config.h).