te::common::Singleton< T > Class Template Reference

Template support for singleton pattern. More...

#include <Singleton.h>

Inheritance diagram for te::common::Singleton< T >:
te::common::SystemApplicationSettings te::edit::Renderer te::fe::serialize::Expression te::map::ChartRendererManager te::qt::widgets::SymbolLibraryManager te::se::serialize::Symbolizer

Static Public Member Functions

static T & getInstance ()
 It returns a reference to the singleton instance. More...
 

Protected Member Functions

 Singleton ()
 The singleton constructor is protected. More...
 
 ~Singleton ()
 This will avoid clients trying to release pointers to base class. More...
 

Detailed Description

template<class T>
class te::common::Singleton< T >

Template support for singleton pattern.

In TerraLib, classes that manage resources like DataSourceManager and ProjectManager are singletons. The basic interface of a singleton is defined by this singleton class. If you want to get access to the singleton instance you can write a code like:

DataSourceManager& dsm = DataSourceManager::getInstance();

or

std::vector<DataSource*> datasources = DataSourceManager::getInstance().getDataSourceList();

If you want to use this template class in order to create your singleton class, the type T must satisfy the following requirements:

  • It must have an empty constructor;

You can create a singleton class as follow:

class MySingletonClass : public te::common::Singleton<MySingletonClass>
{
friend class te::common::Singleton<MySingletonClass>;
public:
// Singleton methods (just as an example).
int getId()
{
return id;
}
...
protected:
// Empty constructor
MySingletonClass()
{
...
}
private:
// My private data
int id;
...
};

Definition at line 100 of file Singleton.h.

Constructor & Destructor Documentation

template<class T >
te::common::Singleton< T >::Singleton ( )
inlineprotected

The singleton constructor is protected.

Definition at line 127 of file Singleton.h.

template<class T >
te::common::Singleton< T >::~Singleton ( )
inlineprotected

This will avoid clients trying to release pointers to base class.

Definition at line 131 of file Singleton.h.

Member Function Documentation

template<class T >
T & te::common::Singleton< T >::getInstance ( )
inlinestatic

It returns a reference to the singleton instance.

Returns
A reference to the singleton instance.

Definition at line 120 of file Singleton.h.


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