SourcePro® C++ API Reference Guide

Product Documentation:
   SourcePro C++
Documentation Home
List of all members | Static Public Member Functions | Protected Member Functions | Static Protected Member Functions
RWTSingleton< T > Class Template Reference

Ensures that a class has only one instance and provides a global point of access to it. More...

#include <rw/pointer/RWTSingleton.h>

Static Public Member Functions

static RWTCountingPointer< T, RWAtomicCounter > & instance ()
 

Protected Member Functions

 RWTSingleton ()
 

Static Protected Member Functions

static RWTCountingPointer< T, RWAtomicCounter > & get ()
 

Detailed Description

template<class T>
class RWTSingleton< T >

RWTSingleton ensures that a class has only one instance, and provides a global point of access to it. This is an Object Creational pattern. For more information, see Design Patterns by Gamma, Helm, Johnson, and Vlissides.

Example
#include <rw/pointer/RWTSingleton.h>
#include <iostream>
class Foo
{
public:
void function() {
std::cout << "I'm a foo example" << std::endl;
}
};
int main(void)
{
singleFooPtr->function();
return 0;
}

Constructor & Destructor Documentation

template<class T>
RWTSingleton< T >::RWTSingleton ( )
inlineprotected

The constructor is protected to ensure that only one instance can ever get created.

Member Function Documentation

template<class T>
static RWTCountingPointer<T, RWAtomicCounter>& RWTSingleton< T >::get ( void  )
inlinestaticprotected

Protected accessor function that gives access to the class state. Inherited classes use this function.

template<class T>
static RWTCountingPointer<T, RWAtomicCounter>& RWTSingleton< T >::instance ( void  )
inlinestatic

Creates and returns the instance of T, if it has not already been created.

Copyright © 2016 Rogue Wave Software, Inc. All Rights Reserved.
Rogue Wave and SourcePro are registered trademarks of Rogue Wave Software, Inc. in the United States and other countries. All other trademarks are the property of their respective owners.
Provide feedback to Rogue Wave about its documentation.