Re: [Vala] Interfaces and asynchronous methods
- From: Tal Hadad <tal_hd hotmail com>
- To: Vala Mail List <vala-list gnome org>
- Subject: Re: [Vala] Interfaces and asynchronous methods
- Date: Tue, 14 Aug 2012 13:57:58 +0300
"out" keyword in async method has a different approach.
See the tutorial about async method:
https://live.gnome.org/Vala/Tutorial#Asynchronous_Methods
They is there an example that look similar to yours:
async int fetch_webpage(string url, out string text) throws IOError {
// Fetch a webpage asynchronously and when ready return the
// HTTP status code and put the page contents in 'text'
[...]
text = result;
return status;
}And how to use it, and handle the output:
fetch_webpage.begin("http://www.example.com/", (obj, res) => {
try {
string text;
var status = fetch_webpage.end(res, out text);
// Result of call is in 'text' and 'status' ...
} catch (IOError e) {
// Problem ...
}
});I think this example answers your question.
Tal
Date: Tue, 14 Aug 2012 11:49:15 +0200
From: raster rastersoft com
To: eric yorba org
CC: vala-list gnome org
Subject: Re: [Vala] Interfaces and asynchronous methods
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Ok, here are the interesting pieces of the code:
interface backends : GLib.Object {
[...]
public abstract async BACKUP_RETVAL start_backup(out int64
last_backup_time);
[...]
}
private backends backend;
var rv=this.backend.start_backup(out this.last_backup_time);
BTW, Jim Nelson answered that I have to do something like this:
run_async.begin(on_run_async_completed);
/* ... */
void on_run_async(AsyncResult result, Object? source) {
int result = run_async.end(result);
}
Is this correct?
Thanks.
El 14/08/12 01:10, Eric Gregory escribió:
On Mon, Aug 13, 2012 at 4:03 PM, rastersoft <raster rastersoft com> wrote:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hi all:
I tried to define an interface with an async method, but I receive this
error in the line where I try to invoke it in an object that
implements it:
backup.vala:246.14-246.43: error: invocation of void method not allowed
as expression
Are async methods not allowed in interfaces?
Thanks.
Could you paste the code that invokes the async method in this thread?
- Eric
- --
Nos leemos
RASTER (Linux user #228804)
raster rastersoft com http://www.rastersoft.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iEYEARECAAYFAlAqHxsACgkQXEZvyfy1ha+sKgCgxRoFUf2QmxrUQVH5B4n+z21y
6UIAnA4xXKunyl1qz/GajMhKNu4kGj9w
=yxwF
-----END PGP SIGNATURE-----
_______________________________________________
vala-list mailing list
vala-list gnome org
https://mail.gnome.org/mailman/listinfo/vala-list
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]