diff options
author | José Alburquerque <jaalburqu@svn.gnome.org> | 2011-10-12 08:25:24 -0400 |
---|---|---|
committer | José Alburquerque <jaalburqu@svn.gnome.org> | 2011-10-12 08:27:28 -0400 |
commit | 16c801c3b803c0963e57af58e13a3073e1537916 (patch) | |
tree | dd796a34c7aa6b4391d5a5cdafb21afba8df9a4d | |
parent | bde7c569a73494cbf83a315ff028a1931de381aa (diff) | |
download | glibmm-16c801c3b803c0963e57af58e13a3073e1537916.tar.gz |
VariantContainerBase: Add create_maybe().
* glib/src/variant.{ccg,hg}: Add a create_maybe() method because it
was discussed on the mailing list. Clearly the variant classes are
not intended for general use. However, this method is added just
so that the API is more complete.
-rw-r--r-- | ChangeLog | 9 | ||||
-rw-r--r-- | glib/src/variant.ccg | 16 | ||||
-rw-r--r-- | glib/src/variant.hg | 4 |
3 files changed, 29 insertions, 0 deletions
@@ -1,3 +1,12 @@ +2011-10-12 José Alburquerque <jaalburqu@svn.gnome.org> + + VariantContainerBase: Add create_maybe(). + + * glib/src/variant.{ccg,hg}: Add a create_maybe() method because it + was discussed on the mailing list. Clearly the variant classes are + not intended for general use. However, this method is added just + so that the API is more complete. + 2011-10-11 José Alburquerque <jaalburqu@svn.gnome.org> DataInputStream: Add read_line_utf8() and read_line_finish_utf8(). diff --git a/glib/src/variant.ccg b/glib/src/variant.ccg index c54b6780..c002c14d 100644 --- a/glib/src/variant.ccg +++ b/glib/src/variant.ccg @@ -112,6 +112,22 @@ VariantContainerBase::create_tuple(const VariantBase& child) return create_tuple(vec); } +//static +VariantContainerBase +VariantContainerBase::create_maybe(const VariantType& child_type, + const VariantBase& child) +{ + GVariant* g_variant = g_variant_new_maybe(child_type.gobj(), + const_cast<GVariant*>(child.gobj())); + + VariantContainerBase result = VariantContainerBase(g_variant); + + // Remove the floating reference (since it is newly created). + g_variant_ref_sink(result.gobj()); + + return result; +} + void VariantContainerBase::get_child(VariantBase& child, gsize index) const { if(index >= g_variant_n_children(gobject_)) diff --git a/glib/src/variant.hg b/glib/src/variant.hg index cfd187d6..87143bdf 100644 --- a/glib/src/variant.hg +++ b/glib/src/variant.hg @@ -283,6 +283,10 @@ public: */ static VariantContainerBase create_tuple(const VariantBase& child); + _WRAP_METHOD_DOCS_ONLY(g_variant_new_maybe) + static VariantContainerBase create_maybe(const VariantType& child_type, + const VariantBase& child = VariantBase()); + _WRAP_METHOD(gsize get_n_children() const, g_variant_n_children) /** Reads a child item out of this instance. This method is valid for |