static VALUE rg_query_info_finish(VALUE self, VALUE result) { GError *error = NULL; GFileInfo *info; info = g_file_input_stream_query_info_finish(_SELF(self), RVAL2GASYNCRESULT(result), &error); if (info == NULL) rbgio_raise_error(error); return GOBJ2RVAL_UNREF(info); }
static void gtkhash_hash_file_get_size_finish( G_GNUC_UNUSED GObject *source, GAsyncResult *res, struct hash_file_s *data) { GFileInfo *info = g_file_input_stream_query_info_finish( data->stream, res, NULL); data->file_size = g_file_info_get_size(info); g_object_unref(info); if (G_UNLIKELY(g_cancellable_is_cancelled(data->cancellable))) gtkhash_hash_file_set_state(data, HASH_FILE_STATE_CLOSE); else if (data->file_size == 0) gtkhash_hash_file_set_state(data, HASH_FILE_STATE_HASH); else { gtkhash_hash_file_set_state(data, HASH_FILE_STATE_READ); gtkhash_hash_file_add_report_source(data); } gtkhash_hash_file_add_source(data); }
static void stream_info_async_cb (GObject *obj, GAsyncResult *res, gpointer data) { RBChunkLoader *loader = RB_CHUNK_LOADER (data); GFileInfo *info; GError *error = NULL; info = g_file_input_stream_query_info_finish (G_FILE_INPUT_STREAM (obj), res, &error); if (info != NULL) { loader->priv->total = g_file_info_get_attribute_uint64 (info, G_FILE_ATTRIBUTE_STANDARD_SIZE); } else { loader->priv->total = 0; rb_debug ("couldn't get size of source file: %s", error->message); g_clear_error (&error); } g_input_stream_read_async (G_INPUT_STREAM (loader->priv->stream), loader->priv->chunk, loader->priv->chunk_size, G_PRIORITY_DEFAULT, loader->priv->cancel, stream_read_async_cb, loader); }