"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: [email protected]
> To: [email protected]
> CC: [email protected]
> 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 <[email protected]> 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)
> [email protected] 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
> [email protected]
> https://mail.gnome.org/mailman/listinfo/vala-list
_______________________________________________
vala-list mailing list
[email protected]
https://mail.gnome.org/mailman/listinfo/vala-list