glibmm: Glib::VariantDict Class Reference

glibmm 2.51.7

Public Member Functions | Static Public Member Functions | Protected Member Functions | Related Functions | List of all members
Glib::VariantDict Class Referencefinal

VariantDict is a mutable interface to Variant dictionaries. More...

`#include <glibmm/variantdict.h>`

## Public Member Functions
void | reference () const
| Increment the reference count for this object. More...
void | unreference () const
| Decrement the reference count for this object. More...
GVariantDict* | gobj ()
| Provides access to the underlying C instance. More...
const GVariantDict* | gobj () const
| Provides access to the underlying C instance. More...
GVariantDict* | gobj_copy () const
| Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs. More...
| VariantDict ()=delete
| VariantDict (const VariantDict&)=delete
VariantDict& | operator= (const VariantDict&)=delete
bool | lookup_value_variant (const Glib::ustring& key, const VariantType& expected_type, VariantBase& value) const
| Looks up a value in the VariantDict. More...
template<typename T_Value >
bool | lookup_value (const Glib::ustring& key, T_Value& value) const
| Looks up a value in the VariantDict. More...
bool | contains (const Glib::ustring& key) const
| Checks if key exists in dict. More...
void | insert_value_variant (const Glib::ustring& key, const VariantBase& value)
| Inserts (or replaces) a key in a VariantDict. More...
template<typename T_Value >
void | insert_value (const Glib::ustring& key, const T_Value& value)
| Inserts (or replaces) a key in a VariantDict. More...
bool | remove (const Glib::ustring& key)
| Removes a key and its associated value from a VariantDict. More...
void | clear ()
| Releases all memory associated with a VariantDict without freeing the VariantDict structure itself. More...

## Static Public Member Functions
static Glib::RefPtr< VariantDict > | create (const VariantBase& from_asv)
| Allocates and initialises a new VariantDict. More...
static Glib::RefPtr< VariantDict > | create ()
| A create() convenience overload. More...

## Protected Member Functions
void | operator delete (void*, std::size_t)

## Related Functions
(Note that these are not member functions.)
Glib::RefPtr< Glib::VariantDict > | wrap (GVariantDict* object, bool take_copy=false)
| A Glib::wrap() method for this object. More...

## Detailed Description

VariantDict is a mutable interface to Variant dictionaries.

It can be used for doing a sequence of dictionary lookups in an efficient way on an existing Variant dictionary or it can be used to construct new dictionaries with a hashtable-like interface. It can also be used for taking existing dictionaries and modifying them in order to create new ones.

newin{2,40}

## Constructor & Destructor Documentation

## ◆ VariantDict() [1/2]

Glib::VariantDict::VariantDict | ( |  | ) |
| delete

## ◆ VariantDict() [2/2]

Glib::VariantDict::VariantDict | ( | const VariantDict& |  | ) |
| delete

## Member Function Documentation

## ◆ clear()

void Glib::VariantDict::clear | ( |  | ) |

Releases all memory associated with a VariantDict without freeing the VariantDict structure itself.

It typically only makes sense to do this on a stack-allocated VariantDict if you want to abort building the value part-way through. This function need not be called if you call g_variant_dict_end() and it also doesn't need to be called on dicts allocated with g_variant_dict_new (see g_variant_dict_unref() for that).

It is valid to call this function on either an initialised VariantDict or one that was previously cleared by an earlier call to g_variant_dict_clear() but it is not valid to call this function on uninitialised memory.

Since glibmm 2.40:

## ◆ contains()

bool Glib::VariantDict::contains | ( | const Glib::ustring& | key | ) | const

Checks if key exists in dict.

Since glibmm 2.40:

Parameters

  key | The key to lookup in the dictionary.

Returns
  `true` if key is in dict.

## ◆ create() [1/2]

static Glib::RefPtr<VariantDict> Glib::VariantDict::create | ( | const VariantBase& | from_asv | ) |
| static

Allocates and initialises a new VariantDict.

You should call g_variant_dict_unref() on the return value when it is no longer needed. The memory will not be automatically freed by any other call.

In some cases it may be easier to place a VariantDict directly on the stack of the calling function and initialise it with g_variant_dict_init(). This is particularly useful when you are using VariantDict to construct a Variant.

Since glibmm 2.40:

Parameters

  from_asv | The Variant with which to initialise the dictionary.

Returns
  A VariantDict.

## ◆ create() [2/2]

static Glib::RefPtr<VariantDict> Glib::VariantDict::create | ( |  | ) |
| static

A create() convenience overload.

## ◆ gobj() [1/2]

GVariantDict* Glib::VariantDict::gobj | ( |  | ) |

Provides access to the underlying C instance.

## ◆ gobj() [2/2]

const GVariantDict* Glib::VariantDict::gobj | ( |  | ) | const

Provides access to the underlying C instance.

## ◆ gobj_copy()

GVariantDict* Glib::VariantDict::gobj_copy | ( |  | ) | const

Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs.

## ◆ insert_value()

template <typename T_Value >

void Glib::VariantDict::insert_value | ( | const Glib::ustring& | key,
|  | const T_Value & | value
| ) |  |

Inserts (or replaces) a key in a VariantDict.

Parameters

  key | The key to insert a value for.
  value | The value to insert.

## ◆ insert_value_variant()

void Glib::VariantDict::insert_value_variant | ( | const Glib::ustring& | key,
|  | const VariantBase& | value
| ) |  |

Inserts (or replaces) a key in a VariantDict.

value is consumed if it is floating.

Since glibmm 2.40:

Parameters

  key | The key to insert a value for.
  value | The value to insert.

## ◆ lookup_value()

template <typename T_Value >

bool Glib::VariantDict::lookup_value | ( | const Glib::ustring& | key,
|  | T_Value & | value
| ) |  | const

Looks up a value in the VariantDict.

If the key is not found the false is returned.

If the value associated with key has a different type than expected then false is returned.

If the key is found and the value has the correct type, it is returned in the value output variable.

## ◆ lookup_value_variant()

bool Glib::VariantDict::lookup_value_variant | ( | const Glib::ustring& | key,
|  | const VariantType& | expected_type,
|  | VariantBase& | value
| ) |  | const

Looks up a value in the VariantDict.

See also lookup_value().

If the key is not found the false is returned.

The expected_type string specifies what type of value is expected. If the value associated with key has a different type then false is returned.

If the key is found and the value has the correct type, it is returned in the value output variable.

## ◆ operator delete()

void Glib::VariantDict::operator delete | ( | void * | ,
|  | std::size_t |
| ) |  |
| protected

## ◆ operator=()

VariantDict& Glib::VariantDict::operator= | ( | const VariantDict& |  | ) |
| delete

## ◆ reference()

void Glib::VariantDict::reference | ( |  | ) | const

Increment the reference count for this object.

You should never need to do this manually - use the object via a RefPtr instead.

## ◆ remove()

bool Glib::VariantDict::remove | ( | const Glib::ustring& | key | ) |

Removes a key and its associated value from a VariantDict.

Since glibmm 2.40:

Parameters

  key | The key to remove.

Returns
  `true` if the key was found and removed.

## ◆ unreference()

void Glib::VariantDict::unreference | ( |  | ) | const

Decrement the reference count for this object.

You should never need to do this manually - use the object via a RefPtr instead.

## Friends And Related Function Documentation

## ◆ wrap()

Glib::RefPtr< Glib::VariantDict > wrap | ( | GVariantDict * | object,
|  | bool | take_copy = `false`
| ) |  |
| related

A Glib::wrap() method for this object.

Parameters

  object | The C instance.
  take_copy | False if the result should take ownership of the C instance. True if it should take a new copy or ref.

Returns
  A C++ instance that wraps this C instance.