39 #ifndef CGU_GVAR_HANDLE_H
40 #define CGU_GVAR_HANDLE_H
47 #if defined(DOXYGEN_PARSING) || GLIB_CHECK_VERSION(2,24,0)
164 void unreference() noexcept {
165 if (obj_p) g_variant_unref(obj_p);
168 void reference() noexcept {
169 if (obj_p) g_variant_ref(obj_p);
188 if (ptr && g_variant_is_floating(ptr)) {
189 g_variant_ref_sink(ptr);
205 void reset(GVariant* ptr = 0) noexcept {
212 if (ptr && g_variant_is_floating(ptr)) {
213 g_variant_ref_sink(ptr);
249 if (obj_p != gvar.obj_p) {
290 GVariant*
get()
const noexcept {
return obj_p;}
297 operator GVariant*()
const noexcept {
return obj_p;}
307 #if defined(CGU_USE_SMART_PTR_COMPARISON) || defined(DOXYGEN_PARSING)
320 return (h1.get() == h2.get());
350 return std::less<GVariant*>()(h1.
get(), h2.
get());
353 #endif // CGU_USE_SMART_PTR_COMPARISON
360 #if defined(CGU_USE_SMART_PTR_COMPARISON) && !defined(DOXYGEN_PARSING)
365 struct hash<Cgu::GvarHandle> {
366 typedef std::size_t result_type;
368 result_type operator()(
const argument_type& h)
const {
376 #endif // CGU_USE_SMART_PTR_COMPARISON
379 #warning GvarHandle not available: glib >= 2.24.0 is required