All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
te::qt::af::ApplicationPlugins Class Reference

A singleton for managing the application plugins. More...

#include <ApplicationPlugins.h>

Inheritance diagram for te::qt::af::ApplicationPlugins:
te::common::ApplicationSettings te::common::Singleton< ApplicationPlugins > te::common::ObjectLevelLockable< ApplicationSettings,::boost::recursive_mutex,::boost::lock_guard< ::boost::recursive_mutex >,::boost::lock_guard< ::boost::recursive_mutex > >

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 Slots

void addPlugins (const std::map< std::string, std::string > &plgs)
 
void removePlugins (const std::vector< std::string > &plgs)
 

Public Member Functions

void addPlugin (const std::string &pluginName, const std::string &pluginFileName)
 
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...
 
const std::string & getFileName () const
 
const std::map< std::string,
std::string > & 
getPluginsFiles () const
 
std::string getValue (const std::string &key)
 It returns the value for a given key or empty. More...
 
void load ()
 
void load (const std::string &fileName)
 
void removePlugin (const std::string &pluginName)
 
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...
 

Static Public Member Functions

static ApplicationPluginsgetInstance ()
 It returns a reference to the singleton instance. More...
 

Protected Member Functions

 ApplicationPlugins ()
 It initializes the singleton. More...
 
 ~ApplicationPlugins ()
 Destructor. 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...
 
std::map< std::string,
std::string > 
m_plugins_files
 
boost::property_tree::ptree m_settings
 This will keep our settings in memory. More...
 

Friends

class te::common::Singleton< ApplicationPlugins >
 

Detailed Description

A singleton for managing the application plugins.

This singleton can be used to keep the list of plugins managed by the application.

It will look for a plugin configuration file as follows:

  • first, searchs for the plugin configuration file name in SystemApplicationSettings
  • then it check for this file in the current application dir
  • if not foud it looks in the system application dir
  • if not found looks in the user folder
  • and finally it uses a location defined by an environment variable TERRALIB_DIR_ENVVAR under TERRALIB_CONFIG_DIR

Definition at line 61 of file ApplicationPlugins.h.

Member Typedef Documentation

typedef ObjectLevelLockingPolicy<::boost::lock_guard< ::boost::recursive_mutex > > te::common::ObjectLevelLockable< ApplicationSettings , ::boost::recursive_mutex , ::boost::lock_guard< ::boost::recursive_mutex > , ::boost::lock_guard< ::boost::recursive_mutex > >::LockRead
inherited

Definition at line 205 of file ThreadingPolicies.h.

typedef ObjectLevelLockingPolicy<::boost::lock_guard< ::boost::recursive_mutex > > te::common::ObjectLevelLockable< ApplicationSettings , ::boost::recursive_mutex , ::boost::lock_guard< ::boost::recursive_mutex > , ::boost::lock_guard< ::boost::recursive_mutex > >::LockWrite
inherited

Definition at line 206 of file ThreadingPolicies.h.

typedef volatile ApplicationSettings te::common::ObjectLevelLockable< ApplicationSettings , ::boost::recursive_mutex , ::boost::lock_guard< ::boost::recursive_mutex > , ::boost::lock_guard< ::boost::recursive_mutex > >::VolatileType
inherited

Definition at line 204 of file ThreadingPolicies.h.

Constructor & Destructor Documentation

te::qt::af::ApplicationPlugins::ApplicationPlugins ( )
protected

It initializes the singleton.

Definition at line 159 of file ApplicationPlugins.cpp.

te::qt::af::ApplicationPlugins::~ApplicationPlugins ( )
protected

Destructor.

Definition at line 164 of file ApplicationPlugins.cpp.

Member Function Documentation

void te::qt::af::ApplicationPlugins::addPlugin ( const std::string &  pluginName,
const std::string &  pluginFileName 
)

Definition at line 124 of file ApplicationPlugins.cpp.

void te::qt::af::ApplicationPlugins::addPlugins ( const std::map< std::string, std::string > &  plgs)
slot

Definition at line 143 of file ApplicationPlugins.cpp.

void te::common::ApplicationSettings::changed ( )
inlineinherited

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.

Note
Thread-safe depending on ThreadingPolicy.

Definition at line 236 of file ApplicationSettings.h.

References te::common::ApplicationSettings::m_dirty.

Referenced by te::qt::af::UpdateUserSettings().

const boost::property_tree::ptree & te::common::ApplicationSettings::getAllSettings ( ) const
inlineinherited

It return a reading reference to the internal settings.

Returns
A read reference to the internal settings.
Note
Take care when keeping a reference to this property in a multi-thread environment.

Definition at line 243 of file ApplicationSettings.h.

References te::common::ApplicationSettings::m_settings.

Referenced by te::qt::af::ApplicationController::initializeProjectMenus(), te::qt::af::UserPlugins::load(), and te::qt::af::UpdateUserSettings().

boost::property_tree::ptree & te::common::ApplicationSettings::getAllSettings ( )
inlineinherited

It return a reference to the internal settings.

Returns
A reference to the internal settings.
Note
Depending on the ThreadingPolicy you can synchronize the read/write from/to the settings. The client of this method will be responsible for informing changes. Release any lock before calling the update method or any other thread-safe method if you are not using a recursive mutex in the threading policy.

Definition at line 248 of file ApplicationSettings.h.

References te::common::ApplicationSettings::m_settings.

const std::string & te::qt::af::ApplicationPlugins::getFileName ( ) const

Definition at line 138 of file ApplicationPlugins.cpp.

static ApplicationPlugins & te::common::Singleton< ApplicationPlugins >::getInstance ( )
staticinherited

It returns a reference to the singleton instance.

Returns
A reference to the singleton instance.

Referenced by te::qt::af::ApplicationController::initializePlugins(), and te::qt::af::UserPlugins::load().

const std::map< std::string, std::string > & te::qt::af::ApplicationPlugins::getPluginsFiles ( ) const

Definition at line 119 of file ApplicationPlugins.cpp.

std::string te::common::ApplicationSettings::getValue ( const std::string &  key)
inlineinherited

It returns the value for a given key or empty.

Parameters
keyThe key used to identify the searched value.
Returns
The value for a given key or empty.
Note
Thread-safe depending on ThreadingPolicy.

Definition at line 189 of file ApplicationSettings.h.

References te::common::ApplicationSettings::m_settings.

Referenced by te::qt::af::ApplicationController::initialize(), and te::qt::af::SaveDataSourcesFile().

void te::qt::af::ApplicationPlugins::load ( const std::string &  fileName)

Definition at line 114 of file ApplicationPlugins.cpp.

void te::qt::af::ApplicationPlugins::removePlugin ( const std::string &  pluginName)

Definition at line 130 of file ApplicationPlugins.cpp.

void te::qt::af::ApplicationPlugins::removePlugins ( const std::vector< std::string > &  plgs)
slot

Definition at line 151 of file ApplicationPlugins.cpp.

void te::common::ApplicationSettings::setValue ( const std::string &  key,
const std::string &  value 
)
inlineinherited

It stores the value according to the key.

Parameters
keyThe 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).
valueThe value to be stored, any valid string.
Note
If you want to store a binary value you can encode it as an hex-string.
Thread-safe depending on ThreadingPolicy.

Definition at line 181 of file ApplicationSettings.h.

References te::common::ApplicationSettings::m_dirty, and te::common::ApplicationSettings::m_settings.

void te::common::ApplicationSettings::update ( )
inlineinherited

It updates the application settings.

Note
This function is called automatically from ApplicationSettings's destructor.
If application settings is empty it discards the config file.
Thread-safe depending on ThreadingPolicy.

Definition at line 215 of file ApplicationSettings.h.

References te::common::ApplicationSettings::m_dirty, te::common::ApplicationSettings::m_file, and te::common::ApplicationSettings::m_settings.

Referenced by te::common::ApplicationSettings::~ApplicationSettings().

Friends And Related Function Documentation

friend class te::common::Singleton< ApplicationPlugins >
friend

Definition at line 68 of file ApplicationPlugins.h.

Member Data Documentation

bool te::common::ApplicationSettings::m_dirty
protectedinherited

A dirty bit to indicate wheter the clients have made changes in the settings since the last update.

Definition at line 167 of file ApplicationSettings.h.

Referenced by te::common::ApplicationSettings::changed(), te::common::ApplicationSettings::load(), te::common::ApplicationSettings::setValue(), and te::common::ApplicationSettings::update().

std::string te::common::ApplicationSettings::m_file
protectedinherited

The settings file name.

Definition at line 166 of file ApplicationSettings.h.

Referenced by te::common::ApplicationSettings::load(), and te::common::ApplicationSettings::update().

std::map<std::string, std::string> te::qt::af::ApplicationPlugins::m_plugins_files
protected

Definition at line 98 of file ApplicationPlugins.h.

boost::property_tree::ptree te::common::ApplicationSettings::m_settings
protectedinherited

The documentation for this class was generated from the following files: