[Galago-commits] r2616 - in trunk/libgalago: . libgalago tests
galago-commits at freedesktop.org
galago-commits at freedesktop.org
Sun Mar 19 16:23:33 PST 2006
Author: chipx86
Date: 2006-03-19 16:23:30 -0800 (Sun, 19 Mar 2006)
New Revision: 2616
Modified:
trunk/libgalago/ChangeLog
trunk/libgalago/libgalago/galago-status.c
trunk/libgalago/libgalago/galago-status.h
trunk/libgalago/tests/presence-feed-2.c
trunk/libgalago/tests/presence-feed.c
Log:
Move GalagoStatus to use GalagoObject's attributes support instead of its own functions.
Modified: trunk/libgalago/ChangeLog
===================================================================
--- trunk/libgalago/ChangeLog 2006-03-19 23:41:41 UTC (rev 2615)
+++ trunk/libgalago/ChangeLog 2006-03-20 00:23:30 UTC (rev 2616)
@@ -1,3 +1,12 @@
+Sun Mar 19 16:22:20 PST 2006 Christian Hammond <chipx86 at chipx86.com>
+
+ * libgalago/galago-status.c:
+ * libgalago/galago-status.h:
+ * tests/presence-feed-2.c:
+ * tests/presence-feed.c:
+ - Move GalagoStatus to use GalagoObject's attributes support instead
+ of its own functions.
+
Sun Mar 19 15:40:36 PST 2006 Christian Hammond <chipx86 at chipx86.com>
* libgalago/galago-object.c:
Modified: trunk/libgalago/libgalago/galago-status.c
===================================================================
--- trunk/libgalago/libgalago/galago-status.c 2006-03-19 23:41:41 UTC (rev 2615)
+++ trunk/libgalago/libgalago/galago-status.c 2006-03-20 00:23:30 UTC (rev 2616)
@@ -42,29 +42,10 @@
struct _GalagoStatusAttr
{
- GalagoStatusAttrType type;
-
char *id;
-
- union
- {
- gboolean bool_val;
- char *string_val;
- gint32 int_val;
- double double_val;
-
- } value;
+ GValue *value;
};
-static const char *attr_type_strings[] =
-{
- NULL,
- "boolean",
- "string",
- "int",
- "double"
-};
-
enum
{
PROP_0,
@@ -77,8 +58,7 @@
static GHashTable *status_id_map_table = NULL;
-static GalagoStatusAttr *status_attr_new(const char *id,
- GalagoStatusAttrType type);
+static GalagoStatusAttr *status_attr_new(const char *id, GValue *value);
static void status_attr_destroy(GalagoStatusAttr *attr);
/**************************************************************************
@@ -94,6 +74,13 @@
const GValue *value, GParamSpec *pspec);
static void galago_status_get_property(GObject *object, guint prop_id,
GValue *value, GParamSpec *pspec);
+static void galago_status_set_attribute(GalagoObject *object,
+ const char *name, GValue *value);
+static gboolean galago_status_remove_attribute(GalagoObject *object,
+ const char *name);
+const GValue *galago_status_get_attribute(const GalagoObject *object,
+ const char *name);
+GList *galago_status_get_attributes(const GalagoObject *object);
static GalagoObjectClass *parent_class = NULL;
@@ -107,10 +94,16 @@
parent_class = g_type_class_peek_parent(klass);
+ object_class->supports_attrs = TRUE;
+
object_class->destroy = galago_status_destroy;
object_class->dbus_message_append = galago_status_dbus_message_append;
object_class->dbus_message_get = galago_status_dbus_message_get;
object_class->dbus_get_signature = galago_status_dbus_get_signature;
+ object_class->set_attribute = galago_status_set_attribute;
+ object_class->remove_attribute = galago_status_remove_attribute;
+ object_class->get_attribute = galago_status_get_attribute;
+ object_class->get_attributes = galago_status_get_attributes;
gobject_class->set_property = galago_status_set_property;
gobject_class->get_property = galago_status_get_property;
@@ -206,74 +199,69 @@
galago_status_attr_dbus_get_signature(),
&array_iter);
- for (l = galago_status_get_attributes(status); l != NULL; l = l->next)
+ for (l = galago_object_get_attributes(GALAGO_OBJECT(status));
+ l != NULL;
+ l = l->next)
{
GalagoStatusAttr *attr = (GalagoStatusAttr *)l->data;
const char *attr_id = galago_status_attr_get_id(attr);
+ const GValue *value = galago_status_attr_get_gvalue(attr);
dbus_message_iter_open_container(&array_iter, DBUS_TYPE_STRUCT, NULL,
&struct_iter);
dbus_message_iter_append_basic(&struct_iter, DBUS_TYPE_STRING,
&attr_id);
- switch (galago_status_attr_get_type(attr))
+ if (G_VALUE_HOLDS(value, G_TYPE_BOOLEAN))
{
- case GALAGO_STATUS_ATTR_BOOL:
- {
- gboolean value = galago_status_attr_get_bool(attr);
- dbus_message_iter_open_container(&struct_iter,
- DBUS_TYPE_VARIANT,
- DBUS_TYPE_BOOLEAN_AS_STRING,
- &value_iter);
- dbus_message_iter_append_basic(&value_iter,
- DBUS_TYPE_BOOLEAN, &value);
- dbus_message_iter_close_container(&struct_iter, &value_iter);
- break;
- }
-
- case GALAGO_STATUS_ATTR_STRING:
- {
- const char *value = galago_status_attr_get_string(attr);
- dbus_message_iter_open_container(&struct_iter,
- DBUS_TYPE_VARIANT,
- DBUS_TYPE_STRING_AS_STRING,
- &value_iter);
- dbus_message_iter_append_basic(&value_iter,
- DBUS_TYPE_STRING, &value);
- dbus_message_iter_close_container(&struct_iter, &value_iter);
- break;
- }
-
- case GALAGO_STATUS_ATTR_INT:
- {
- int value = galago_status_attr_get_int(attr);
- dbus_message_iter_open_container(&struct_iter,
- DBUS_TYPE_VARIANT,
- DBUS_TYPE_UINT32_AS_STRING,
- &value_iter);
- dbus_message_iter_append_basic(&value_iter,
- DBUS_TYPE_UINT32, &value);
- dbus_message_iter_close_container(&struct_iter, &value_iter);
- break;
- }
-
- case GALAGO_STATUS_ATTR_DOUBLE:
- {
- double value = galago_status_attr_get_double(attr);
- dbus_message_iter_open_container(&struct_iter,
- DBUS_TYPE_VARIANT,
- DBUS_TYPE_DOUBLE_AS_STRING,
- &value_iter);
- dbus_message_iter_append_basic(&value_iter,
- DBUS_TYPE_DOUBLE, &value);
- dbus_message_iter_close_container(&struct_iter, &value_iter);
- break;
- }
-
- default: /* This should never be reached. */
- g_assert_not_reached();
- break;
+ gboolean value = galago_status_attr_get_bool(attr);
+ dbus_message_iter_open_container(&struct_iter,
+ DBUS_TYPE_VARIANT,
+ DBUS_TYPE_BOOLEAN_AS_STRING,
+ &value_iter);
+ dbus_message_iter_append_basic(&value_iter,
+ DBUS_TYPE_BOOLEAN, &value);
+ dbus_message_iter_close_container(&struct_iter, &value_iter);
+ break;
}
+ else if (G_VALUE_HOLDS(value, G_TYPE_STRING))
+ {
+ const char *value = galago_status_attr_get_string(attr);
+ dbus_message_iter_open_container(&struct_iter,
+ DBUS_TYPE_VARIANT,
+ DBUS_TYPE_STRING_AS_STRING,
+ &value_iter);
+ dbus_message_iter_append_basic(&value_iter,
+ DBUS_TYPE_STRING, &value);
+ dbus_message_iter_close_container(&struct_iter, &value_iter);
+ break;
+ }
+ else if (G_VALUE_HOLDS(value, G_TYPE_INT))
+ {
+ int value = galago_status_attr_get_int(attr);
+ dbus_message_iter_open_container(&struct_iter,
+ DBUS_TYPE_VARIANT,
+ DBUS_TYPE_UINT32_AS_STRING,
+ &value_iter);
+ dbus_message_iter_append_basic(&value_iter,
+ DBUS_TYPE_UINT32, &value);
+ dbus_message_iter_close_container(&struct_iter, &value_iter);
+ break;
+ }
+ else if (G_VALUE_HOLDS(value, G_TYPE_DOUBLE))
+ {
+ double value = galago_status_attr_get_double(attr);
+ dbus_message_iter_open_container(&struct_iter,
+ DBUS_TYPE_VARIANT,
+ DBUS_TYPE_DOUBLE_AS_STRING,
+ &value_iter);
+ dbus_message_iter_append_basic(&value_iter,
+ DBUS_TYPE_DOUBLE, &value);
+ dbus_message_iter_close_container(&struct_iter, &value_iter);
+ break;
+ }
+ else
+ g_assert_not_reached();
dbus_message_iter_close_container(&array_iter, &struct_iter);
}
@@ -322,7 +310,8 @@
{
gboolean value;
dbus_message_iter_get_basic(&value_iter, &value);
- galago_status_set_attr_bool(status, attr_id, value);
+ galago_object_set_attr_bool(GALAGO_OBJECT(status),
+ attr_id, value);
break;
}
@@ -330,7 +319,8 @@
{
const char *value;
dbus_message_iter_get_basic(&value_iter, &value);
- galago_status_set_attr_string(status, attr_id, value);
+ galago_object_set_attr_string(GALAGO_OBJECT(status),
+ attr_id, value);
break;
}
@@ -338,7 +328,8 @@
{
dbus_uint32_t value;
dbus_message_iter_get_basic(&value_iter, &value);
- galago_status_set_attr_int(status, attr_id, value);
+ galago_object_set_attr_int(GALAGO_OBJECT(status),
+ attr_id, value);
break;
}
@@ -346,7 +337,8 @@
{
double value;
dbus_message_iter_get_basic(&value_iter, &value);
- galago_status_set_attr_double(status, attr_id, value);
+ galago_object_set_attr_double(GALAGO_OBJECT(status),
+ attr_id, value);
break;
}
@@ -534,36 +526,34 @@
galago_status_get_name(status),
galago_status_is_exclusive(status));
- for (l = galago_status_get_attributes(status); l != NULL; l = l->next)
+ for (l = galago_object_get_attributes(GALAGO_OBJECT(status));
+ l != NULL;
+ l = l->next)
{
GalagoStatusAttr *status_attr = (GalagoStatusAttr *)l->data;
const char *attr_id = galago_status_attr_get_id(status_attr);
+ const GValue *value = galago_status_attr_get_gvalue(status_attr);
- switch (galago_status_attr_get_type(status_attr))
+ if (G_VALUE_HOLDS(value, G_TYPE_BOOLEAN))
{
- case GALAGO_STATUS_ATTR_BOOL:
- galago_status_set_attr_bool(new_status, attr_id,
- galago_status_attr_get_bool(status_attr));
- break;
-
- case GALAGO_STATUS_ATTR_STRING:
- galago_status_set_attr_string(new_status, attr_id,
- galago_status_attr_get_string(status_attr));
- break;
-
- case GALAGO_STATUS_ATTR_INT:
- galago_status_set_attr_int(new_status, attr_id,
- galago_status_attr_get_int(status_attr));
- break;
-
- case GALAGO_STATUS_ATTR_DOUBLE:
- galago_status_set_attr_double(new_status, attr_id,
- galago_status_attr_get_double(status_attr));
- break;
-
- default:
- break;
+ galago_object_set_attr_bool(GALAGO_OBJECT(new_status),
+ attr_id, galago_status_attr_get_bool(status_attr));
}
+ else if (G_VALUE_HOLDS(value, G_TYPE_STRING))
+ {
+ galago_object_set_attr_string(GALAGO_OBJECT(new_status),
+ attr_id, galago_status_attr_get_string(status_attr));
+ }
+ else if (G_VALUE_HOLDS(value, G_TYPE_INT))
+ {
+ galago_object_set_attr_int(GALAGO_OBJECT(new_status),
+ attr_id, galago_status_attr_get_int(status_attr));
+ }
+ else if (G_VALUE_HOLDS(value, G_TYPE_DOUBLE))
+ {
+ galago_object_set_attr_double(GALAGO_OBJECT(new_status),
+ attr_id, galago_status_attr_get_double(status_attr));
+ }
}
return new_status;
@@ -642,226 +632,74 @@
type == GALAGO_STATUS_HIDDEN;
}
-static GalagoStatusAttr *
-common_make_attr(GalagoStatus *status, const char *attr_id,
- GalagoStatusAttrType type)
+static void
+galago_status_set_attribute(GalagoObject *object, const char *name,
+ GValue *value)
{
+ GalagoStatus *status = GALAGO_STATUS(object);
GalagoStatusAttr *attr;
GalagoPresence *presence;
- attr = g_hash_table_lookup(status->priv->attrs_table, attr_id);
+ attr = g_hash_table_lookup(status->priv->attrs_table, name);
if (attr == NULL)
{
- attr = status_attr_new(attr_id, type);
+ attr = status_attr_new(name, value);
- g_hash_table_insert(status->priv->attrs_table,
- g_strdup(attr_id), attr);
+ g_hash_table_insert(status->priv->attrs_table, g_strdup(name), attr);
status->priv->attrs = g_list_append(status->priv->attrs, attr);
}
- else if (attr->type != type)
+ else if (G_VALUE_HOLDS(attr->value, G_VALUE_TYPE(value)))
{
- g_warning("Attempted to set existing attribute ID %s with "
- "invalid type %s",
- attr_id, attr_type_strings[type]);
- return NULL;
+ g_value_unset(attr->value);
+ g_free(attr->value);
+ attr->value = value;
}
+ else
+ {
+ g_warning("Attempted to set existing attribute ID %s of type %s with "
+ "attribute of type %s",
+ name,
+ G_VALUE_TYPE_NAME(attr->value),
+ G_VALUE_TYPE_NAME(value));
- presence = galago_status_get_presence(status);
-
- if (presence != NULL)
- g_signal_emit_by_name(presence, "status-updated", 0, status, attr_id);
-
- return attr;
-}
-
-void
-galago_status_set_attr_bool(GalagoStatus *status, const char *attr_id,
- gboolean value)
-{
- GalagoStatusAttr *attr;
-
- g_return_if_fail(status != NULL);
- g_return_if_fail(attr_id != NULL);
- g_return_if_fail(GALAGO_IS_STATUS(status));
-
- attr = common_make_attr(status, attr_id, GALAGO_STATUS_ATTR_BOOL);
-
- if (attr == NULL)
return;
-
- attr->value.bool_val = value;
-}
-
-void
-galago_status_set_attr_string(GalagoStatus *status, const char *attr_id,
- const char *value)
-{
- GalagoStatusAttr *attr;
-
- g_return_if_fail(status != NULL);
- g_return_if_fail(attr_id != NULL);
- g_return_if_fail(GALAGO_IS_STATUS(status));
-
- attr = common_make_attr(status, attr_id, GALAGO_STATUS_ATTR_STRING);
-
- if (attr == NULL)
- return;
-
- if (attr->value.string_val == NULL)
- g_free(attr->value.string_val);
-
- attr->value.string_val = (value == NULL ? NULL : g_strdup(value));
-}
-
-
-void
-galago_status_set_attr_int(GalagoStatus *status, const char *attr_id,
- gint32 value)
-{
- GalagoStatusAttr *attr;
-
- g_return_if_fail(status != NULL);
- g_return_if_fail(attr_id != NULL);
- g_return_if_fail(GALAGO_IS_STATUS(status));
-
- attr = common_make_attr(status, attr_id, GALAGO_STATUS_ATTR_INT);
-
- if (attr == NULL)
- return;
-
- attr->value.int_val = value;
-}
-
-void
-galago_status_set_attr_double(GalagoStatus *status, const char *attr_id,
- double value)
-{
- GalagoStatusAttr *attr;
-
- g_return_if_fail(status != NULL);
- g_return_if_fail(attr_id != NULL);
- g_return_if_fail(GALAGO_IS_STATUS(status));
-
- attr = common_make_attr(status, attr_id, GALAGO_STATUS_ATTR_DOUBLE);
-
- if (attr == NULL)
- return;
-
- attr->value.double_val = value;
-}
-
-void
-galago_status_remove_attr(GalagoStatus *status, const char *attr_id)
-{
- GalagoStatusAttr *attr;
-
- g_return_if_fail(status != NULL);
- g_return_if_fail(attr_id != NULL);
- g_return_if_fail(GALAGO_IS_STATUS(status));
-
- attr = g_hash_table_lookup(status->priv->attrs_table, attr_id);
-
- if (attr != NULL)
- {
- g_warning("Attempting to remove invalid attribute %s", attr_id);
- return;
}
- g_hash_table_remove(status->priv->attrs_table, attr_id);
- status->priv->attrs = g_list_remove(status->priv->attrs, attr);
-}
+ presence = galago_status_get_presence(status);
-static GalagoStatusAttr *
-common_get_attr(const GalagoStatus *status, const char *attr_id,
- GalagoStatusAttrType type)
-{
- GalagoStatusAttr *attr;
-
- attr = g_hash_table_lookup(status->priv->attrs_table, attr_id);
-
- if (attr == NULL)
- return NULL;
-
- if (attr->type != type)
- {
- g_warning("Attempted to retrieve existing attribute ID %s with "
- "invalid type: %s",
- attr_id, attr_type_strings[type]);
- return NULL;
- }
-
- return attr;
+ if (presence != NULL)
+ g_signal_emit_by_name(presence, "status-updated", 0, status, name);
}
-gboolean
-galago_status_get_attr_bool(const GalagoStatus *status, const char *attr_id)
+static gboolean
+galago_status_remove_attribute(GalagoObject *object, const char *name)
{
+ GalagoStatus *status = GALAGO_STATUS(object);
GalagoStatusAttr *attr;
- g_return_val_if_fail(status != NULL, FALSE);
- g_return_val_if_fail(attr_id != NULL, FALSE);
- g_return_val_if_fail(GALAGO_IS_STATUS(status), FALSE);
+ attr = g_hash_table_lookup(status->priv->attrs_table, name);
- attr = common_get_attr(status, attr_id, GALAGO_STATUS_ATTR_BOOL);
-
if (attr == NULL)
return FALSE;
- return attr->value.bool_val;
-}
+ g_hash_table_remove(status->priv->attrs_table, name);
+ status->priv->attrs = g_list_remove(status->priv->attrs, attr);
-const char *
-galago_status_get_attr_string(const GalagoStatus *status, const char *attr_id)
-{
- GalagoStatusAttr *attr;
-
- g_return_val_if_fail(status != NULL, NULL);
- g_return_val_if_fail(attr_id != NULL, NULL);
- g_return_val_if_fail(GALAGO_IS_STATUS(status), NULL);
-
- attr = common_get_attr(status, attr_id, GALAGO_STATUS_ATTR_STRING);
-
- if (attr == NULL)
- return NULL;
-
- return attr->value.string_val;
+ return TRUE;
}
-gint32
-galago_status_get_attr_int(const GalagoStatus *status, const char *attr_id)
+const GValue *
+galago_status_get_attribute(const GalagoObject *object, const char *name)
{
+ GalagoStatus *status = GALAGO_STATUS(object);
GalagoStatusAttr *attr;
- g_return_val_if_fail(status != NULL, -1);
- g_return_val_if_fail(attr_id != NULL, -1);
- g_return_val_if_fail(GALAGO_IS_STATUS(status), -1);
+ attr = g_hash_table_lookup(status->priv->attrs_table, name);
- attr = common_get_attr(status, attr_id, GALAGO_STATUS_ATTR_INT);
-
- if (attr == NULL)
- return -1;
-
- return attr->value.int_val;
+ return (attr == NULL ? NULL : attr->value);
}
-double
-galago_status_get_attr_double(const GalagoStatus *status, const char *attr_id)
-{
- GalagoStatusAttr *attr;
-
- g_return_val_if_fail(status != NULL, 0.0);
- g_return_val_if_fail(attr_id != NULL, 0.0);
- g_return_val_if_fail(GALAGO_IS_STATUS(status), 0.0);
-
- attr = common_get_attr(status, attr_id, GALAGO_STATUS_ATTR_DOUBLE);
-
- if (attr == NULL)
- return 0.0;
-
- return attr->value.double_val;
-}
-
gboolean
galago_status_attr_exists(const GalagoStatus *status, const char *attr_id)
{
@@ -873,28 +711,24 @@
}
GList *
-galago_status_get_attributes(const GalagoStatus *status)
+galago_status_get_attributes(const GalagoObject *object)
{
- g_return_val_if_fail(status != NULL, NULL);
- g_return_val_if_fail(GALAGO_IS_STATUS(status), NULL);
-
- return status->priv->attrs;
+ return GALAGO_STATUS(object)->priv->attrs;
}
/**************************************************************************
* GalagoStatusAttr API
**************************************************************************/
static GalagoStatusAttr *
-status_attr_new(const char *id, GalagoStatusAttrType type)
+status_attr_new(const char *id, GValue *value)
{
GalagoStatusAttr *attr;
g_return_val_if_fail(id != NULL, NULL);
- g_return_val_if_fail(type != GALAGO_STATUS_ATTR_UNSET, NULL);
attr = g_new0(GalagoStatusAttr, 1);
- attr->id = g_strdup(id);
- attr->type = type;
+ attr->id = g_strdup(id);
+ attr->value = value;
return attr;
}
@@ -905,21 +739,17 @@
if (attr->id != NULL)
g_free(attr->id);
- if (attr->type == GALAGO_STATUS_ATTR_STRING &&
- attr->value.string_val != NULL)
- {
- g_free(attr->value.string_val);
- }
-
+ g_value_unset(attr->value);
+ g_free(attr->value);
g_free(attr);
}
-GalagoStatusAttrType
-galago_status_attr_get_type(const GalagoStatusAttr *attr)
+const GValue *
+galago_status_attr_get_gvalue(const GalagoStatusAttr *attr)
{
- g_return_val_if_fail(attr != NULL, GALAGO_STATUS_ATTR_UNSET);
+ g_return_val_if_fail(attr != NULL, NULL);
- return attr->type;
+ return attr->value;
}
const char *
@@ -934,34 +764,34 @@
galago_status_attr_get_bool(const GalagoStatusAttr *attr)
{
g_return_val_if_fail(attr != NULL, FALSE);
- g_return_val_if_fail(attr->type == GALAGO_STATUS_ATTR_BOOL, FALSE);
+ g_return_val_if_fail(G_VALUE_HOLDS(attr->value, G_TYPE_BOOLEAN), FALSE);
- return attr->value.bool_val;
+ return g_value_get_boolean(attr->value);
}
const char *
galago_status_attr_get_string(const GalagoStatusAttr *attr)
{
g_return_val_if_fail(attr != NULL, NULL);
- g_return_val_if_fail(attr->type == GALAGO_STATUS_ATTR_STRING, NULL);
+ g_return_val_if_fail(G_VALUE_HOLDS(attr->value, G_TYPE_STRING), NULL);
- return attr->value.string_val;
+ return g_value_get_string(attr->value);
}
gint32
galago_status_attr_get_int(const GalagoStatusAttr *attr)
{
g_return_val_if_fail(attr != NULL, -1);
- g_return_val_if_fail(attr->type == GALAGO_STATUS_ATTR_INT, -1);
+ g_return_val_if_fail(G_VALUE_HOLDS(attr->value, G_TYPE_INT), 0);
- return attr->value.int_val;
+ return g_value_get_int(attr->value);
}
double
galago_status_attr_get_double(const GalagoStatusAttr *attr)
{
g_return_val_if_fail(attr != NULL, 0.0);
- g_return_val_if_fail(attr->type == GALAGO_STATUS_ATTR_DOUBLE, 0.0);
+ g_return_val_if_fail(G_VALUE_HOLDS(attr->value, G_TYPE_DOUBLE), 0);
- return attr->value.double_val;
+ return g_value_get_double(attr->value);
}
Modified: trunk/libgalago/libgalago/galago-status.h
===================================================================
--- trunk/libgalago/libgalago/galago-status.h 2006-03-19 23:41:41 UTC (rev 2615)
+++ trunk/libgalago/libgalago/galago-status.h 2006-03-20 00:23:30 UTC (rev 2616)
@@ -249,118 +249,6 @@
*/
gboolean galago_status_is_available(const GalagoStatus *status);
-/**
- * Sets a boolean status attribute.
- *
- * @param status The status.
- * @param attr_id The attribute ID.
- * @param value The boolean value.
- */
-void galago_status_set_attr_bool(GalagoStatus *status, const char *attr_id,
- gboolean value);
-
-/**
- * Sets a string status attribute.
- *
- * @param status The status.
- * @param attr_id The attribute ID.
- * @param value The string value.
- */
-void galago_status_set_attr_string(GalagoStatus *status, const char *attr_id,
- const char *value);
-
-/**
- * Sets an integer status attribute.
- *
- * @param status The status.
- * @param attr_id The attribute ID.
- * @param value The integer value.
- */
-void galago_status_set_attr_int(GalagoStatus *status, const char *attr_id,
- gint32 value);
-
-/**
- * Sets a double status attribute.
- *
- * @param status The status.
- * @param attr_id The attribute ID.
- * @param value The double value.
- */
-void galago_status_set_attr_double(GalagoStatus *status, const char *attr_id,
- double value);
-
-/**
- * Removes a status attribute.
- *
- * @param status The status.
- * @param attr_id The attribute ID.
- */
-void galago_status_remove_attr(GalagoStatus *status, const char *attr_id);
-
-/**
- * Returns a boolean status attribute.
- *
- * @param status The status.
- * @param attr_id The attribute ID.
- *
- * @return The boolean value.
- */
-gboolean galago_status_get_attr_bool(const GalagoStatus *status,
- const char *attr_id);
-
-/**
- * Returns a string status attribute.
- *
- * @param status The status.
- * @param attr_id The attribute ID.
- *
- * @return The string value.
- */
-const char *galago_status_get_attr_string(const GalagoStatus *status,
- const char *attr_id);
-
-/**
- * Returns an integer status attribute.
- *
- * @param status The status.
- * @param attr_id The attribute ID.
- *
- * @return The integer value.
- */
-gint32 galago_status_get_attr_int(const GalagoStatus *status,
- const char *attr_id);
-
-/**
- * Returns a double status attribute.
- *
- * @param status The status.
- * @param attr_id The attribute ID.
- *
- * @return The double value.
- */
-double galago_status_get_attr_double(const GalagoStatus *status,
- const char *attr_id);
-
-/**
- * Returns whether or not a status attribute exists.
- *
- * @param status The status.
- * @param attr_id The attribute ID.
- *
- * @return TRUE if the status attribute exists, or FALSE otherwise.
- */
-gboolean galago_status_attr_exists(const GalagoStatus *status,
- const char *attr_id);
-
-/**
- * Returns the list of status attributes in this status.
- *
- * @param status The status.
- *
- * @return The status attributes in the status.
- */
-GList *galago_status_get_attributes(const GalagoStatus *status);
-
/*@}*/
/**************************************************************************/
@@ -369,13 +257,13 @@
/*@{*/
/**
- * Returns the type of a status attribute.
+ * Returns the GValue of a status attribute.
*
* @param attr The status attribute.
*
- * @return The status attribute's type.
+ * @return The status attribute's GValue.
*/
-GalagoStatusAttrType galago_status_attr_get_type(const GalagoStatusAttr *attr);
+const GValue *galago_status_attr_get_gvalue(const GalagoStatusAttr *attr);
/**
* Returns the ID of a status attribute.
Modified: trunk/libgalago/tests/presence-feed-2.c
===================================================================
--- trunk/libgalago/tests/presence-feed-2.c 2006-03-19 23:41:41 UTC (rev 2615)
+++ trunk/libgalago/tests/presence-feed-2.c 2006-03-20 00:23:30 UTC (rev 2616)
@@ -46,7 +46,8 @@
status = galago_status_new(GALAGO_STATUS_AWAY, "available", "Available",
TRUE);
- galago_status_set_attr_string(status, "message", "Talk to me!");
+ galago_object_set_attr_string(GALAGO_OBJECT(status), "message",
+ "Talk to me!");
galago_presence_add_status(presence, status);
Modified: trunk/libgalago/tests/presence-feed.c
===================================================================
--- trunk/libgalago/tests/presence-feed.c 2006-03-19 23:41:41 UTC (rev 2615)
+++ trunk/libgalago/tests/presence-feed.c 2006-03-20 00:23:30 UTC (rev 2616)
@@ -48,7 +48,8 @@
galago_presence_set_idle(presence, TRUE, time(NULL));
status = galago_status_new(GALAGO_STATUS_AWAY, "away", "Away", TRUE);
- galago_status_set_attr_string(status, "message", "I'm eating dinner.");
+ galago_object_set_attr_string(GALAGO_OBJECT(status), "message",
+ "I'm eating dinner.");
galago_presence_add_status(presence, status);
More information about the galago-commits
mailing list