| Top |  |  |  |  | 
Functions
Object Hierarchy
    GBoxed
    ├── GDBusAnnotationInfo
    ├── GDBusArgInfo
    ├── GDBusInterfaceInfo
    ├── GDBusMethodInfo
    ├── GDBusNodeInfo
    ├── GDBusPropertyInfo
    ╰── GDBusSignalInfo
Description
Various data structures and convenience routines to parse and
generate D-Bus introspection XML. Introspection information is
used when registering objects with g_dbus_connection_register_object().
The format of D-Bus introspection XML is specified in the D-Bus specification
Functions
g_dbus_annotation_info_lookup ()
const gchar * g_dbus_annotation_info_lookup (GDBusAnnotationInfo **annotations,const gchar *name);
Looks up the value of an annotation.
The cost of this function is O(n) in number of annotations.
Since 2.26
g_dbus_interface_info_lookup_method ()
GDBusMethodInfo * g_dbus_interface_info_lookup_method (GDBusInterfaceInfo *info,const gchar *name);
Looks up information about a method.
The cost of this function is O(n) in number of methods unless
g_dbus_interface_info_cache_build() has been used on info
.
Since 2.26
g_dbus_interface_info_lookup_signal ()
GDBusSignalInfo * g_dbus_interface_info_lookup_signal (GDBusInterfaceInfo *info,const gchar *name);
Looks up information about a signal.
The cost of this function is O(n) in number of signals unless
g_dbus_interface_info_cache_build() has been used on info
.
Since 2.26
g_dbus_interface_info_lookup_property ()
GDBusPropertyInfo * g_dbus_interface_info_lookup_property (GDBusInterfaceInfo *info,const gchar *name);
Looks up information about a property.
The cost of this function is O(n) in number of properties unless
g_dbus_interface_info_cache_build() has been used on info
.
Returns
 A GDBusPropertyInfo or NULL if not found. Do not free, it is owned by info
. 
[transfer none]
Since 2.26
g_dbus_interface_info_cache_build ()
void
g_dbus_interface_info_cache_build (GDBusInterfaceInfo *info);
Builds a lookup-cache to speed up
g_dbus_interface_info_lookup_method(),
g_dbus_interface_info_lookup_signal() and
g_dbus_interface_info_lookup_property().
If this has already been called with info
, the existing cache is
used and its use count is increased.
Note that info
 cannot be modified until
g_dbus_interface_info_cache_release() is called.
Since 2.30
g_dbus_interface_info_cache_release ()
void
g_dbus_interface_info_cache_release (GDBusInterfaceInfo *info);
Decrements the usage count for the cache for info
 built by
g_dbus_interface_info_cache_build() (if any) and frees the
resources used by the cache if the usage count drops to zero.
Since 2.30
g_dbus_interface_info_generate_xml ()
void g_dbus_interface_info_generate_xml (GDBusInterfaceInfo *info,guint indent,GString *string_builder);
Appends an XML representation of info
 (and its children) to string_builder
.
This function is typically used for generating introspection XML
documents at run-time for handling the
org.freedesktop.DBus.Introspectable.Introspect
method.
Since 2.26
g_dbus_node_info_new_for_xml ()
GDBusNodeInfo * g_dbus_node_info_new_for_xml (const gchar *xml_data,GError **error);
Parses xml_data
 and returns a GDBusNodeInfo representing the data.
The introspection XML must contain exactly one top-level <node> element.
Note that this routine is using a GMarkup-based parser that only accepts a subset of valid XML documents.
Since 2.26
g_dbus_node_info_lookup_interface ()
GDBusInterfaceInfo * g_dbus_node_info_lookup_interface (GDBusNodeInfo *info,const gchar *name);
Looks up information about an interface.
The cost of this function is O(n) in number of interfaces.
Returns
 A GDBusInterfaceInfo or NULL if not found. Do not free, it is owned by info
. 
[transfer none]
Since 2.26
g_dbus_node_info_generate_xml ()
void g_dbus_node_info_generate_xml (GDBusNodeInfo *info,guint indent,GString *string_builder);
Appends an XML representation of info
 (and its children) to string_builder
.
This function is typically used for generating introspection XML documents at run-time for
handling the org.freedesktop.DBus.Introspectable.Introspect  method.
Since 2.26
G_TYPE_DBUS_NODE_INFO
#define G_TYPE_DBUS_NODE_INFO (g_dbus_node_info_get_type ())
The GType for a boxed type holding a GDBusNodeInfo.
Since 2.26
G_TYPE_DBUS_INTERFACE_INFO
#define G_TYPE_DBUS_INTERFACE_INFO (g_dbus_interface_info_get_type ())
The GType for a boxed type holding a GDBusInterfaceInfo.
Since 2.26
G_TYPE_DBUS_METHOD_INFO
#define G_TYPE_DBUS_METHOD_INFO (g_dbus_method_info_get_type ())
The GType for a boxed type holding a GDBusMethodInfo.
Since 2.26
G_TYPE_DBUS_SIGNAL_INFO
#define G_TYPE_DBUS_SIGNAL_INFO (g_dbus_signal_info_get_type ())
The GType for a boxed type holding a GDBusSignalInfo.
Since 2.26
G_TYPE_DBUS_PROPERTY_INFO
#define G_TYPE_DBUS_PROPERTY_INFO (g_dbus_property_info_get_type ())
The GType for a boxed type holding a GDBusPropertyInfo.
Since 2.26
G_TYPE_DBUS_ARG_INFO
#define G_TYPE_DBUS_ARG_INFO (g_dbus_arg_info_get_type ())
The GType for a boxed type holding a GDBusArgInfo.
Since 2.26
G_TYPE_DBUS_ANNOTATION_INFO
#define G_TYPE_DBUS_ANNOTATION_INFO (g_dbus_annotation_info_get_type ())
The GType for a boxed type holding a GDBusAnnotationInfo.
Since 2.26
g_dbus_node_info_ref ()
GDBusNodeInfo *
g_dbus_node_info_ref (GDBusNodeInfo *info);
If info
 is statically allocated does nothing. Otherwise increases
the reference count.
Since 2.26
g_dbus_interface_info_ref ()
GDBusInterfaceInfo *
g_dbus_interface_info_ref (GDBusInterfaceInfo *info);
If info
 is statically allocated does nothing. Otherwise increases
the reference count.
Since 2.26
g_dbus_method_info_ref ()
GDBusMethodInfo *
g_dbus_method_info_ref (GDBusMethodInfo *info);
If info
 is statically allocated does nothing. Otherwise increases
the reference count.
Since 2.26
g_dbus_signal_info_ref ()
GDBusSignalInfo *
g_dbus_signal_info_ref (GDBusSignalInfo *info);
If info
 is statically allocated does nothing. Otherwise increases
the reference count.
Since 2.26
g_dbus_property_info_ref ()
GDBusPropertyInfo *
g_dbus_property_info_ref (GDBusPropertyInfo *info);
If info
 is statically allocated does nothing. Otherwise increases
the reference count.
Since 2.26
g_dbus_arg_info_ref ()
GDBusArgInfo *
g_dbus_arg_info_ref (GDBusArgInfo *info);
If info
 is statically allocated does nothing. Otherwise increases
the reference count.
Since 2.26
g_dbus_annotation_info_ref ()
GDBusAnnotationInfo *
g_dbus_annotation_info_ref (GDBusAnnotationInfo *info);
If info
 is statically allocated does nothing. Otherwise increases
the reference count.
Since 2.26
g_dbus_node_info_unref ()
void
g_dbus_node_info_unref (GDBusNodeInfo *info);
If info
 is statically allocated, does nothing. Otherwise decreases
the reference count of info
. When its reference count drops to 0,
the memory used is freed.
Since 2.26
g_dbus_interface_info_unref ()
void
g_dbus_interface_info_unref (GDBusInterfaceInfo *info);
If info
 is statically allocated, does nothing. Otherwise decreases
the reference count of info
. When its reference count drops to 0,
the memory used is freed.
Since 2.26
g_dbus_method_info_unref ()
void
g_dbus_method_info_unref (GDBusMethodInfo *info);
If info
 is statically allocated, does nothing. Otherwise decreases
the reference count of info
. When its reference count drops to 0,
the memory used is freed.
Since 2.26
g_dbus_signal_info_unref ()
void
g_dbus_signal_info_unref (GDBusSignalInfo *info);
If info
 is statically allocated, does nothing. Otherwise decreases
the reference count of info
. When its reference count drops to 0,
the memory used is freed.
Since 2.26
g_dbus_property_info_unref ()
void
g_dbus_property_info_unref (GDBusPropertyInfo *info);
If info
 is statically allocated, does nothing. Otherwise decreases
the reference count of info
. When its reference count drops to 0,
the memory used is freed.
Since 2.26
g_dbus_arg_info_unref ()
void
g_dbus_arg_info_unref (GDBusArgInfo *info);
If info
 is statically allocated, does nothing. Otherwise decreases
the reference count of info
. When its reference count drops to 0,
the memory used is freed.
Since 2.26
g_dbus_annotation_info_unref ()
void
g_dbus_annotation_info_unref (GDBusAnnotationInfo *info);
If info
 is statically allocated, does nothing. Otherwise decreases
the reference count of info
. When its reference count drops to 0,
the memory used is freed.
Since 2.26
Types and Values
GDBusAnnotationInfo
typedef struct {
  volatile gint         ref_count;
  gchar                *key;
  gchar                *value;
  GDBusAnnotationInfo **annotations;
} GDBusAnnotationInfo;
Information about an annotation.
Members
| volatile gint  | The reference count or -1 if statically allocated. | |
| gchar * | The name of the annotation, e.g. "org.freedesktop.DBus.Deprecated". | |
| gchar * | The value of the annotation. | |
| GDBusAnnotationInfo ** |  A pointer to a  | [array zero-terminated=1] | 
Since 2.26
GDBusArgInfo
typedef struct {
  volatile gint         ref_count;
  gchar                *name;
  gchar                *signature;
  GDBusAnnotationInfo **annotations;
} GDBusArgInfo;
Information about an argument for a method or a signal.
Members
| volatile gint  | The reference count or -1 if statically allocated. | |
| gchar * | Name of the argument, e.g.  | |
| gchar * | D-Bus signature of the argument (a single complete type). | |
| GDBusAnnotationInfo ** |  A pointer to a  | [array zero-terminated=1] | 
Since 2.26
GDBusMethodInfo
typedef struct {
  volatile gint         ref_count;
  gchar                *name;
  GDBusArgInfo        **in_args;
  GDBusArgInfo        **out_args;
  GDBusAnnotationInfo **annotations;
} GDBusMethodInfo;
Information about a method on an D-Bus interface.
Members
| volatile gint  | The reference count or -1 if statically allocated. | |
| gchar * | The name of the D-Bus method, e.g.  | |
| GDBusArgInfo ** |  A pointer to a  | [array zero-terminated=1] | 
| GDBusArgInfo ** |  A pointer to a  | [array zero-terminated=1] | 
| GDBusAnnotationInfo ** |  A pointer to a  | [array zero-terminated=1] | 
Since 2.26
GDBusSignalInfo
typedef struct {
  volatile gint         ref_count;
  gchar                *name;
  GDBusArgInfo        **args;
  GDBusAnnotationInfo **annotations;
} GDBusSignalInfo;
Information about a signal on a D-Bus interface.
Members
| volatile gint  | The reference count or -1 if statically allocated. | |
| gchar * | The name of the D-Bus signal, e.g. "NameOwnerChanged". | |
| GDBusArgInfo ** |  A pointer to a  | [array zero-terminated=1] | 
| GDBusAnnotationInfo ** |  A pointer to a  | [array zero-terminated=1] | 
Since 2.26
enum GDBusPropertyInfoFlags
Flags describing the access control of a D-Bus property.
Since 2.26
GDBusPropertyInfo
typedef struct {
  volatile gint             ref_count;
  gchar                    *name;
  gchar                    *signature;
  GDBusPropertyInfoFlags    flags;
  GDBusAnnotationInfo     **annotations;
} GDBusPropertyInfo;
Information about a D-Bus property on a D-Bus interface.
Members
| volatile gint  | The reference count or -1 if statically allocated. | |
| gchar * | The name of the D-Bus property, e.g. "SupportedFilesystems". | |
| gchar * | The D-Bus signature of the property (a single complete type). | |
| GDBusPropertyInfoFlags  | Access control flags for the property. | |
| GDBusAnnotationInfo ** |  A pointer to a  | [array zero-terminated=1] | 
Since 2.26
GDBusInterfaceInfo
typedef struct {
  volatile gint         ref_count;
  gchar                *name;
  GDBusMethodInfo     **methods;
  GDBusSignalInfo     **signals;
  GDBusPropertyInfo   **properties;
  GDBusAnnotationInfo **annotations;
} GDBusInterfaceInfo;
Information about a D-Bus interface.
Members
| volatile gint  | The reference count or -1 if statically allocated. | |
| gchar * | The name of the D-Bus interface, e.g. "org.freedesktop.DBus.Properties". | |
| GDBusMethodInfo ** |  A pointer to a  | [array zero-terminated=1] | 
| GDBusSignalInfo ** |  A pointer to a  | [array zero-terminated=1] | 
| GDBusPropertyInfo ** |  A pointer to a  | [array zero-terminated=1] | 
| GDBusAnnotationInfo ** |  A pointer to a  | [array zero-terminated=1] | 
Since 2.26
GDBusNodeInfo
typedef struct {
  volatile gint         ref_count;
  gchar                *path;
  GDBusInterfaceInfo  **interfaces;
  GDBusNodeInfo       **nodes;
  GDBusAnnotationInfo **annotations;
} GDBusNodeInfo;
Information about nodes in a remote object hierarchy.
Members
| volatile gint  | The reference count or -1 if statically allocated. | |
| gchar * | The path of the node or  | |
| GDBusInterfaceInfo ** |  A pointer to a  | [array zero-terminated=1] | 
| GDBusNodeInfo ** |  A pointer to a  | [array zero-terminated=1] | 
| GDBusAnnotationInfo ** |  A pointer to a  | [array zero-terminated=1] | 
Since 2.26
