glibmm: Glib::Threads::Private< T > Class Template Reference
Thread-local data pointer. More...
#include <glibmm/threads.h>
Public Types | |
| typedef void(* | DestructorFunc )(void*) |
Public Member Functions | |
| Private (DestructorFunc destructor_func=&Private< T >::delete_ptr) | |
| Constructor. | |
| T* | get () |
| Gets the pointer stored in the calling thread. | |
| void | set (T* data) |
Sets the pointer in the calling thread without calling destructor_func(). | |
| void | replace (T* data) |
Sets the pointer in the calling thread and calls destructor_func(). | |
| GPrivate* | gobj () |
Static Public Member Functions | |
| static void | delete_ptr (void* data) |
| Deletes static_cast<T*>(data) | |
Detailed Description
template<class T>
class Glib::Threads::Private< T >
Thread-local data pointer.
It is recommended that all instances of this class are statically allocated. The first time an instance is used (get(), set() or replace() is called) gtk+ allocates a scarce OS resource that cannot be deallocated.
Member Typedef Documentation
template <class T >
| typedef void(* Glib::Threads::Private< T >::DestructorFunc)(void*) |
Constructor & Destructor Documentation
template <class T >
|
inlineexplicit |
Constructor.
- Parameters
-
destructor_func Function pointer, or 0. If destructor_func is not 0 and the stored data pointer is not 0, this function is called when replace() is called and when the thread exits.
Member Function Documentation
template <class T >
|
static |
Deletes static_cast<T*>(data)
template <class T >
|
inline |
Gets the pointer stored in the calling thread.
- Returns
- If no value has yet been set in this thread, 0 is returned.
template <class T >
|
inline |
template <class T >
|
inline |
Sets the pointer in the calling thread and calls destructor_func().
If a function pointer (and not 0) was specified in the constructor, and the stored data pointer before the call to replace() is not 0, then destructor_func() is called with this old pointer value.
template <class T >
|
inline |
Sets the pointer in the calling thread without calling destructor_func().
