# Glib::VariantStringBase Class Reference
Variant Data Types

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

`#include <glibmm/variant.h>`

Inheritance diagram for Glib::VariantStringBase:
[legend]

List of all members.

## Public Types

typedef GVariant* | CType
typedef VariantStringBase | CppType

## Public Member Functions

| VariantStringBase ()
| Default constructor.
| VariantStringBase (GVariant* castitem, bool take_a_reference=false)
| GVariant constructor.

## 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 string.
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& object_path)
| Creates a D-Bus type signature variant with the contents of string.
static bool | is_signature (const std::string&string)
| Determines if a given string is a valid D-Bus type signature.

## Detailed Description

Base class from which string variant classes derive.

Since glibmm 2.28:

## Member Typedef Documentation

typedef VariantStringBase Glib::VariantStringBase::CppType

Reimplemented in Glib::Variant< Glib::ustring >, and Glib::Variant< std::string >.

typedef GVariant* Glib::VariantStringBase::CType

Reimplemented in Glib::Variant< Glib::ustring >, and Glib::Variant< std::string >.

## Constructor & Destructor Documentation

Glib::VariantStringBase::VariantStringBase | ( |  | ) |

Default constructor.

Glib::VariantStringBase::VariantStringBase | ( | GVariant * | castitem,
|  | bool | take_a_reference = `false`
| ) |  | `[explicit]`

GVariant constructor.

Parameters:

  castitem | The GVariant to wrap.
  take_a_reference | Whether to take an extra reference of the GVariant or not (not taking one could destroy the GVariant with the wrapper).

## Member Function Documentation

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 string.

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

Parameters:

  output | A location in which to store the new object path variant instance.
  object_path | A normal nul-terminated string.

Since glibmm 2.28:

static void Glib::VariantStringBase::create_signature | ( | VariantStringBase& | output,
|  | const std::string & | object_path
| ) |  | `[static]`

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

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

Parameters:

  output | A location in which to store the new signature variant instance.
  signature | A normal nul-terminated string.

Since glibmm 2.28:

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:

  string | A normal C nul-terminated string.

Returns:
  `true` if string is a D-Bus object path.

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:

  string | A normal C nul-terminated string.

Returns:
  `true` if string is a D-Bus type signature.