dbus-gtype-specialized.c File Reference

Enum DBusGTypeSpecializedType

SECTION:dbus-gtype-specialized : Specialized GTypes : Unstable

Specialized gtypes are basically a way to allow the definition of recursive GTypes. It allows the definition of 'containers' which is basically a user defined structure capabale of holding other data and a set of functions defining how to access that structure. Containers come in 3 flavors: collections, maps and structs.

A collection is a container that holds an ordered set of items, all of which must be the same type.

A map is a container that holds a set of key/value pairs. The keys have one type, and the values another.

A struct is a container that holds a fixed number of members, each member having a predefined type.

A specialization is a GType detailing a particular container with particular types (a type specialization).

Functions are provided for constructing and manipulating specializations.

This documentation needs splitting into two pages, one for defining new containers and using existing containers. I expect most users to only do the latter. I also need to add some examples.

Enumerators

DBUS_G_SPECTYPE_COLLECTION
DBUS_G_SPECTYPE_MAP
DBUS_G_SPECTYPE_STRUCT

GHashTable * specialized_containers

GHashTable *specialized_containers[static]

specialized_type_data_quark()

GQuark specialized_type_data_quark()[static]

specialized_types_is_initialized(void)

gboolean specialized_types_is_initialized(void)[static]

Parameters

void

lookup_specialization_data(GType)

DBusGTypeSpecializedData *lookup_specialization_data(GTypetype)[static]

Parameters

GType type

proxy_value_init(GValue *)

voidproxy_value_init(GValue *value)[static]

Parameters

GValue * value

proxy_value_free(GValue *)

voidproxy_value_free(GValue *value)[static]

Parameters

GValue * value

proxy_value_copy(const GValue *, GValue *)

voidproxy_value_copy(const GValue *src_value,
GValue *dest_value
)[static]

Parameters

const GValue * src_value
GValue * dest_value

proxy_value_peek_pointer(const GValue *)

gpointer proxy_value_peek_pointer(const GValue *value)[static]

Parameters

const GValue * value

proxy_collect_value(GValue *, guint, GTypeCValue *, guint)

gchar *proxy_collect_value(GValue *value,
guintn_collect_values,
GTypeCValue *collect_values,
guintcollect_flags
)[static]

Parameters

GValue * value
guint n_collect_values
GTypeCValue * collect_values
guint collect_flags

proxy_lcopy_value(const GValue *, guint, GTypeCValue *, guint)

gchar *proxy_lcopy_value(const GValue *value,
guintn_collect_values,
GTypeCValue *collect_values,
guintcollect_flags
)[static]

Parameters

const GValue * value
guint n_collect_values
GTypeCValue * collect_values
guint collect_flags

build_specialization_name(const char *, guint, const GType *)

char *build_specialization_name(const char *prefix,
guintnum_types,
const GType *types
)[static]

Parameters

const char * prefix
guint num_types
const GType * types

register_container(const char *, DBusGTypeSpecializedType, const DBusGTypeSpecializedVtable *)

voidregister_container(const char *name,
DBusGTypeSpecializedTypetype,
const DBusGTypeSpecializedVtable *vtable
)[static]

Parameters

const char * name
DBusGTypeSpecializedType type
const DBusGTypeSpecializedVtable * vtable