コード例 #1
0
ファイル: gfileinputstream.c プロジェクト: msakai/ruby-gnome2
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);
}
コード例 #2
0
ファイル: hash-file.c プロジェクト: tuhaihe/gtkhash
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);
}
コード例 #3
0
ファイル: rb-chunk-loader.c プロジェクト: bilboed/rhythmbox
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);
}