glibmm: Glib::Variant< VariantBase > Class Template Reference

Specialization of Variant containing a VariantBase. More...

#include <glibmm/variant.h>

Inheritance diagram for Glib::Variant< VariantBase >:

List of all members.

Public Types

typedef GVariant* CType
typedef VariantBase CppType
typedef Variant< VariantBaseCppContainerType
- Public Types inherited from Glib::VariantContainerBase

Public Member Functions

 Variant ()
 Default constructor.

 Variant (GVariant* castitem, bool take_a_reference=false)
 GVariant constructor.

void get (VariantBase& variant) const
VariantBase get () const
 Unboxes value.

- Public Member Functions inherited from Glib::VariantContainerBase
 VariantContainerBase ()
 Default constructor.

 VariantContainerBase (GVariant* castitem, bool take_a_reference=false)
 GVariant constructor.

gsize get_n_children () const
 Determines the number of children in a container Variant instance.

void get_child (VariantBase& child, gsize index=0) const
 Reads a child item out of this instance.

VariantBase get_child (gsize index=0)
 Reads a child item out of a container Variant instance.

bool get_maybe (VariantBase& maybe) const
 If this is a maybe-typed instance, extract its value.

- Public Member Functions inherited from Glib::VariantBase
 VariantBase ()
 VariantBase (GVariant* castitem, bool make_a_copy=false)
 VariantBase (const VariantBase& src)
VariantBaseoperator= (const VariantBase& src)
 ~VariantBase ()
GVariant* gobj ()
const GVariant* gobj () const
GVariant* gobj_copy () const
 Provides access to the underlying C instance. The caller is responsible for freeing it. Use when directly setting fields in structs.

void init (const GVariant* cobject, bool take_a_reference=false)
 Replace the underlying GVariant.

VariantType get_type () const
 Determines the type of value.

std::string get_type_string () const
 Returns the type string of value.

bool is_floating () const
 Checks whether value has a floating reference count.

bool is_of_type (const VariantType&type) const
 Checks if a value has a type matching the provided type.

bool is_container () const
 Checks if value is a container.

GVariantClass classify () const
 Classifies value according to its top-level type.

gsize get_size () const
 Determines the number of bytes that would be required to store value with g_variant_store().

gconstpointer get_data ()
 Returns a pointer to the serialised form of a Variant instance.

void store (gpointer data) const
 Stores the serialised form of value at data.

Glib::ustring print (bool type_annotate=false) const
 Pretty-prints value in the format understood by g_variant_parse().

guint hash () const
 Generates a hash value for a Variant instance.

bool equal (const VariantBase& other) const
 Checks if one and two have the same type and value.

void get_normal_form (VariantBase& result) const
 Gets a VariantBase instance that has the same value as this variant and is trusted to be in normal form.

bool is_normal_form () const
 Checks if value is in normal form.

void byteswap (VariantBase& result) const
 Performs a byteswapping operation on the contents of this variant.

Static Public Member Functions

static const VariantTypevariant_type ()
 Gets the VariantType.

static Variant< VariantBasecreate (const VariantBase& data)
 Creates a new Variant<VariantBase>.

- Static Public Member Functions inherited from Glib::VariantContainerBase
static VariantContainerBase create_tuple (const std::vector< VariantBase >& children)
 Create a tuple variant from a vector of its variant children.

static VariantContainerBase create_tuple (const VariantBase& child)
 Create a tuple variant with a single variant child.

static VariantContainerBase create_maybe (const VariantType& child_type, const VariantBase& child=VariantBase())
 Depending on if child is 0, either wraps child inside of a maybe container or creates a Nothing instance for the given type.

- Static Public Member Functions inherited from Glib::VariantBase
template<class V_CastTo >
static V_CastTo cast_dynamic (const VariantBase& v) throw (std::bad_cast)
 Cast to a specific variant type.


Detailed Description

template<>

class Glib::Variant< VariantBase >

Specialization of Variant containing a VariantBase.

Since glibmm 2.28:

Member Typedef Documentation

typedef GVariant* Glib::Variant< VariantBase >::CType

Reimplemented from Glib::VariantContainerBase.


Constructor & Destructor Documentation

Default constructor.

Glib::Variant< VariantBase >::Variant ( GVariant< VariantBase >*  castitem,
bool  take_a_reference = false 
)
explicit

GVariant constructor.

Parameters:
castitemThe GVariant to wrap.
take_a_referenceWhether to take an extra reference of the GVariant or not (not taking one could destroy the GVariant with the wrapper).

Member Function Documentation

static Variant<VariantBase> Glib::Variant< VariantBase >::create ( const VariantBase data)
static

Creates a new Variant<VariantBase>.

Parameters:
dataThe value of the new Variant.
Returns:
The new Variant.
Since glibmm 2.28:
void Glib::Variant< VariantBase >::get ( VariantBase variant) const

Unboxes value.

The result is the Variant instance that was contained in value.

Since glibmm 2.24:
Returns:
The item contained in the variant.
static const VariantType& Glib::Variant< VariantBase >::variant_type ( )
static

Gets the VariantType.

Returns:
The VariantType.
Since glibmm 2.28: