static void egg_task_cache_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { EggTaskCache *self = EGG_TASK_CACHE(object); switch (prop_id) { case PROP_KEY_COPY_FUNC: self->key_copy_func = g_value_get_pointer (value); break; case PROP_KEY_DESTROY_FUNC: self->key_destroy_func = g_value_get_pointer (value); break; case PROP_KEY_EQUAL_FUNC: self->key_equal_func = g_value_get_pointer (value); break; case PROP_KEY_HASH_FUNC: self->key_hash_func = g_value_get_pointer (value); break; case PROP_POPULATE_CALLBACK: self->populate_callback = g_value_get_pointer (value); break; case PROP_POPULATE_CALLBACK_DATA: self->populate_callback_data = g_value_get_pointer (value); break; case PROP_POPULATE_CALLBACK_DATA_DESTROY: self->populate_callback_data_destroy = g_value_get_pointer (value); break; case PROP_TIME_TO_LIVE: self->time_to_live_usec = (g_value_get_int64 (value) * 1000L); break; case PROP_VALUE_COPY_FUNC: self->value_copy_func = g_value_get_pointer (value); break; case PROP_VALUE_DESTROY_FUNC: self->value_destroy_func = g_value_get_pointer (value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); } }
static void get_diagnostics_cb (GObject *source_object, GAsyncResult *res, gpointer user_data) { EggTaskCache *cache = EGG_TASK_CACHE (source_object); g_autoptr(GTask) task = user_data; g_autoptr(IdeGettextDiagnostics) diags = NULL; GError *error = NULL; g_assert (EGG_IS_TASK_CACHE (cache)); g_assert (G_IS_TASK (task)); diags = egg_task_cache_get_finish (cache, res, &error); if (diags == NULL) g_task_return_error (task, error); else g_task_return_pointer (task, g_steal_pointer (&diags), g_object_unref); }