Re: [Vala] Interfaces and asynchronous methods




"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]