[Vala] Transfer of delegates



Hi, 

I know that there has been some discussion on this subject. Reading
through [1] and [2] I tried the following approach to pass a delegate
method to a class and to execute it there like:

public class MyClass : GLib.Object {

        public delegate void Handler ();
        
        
    public MyClass (Handler? handler) {

                this.handle = (owned)handler;
    }

    public void execute_handler () {
        if (handle !=null ) {
                handle ();
        }
    }

Now, the issue is, that passing the delegate like 

this.handle = handler 

gets me the "copying delegates is discouraged" warning but it works,
trying to transfer the ownership like in the snippet above gives me a
compiler error: "No reference to be transferred". The other option to
use:

unowned Handler this.handle = handler

gives me a "syntax error, expected ';'"

What am I missing? Any enlightenment appreciated...

Thanks 


[1] https://mail.gnome.org/archives/vala-list/2011-June/msg00061.html
[2] http://valajournal.blogspot.com/2011/06/vala-0130-released.html
-- 
tomw <tomw ubilix com>




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]