glibmm 2.82.0
Glib::VariantStringBase Class Reference

Base class from which string variant classes derive. More...

#include <glibmm/variant.h>

Inheritance diagram for Glib::VariantStringBase:

Public Types

using CType = GVariant*
 
using CppType = VariantStringBase
 

Public Member Functions

 VariantStringBase ()
 Default constructor.
 
 VariantStringBase (GVariant * castitem, bool take_a_reference=false)
 GVariant constructor.
 
- Public Member Functions inherited from Glib::VariantBase
 VariantBase ()
 Constructs an invalid object.
 
 VariantBase (GVariant * castitem, bool make_a_copy=false)
 
 VariantBase (const VariantBase & src)
 
VariantBaseoperator= (const VariantBase & src)
 
 VariantBase (VariantBase && other) noexcept
 
VariantBaseoperator= (VariantBase && other) noexcept
 
 ~VariantBase () noexcept
 
void swap (VariantBase & other) noexcept
 
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.
 
 operator bool () const
 Test whether the Variant has an underlying instance.
 
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 () const
 Returns a pointer to the serialized form of a Variant instance.
 
Glib::RefPtr< const Glib::Bytesget_data_as_bytes () const
 Returns a pointer to the serialized form of a Variant instance.
 
void store (gpointer data) const
 Stores the serialized 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 *this and other have the same type and value.
 
bool operator== (const VariantBase & other) const
 Checks if *this and other have the same type and value.
 
bool operator!= (const VariantBase & other) const
 Checks if *this and other have the same type and value.
 
bool operator< (const VariantBase & other) const =delete
 Ordering relational operators.
 
bool operator<= (const VariantBase & other) const =delete
 See operator<().
 
bool operator> (const VariantBase & other) const =delete
 See operator<().
 
bool operator>= (const VariantBase & other) const =delete
 See operator<().
 
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.
 
bool check_format_string (const std::string & format_string, bool copy_only=false) const
 Checks if calling g_variant_get() with format_string on value would be valid from a type-compatibility standpoint.
 
template<typename ValueType >
ValueType get_dynamic () const
 Cast to a specific variant type and get the value.
 

Static Public Member Functions

static void create_object_path (VariantStringBase & output, const std::string & object_path)
 Creates a D-Bus object path variant with the contents of object_path.
 
static bool is_object_path (const std::string &string)
 Determines if a given string is a valid D-Bus object path.
 
static void create_signature (VariantStringBase & output, const std::string & signature)
 Creates a D-Bus type signature variant with the contents of signature.
 
static bool is_signature (const std::string &string)
 Determines if a given string is a valid D-Bus type signature.
 
- Static Public Member Functions inherited from Glib::VariantBase
template<class V_CastTo >
static V_CastTo cast_dynamic (const VariantBase & v)
 Cast to a specific variant type.
 
template<>
VariantContainerBase cast_dynamic (const VariantBase & v)
 

Additional Inherited Members

- Protected Attributes inherited from Glib::VariantBase
GVariant * gobject_
 

Detailed Description

Base class from which string variant classes derive.

Since glibmm 2.28

Member Typedef Documentation

◆ CppType

◆ CType

using Glib::VariantStringBase::CType = GVariant*

Constructor & Destructor Documentation

◆ VariantStringBase() [1/2]

Glib::VariantStringBase::VariantStringBase ( )

Default constructor.

◆ VariantStringBase() [2/2]

Glib::VariantStringBase::VariantStringBase ( GVariant * 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

◆ create_object_path()

static void Glib::VariantStringBase::create_object_path ( VariantStringBase & output,
const std::string & object_path )
static

Creates a D-Bus object path variant with the contents of object_path.

object_path must be a valid D-Bus object path. Use is_object_path() if unsure.

Parameters
[out]outputA location in which to store the new object path variant instance.
object_pathAn object path string.
Since glibmm 2.28

◆ create_signature()

static void Glib::VariantStringBase::create_signature ( VariantStringBase & output,
const std::string & signature )
static

Creates a D-Bus type signature variant with the contents of signature.

signature must be a valid D-Bus type signature. Use is_signature() if unsure.

Parameters
[out]outputA location in which to store the new signature variant instance.
signatureA signature string.
Since glibmm 2.28

◆ is_object_path()

static bool Glib::VariantStringBase::is_object_path ( const std::string & string)
static

Determines if a given string is a valid D-Bus object path.

You should ensure that a string is a valid D-Bus object path before passing it to g_variant_new_object_path().

A valid object path starts with / followed by zero or more sequences of characters separated by / characters. Each sequence must contain only the characters [A-Z][a-z][0-9]_. No sequence (including the one following the final / character) may be empty.

Since glibmm 2.24
Parameters
stringA normal C nul-terminated string.
Returns
true if string is a D-Bus object path.

◆ is_signature()

static bool Glib::VariantStringBase::is_signature ( const std::string & string)
static

Determines if a given string is a valid D-Bus type signature.

You should ensure that a string is a valid D-Bus type signature before passing it to g_variant_new_signature().

D-Bus type signatures consist of zero or more definite VariantType strings in sequence.

Since glibmm 2.24
Parameters
stringA normal C nul-terminated string.
Returns
true if string is a D-Bus type signature.