summaryrefslogtreecommitdiffstats
path: root/glib/dbus-gtype-specialized.h
diff options
context:
space:
mode:
Diffstat (limited to 'glib/dbus-gtype-specialized.h')
-rw-r--r--glib/dbus-gtype-specialized.h43
1 files changed, 43 insertions, 0 deletions
diff --git a/glib/dbus-gtype-specialized.h b/glib/dbus-gtype-specialized.h
index 505c95bc..1d260092 100644
--- a/glib/dbus-gtype-specialized.h
+++ b/glib/dbus-gtype-specialized.h
@@ -34,11 +34,21 @@ GType dbus_g_type_get_collection (const char *contain
GType dbus_g_type_get_map (const char *container,
GType key_specialization,
GType value_specialization);
+GType dbus_g_type_get_structv (const char *container,
+ guint num_items,
+ GType *types);
+GType dbus_g_type_get_struct (const char *container,
+ GType first_type,
+ ...);
gboolean dbus_g_type_is_collection (GType gtype);
gboolean dbus_g_type_is_map (GType gtype);
+gboolean dbus_g_type_is_struct (GType gtype);
GType dbus_g_type_get_collection_specialization (GType gtype);
GType dbus_g_type_get_map_key_specialization (GType gtype);
GType dbus_g_type_get_map_value_specialization (GType gtype);
+GType dbus_g_type_get_struct_member_type (GType gtype,
+ guint index);
+guint dbus_g_type_get_struct_size (GType gtype);
typedef void (*DBusGTypeSpecializedCollectionIterator) (const GValue *val,
gpointer user_data);
@@ -81,6 +91,21 @@ void dbus_g_type_map_value_iterate (const GValue
DBusGTypeSpecializedMapIterator iterator,
gpointer user_data);
+gboolean dbus_g_type_struct_get_member (const GValue *value,
+ guint index,
+ GValue *dest);
+gboolean dbus_g_type_struct_set_member (GValue *value,
+ guint index,
+ const GValue *src);
+
+gboolean dbus_g_type_struct_get (const GValue *value,
+ guint member,
+ ...);
+
+gboolean dbus_g_type_struct_set (GValue *value,
+ guint member,
+ ...);
+
typedef gpointer (*DBusGTypeSpecializedConstructor) (GType type);
typedef void (*DBusGTypeSpecializedFreeFunc) (GType type, gpointer val);
typedef gpointer (*DBusGTypeSpecializedCopyFunc) (GType type, gpointer src);
@@ -116,6 +141,15 @@ typedef struct {
DBusGTypeSpecializedMapAppendFunc append_func;
} DBusGTypeSpecializedMapVtable;
+typedef gboolean (*DBusGTypeSpecializedStructGetMember) (GType type, gpointer instance, guint member, GValue *ret_value);
+typedef gboolean (*DBusGTypeSpecializedStructSetMember) (GType type, gpointer instance, guint member, const GValue *new_value);
+
+typedef struct {
+ DBusGTypeSpecializedVtable base_vtable;
+ DBusGTypeSpecializedStructGetMember get_member;
+ DBusGTypeSpecializedStructSetMember set_member;
+} DBusGTypeSpecializedStructVtable;
+
void dbus_g_type_specialized_init (void);
void dbus_g_type_register_collection (const char *name,
@@ -128,6 +162,15 @@ void dbus_g_type_register_map (const char
const DBusGTypeSpecializedMapVtable* dbus_g_type_map_peek_vtable (GType map_type);
const DBusGTypeSpecializedCollectionVtable* dbus_g_type_collection_peek_vtable (GType collection_type);
+void dbus_g_type_register_struct (const char *name,
+ const DBusGTypeSpecializedStructVtable *vtable,
+ guint flags);
+
+const DBusGTypeSpecializedMapVtable* dbus_g_type_map_peek_vtable (GType map_type);
+const DBusGTypeSpecializedCollectionVtable* dbus_g_type_collection_peek_vtable (GType collection_type);
+
+const DBusGTypeSpecializedStructVtable* dbus_g_type_struct_peek_vtable (GType struct_type);
+
G_END_DECLS
#endif