* Sam Liddicott wrote, On 15/07/08 13:03:
> * Jürg Billeter wrote, On 15/07/08 11:47:
>> On Tue, 2008-07-15 at 07:55 +0100, Sam Liddicott wrote: 
>>   
>> ...
>>> The first struct I intend to wrap is struct ntvfs_ops, as that struct 
>>> define my base object; see:
>>> http://gitweb.samba.org/?p=samba.git;a=blob;f=source/ntvfs/ntvfs.h;h=5de8a8b6491cd7e0f81915907de5b4fbc8153a47;hb=v4-0-test#l43
>>>
>>> It IS a virtual method table, which a particular module has to fill in 
>>> with all the methods:
>>> http://gitweb.samba.org/?p=samba.git;a=blob;f=source/ntvfs/cifs/vfs_cifs.c;h=844fa11cc5f584df597b0c791386b07354d08c98;hb=v4-0-test#l1089
>>> but more complicatedly, along with a couple of attributes (ops.name, 
>>> ops.type).
>>> It is registered on line 1137
>>>
>>> So I don't know where to start to wrap this, to be able to tell vala 
>>> where to store the methods compatibly with samba.
>>>     
>>
>> That seems like you want support for virtual methods in compact classes
>> or maybe something like compact interfaces. 
> Yeah, interfaces did come to mind after I wrote that.
>> Not sure to what extent we
>> want to support this. If you have concrete proposals, how Vala could
>> support this without being specifically tied to how the ntvfs_ops struct
>> works, we can certainly discuss this.
>>   
> I think I am looking for some [CCode] directives that allow me to
> specify the storage of the method table and names of entries within it.
>> It should be possible to bind and use ntvfs_ops by declaring a delegate
>> for each vfunc type and adding a field for each vfunc to the bound
>> struct/class. You'd have to manually connect the delegates in some init
>> functions, then, just like in C, i.e. you can't use `override` like
>> that.
>>   
> The less exciting way :-)
>
> I think the first way was best; I like the _*_class_init to fill in
> the method table for me.
I realised that I had misunderstood some vala docs.

I thought that only vala classes descended from glib.Object were glib
managed, but it seems that all vala classes are managed by glib.

However it's only vala-declared classes that are managed by glib; so
I'll be playing to wrap the samba structs in vapi files and see how far
I get.

Sam
_______________________________________________
Vala-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/vala-list

Reply via email to