Re: [Vala] Is there an Any type in vala?
- From: Yu Feng <rainwoodman gmail com>
- To: Jürg Billeter <j bitron ch>
- Cc: vala-list gnome org
- Subject: Re: [Vala] Is there an Any type in vala?
- Date: Sat, 17 May 2008 13:40:42 -0400
Yes it will be much better.
But what about the set_data_full? Some other modifiers shall be
invented?
The following will be much more direct than the cname stuff, and more
flexible(I'll be more specific on CCodeFunc in next mail):
[CCodeFunc g_object_set_data_full(this, key, data, G.DestroyFunc) ]
public void set_data<G> (string key, G# data);
[CCodeFunc g_object_set_data(this, key, data) ]
public void set_data<weak G> (string key, G data);
class SomeClass {
[CCodeFunc g_object_unref(this)]
public DestroyFunc();
};
Three use case:
1: Use vala auto mem management:
set_data<SomeClass>("data", new SomeClass());
2: Use vala auto mem management but no ownership transfer:
set_data<weak SomeClass>("data", new SomeClass());
3: manual management:
set_data_full<weak SomeClass>("data", new SomeClass(),
SomeClass.DestroyFunc);
Yu
On Sat, 2008-05-17 at 19:21 +0200, Jürg Billeter wrote:
On Sun, 2008-05-11 at 03:39 -0400, Yu Feng wrote:
The need for an 'Any' type emerges in the following context:
Object o = new Object();
Object o1 = new Object();
string s = "string"
o.set_data("data", o1);
o.set_data("string", s);
set_data is currently declared as
set_data(string, void *);
We should bind g_object_set_data as a generic method
[CCode (cname = "g_object_set_data_full")]
public void set_data<G> (string key, G# data);
However, we don't support generic methods in Vala, yet.
Jürg
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]