24
24
/* functions prototype */
25
25
// static void ibus_attribute_destroy (IBusAttribute *attr);
26
26
static gboolean ibus_attribute_serialize (IBusAttribute *attr,
27
IBusMessageIter *iter);
28
static gboolean ibus_attribute_deserialize (IBusAttribute *attr,
29
IBusMessageIter *iter);
27
GVariantBuilder *builder);
28
static gint ibus_attribute_deserialize (IBusAttribute *attr,
30
30
static gboolean ibus_attribute_copy (IBusAttribute *dest,
31
31
const IBusAttribute *src);
33
33
G_DEFINE_TYPE (IBusAttribute, ibus_attribute, IBUS_TYPE_SERIALIZABLE)
36
ibus_attribute_class_init (IBusAttributeClass *klass)
36
ibus_attribute_class_init (IBusAttributeClass *class)
38
IBusSerializableClass *serializable_class = IBUS_SERIALIZABLE_CLASS (klass);
40
// object_class->destroy = (IBusObjectDestroyFunc) ibus_attribute_destroy;
38
IBusSerializableClass *serializable_class = IBUS_SERIALIZABLE_CLASS (class);
42
40
serializable_class->serialize = (IBusSerializableSerializeFunc) ibus_attribute_serialize;
43
41
serializable_class->deserialize = (IBusSerializableDeserializeFunc) ibus_attribute_deserialize;
44
42
serializable_class->copy = (IBusSerializableCopyFunc) ibus_attribute_copy;
46
g_string_append (serializable_class->signature, "uuuu");
55
// ibus_attribute_destroy (IBusAttribute *attr)
57
// IBUS_OBJECT (ibus_attribute_parent_class)->destroy ((IBusObject *)attr);
61
51
ibus_attribute_serialize (IBusAttribute *attr,
62
IBusMessageIter *iter)
52
GVariantBuilder *builder)
66
retval = IBUS_SERIALIZABLE_CLASS (ibus_attribute_parent_class)->serialize ((IBusSerializable *) attr, iter);
67
g_return_val_if_fail (retval, FALSE);
69
g_return_val_if_fail (IBUS_IS_ATTRIBUTE (attr), FALSE);
71
retval = ibus_message_iter_append (iter, G_TYPE_UINT, &attr->type);
72
g_return_val_if_fail (retval, FALSE);
74
retval = ibus_message_iter_append (iter, G_TYPE_UINT, &attr->value);
75
g_return_val_if_fail (retval, FALSE);
77
retval = ibus_message_iter_append (iter, G_TYPE_UINT, &attr->start_index);
78
g_return_val_if_fail (retval, FALSE);
80
retval = ibus_message_iter_append (iter, G_TYPE_UINT, &attr->end_index);
81
g_return_val_if_fail (retval, FALSE);
56
retval = IBUS_SERIALIZABLE_CLASS (ibus_attribute_parent_class)->serialize ((IBusSerializable *) attr, builder);
57
g_return_val_if_fail (retval, FALSE);
59
g_variant_builder_add (builder, "u", attr->type);
60
g_variant_builder_add (builder, "u", attr->value);
61
g_variant_builder_add (builder, "u", attr->start_index);
62
g_variant_builder_add (builder, "u", attr->end_index);
87
ibus_attribute_deserialize (IBusAttribute *attr,
88
IBusMessageIter *iter)
68
ibus_attribute_deserialize (IBusAttribute *attr,
92
retval = IBUS_SERIALIZABLE_CLASS (ibus_attribute_parent_class)->deserialize ((IBusSerializable *) attr, iter);
93
g_return_val_if_fail (retval, FALSE);
95
g_return_val_if_fail (IBUS_IS_ATTRIBUTE (attr), FALSE);
97
retval = ibus_message_iter_get (iter, G_TYPE_UINT, &attr->type);
98
g_return_val_if_fail (retval, FALSE);
99
ibus_message_iter_next (iter);
101
retval = ibus_message_iter_get (iter, G_TYPE_UINT, &attr->value);
102
g_return_val_if_fail (retval, FALSE);
103
ibus_message_iter_next (iter);
105
retval = ibus_message_iter_get (iter, G_TYPE_UINT, &attr->start_index);
106
g_return_val_if_fail (retval, FALSE);
107
ibus_message_iter_next (iter);
109
retval = ibus_message_iter_get (iter, G_TYPE_UINT, &attr->end_index);
110
g_return_val_if_fail (retval, FALSE);
111
ibus_message_iter_next (iter);
73
retval = IBUS_SERIALIZABLE_CLASS (ibus_attribute_parent_class)->deserialize ((IBusSerializable *) attr, variant);
74
g_return_val_if_fail (retval, 0);
76
g_variant_get_child (variant, retval++, "u", &attr->type);
77
g_variant_get_child (variant, retval++, "u", &attr->value);
78
g_variant_get_child (variant, retval++, "u", &attr->start_index);
79
g_variant_get_child (variant, retval++, "u", &attr->end_index);