glibmm
2.32.0
|
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) |
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.
typedef void(* Glib::Threads::Private< T >::DestructorFunc)(void*) |
Glib::Threads::Private< T >::Private | ( | DestructorFunc | destructor_func = &Private< T >::delete_ptr | ) | [inline, explicit] |
Constructor.
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. |
static void Glib::Threads::Private< T >::delete_ptr | ( | void * | data | ) | [static] |
Deletes static_cast<T*>(data)
T* Glib::Threads::Private< T >::get | ( | ) | [inline] |
Gets the pointer stored in the calling thread.
GPrivate* Glib::Threads::Private< T >::gobj | ( | ) | [inline] |
void Glib::Threads::Private< T >::replace | ( | T * | data | ) | [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.
void Glib::Threads::Private< T >::set | ( | T * | data | ) | [inline] |
Sets the pointer in the calling thread without calling destructor_func()
.