39 #ifndef CGU_GOBJ_HANDLE_H
40 #define CGU_GOBJ_HANDLE_H
46 #include <glib-object.h>
153 if (obj_p) g_object_unref(G_OBJECT(obj_p));
157 if (obj_p) g_object_ref(G_OBJECT(obj_p));
175 if (ptr && g_object_is_floating(G_OBJECT(ptr))) {
176 g_object_ref_sink(G_OBJECT(ptr));
199 if (ptr && g_object_is_floating(G_OBJECT(ptr))) {
200 g_object_ref_sink(G_OBJECT(ptr));
245 if (obj_p != gobj.obj_p) {
286 T*
get()
const {
return obj_p;}
306 operator T*()
const {
return obj_p;}
417 virtual const char*
what()
const throw() {
return "GobjWeakHandleError\n";}
432 if (ptr) g_object_add_weak_pointer(G_OBJECT(ptr),
444 if (obj_p) g_object_remove_weak_pointer(G_OBJECT(obj_p),
447 if (ptr) g_object_add_weak_pointer(G_OBJECT(ptr),
459 if (obj_p) g_object_add_weak_pointer(G_OBJECT(obj_p),
471 if (obj_p) g_object_add_weak_pointer(G_OBJECT(obj_p),
507 operator bool()
const {
return obj_p;}
509 #ifndef DOXYGEN_PARSING
517 bool expired()
const {
return obj_p;}
581 #if defined(CGU_USE_SMART_PTR_COMPARISON) || defined(DOXYGEN_PARSING)
595 return (h1.
get() == h2.
get());
626 return std::less<T*>()(h1.get(), h2.get());
629 #endif // CGU_USE_SMART_PTR_COMPARISON
636 #if defined(CGU_USE_SMART_PTR_COMPARISON) && !defined(DOXYGEN_PARSING)
641 struct hash<Cgu::GobjHandle<T>> {
642 typedef std::size_t result_type;
644 result_type operator()(
const argument_type& h)
const {
652 #endif // CGU_USE_SMART_PTR_COMPARISON