I'll add Since annotations ASAP
El dic 23, 2011 11:31 a.m., "Vivien Malerba" <[email protected]> escribió:

>
>
> On 22 December 2011 23:21, Daniel Espinosa <[email protected]> wrote:
>
>> Find attached a patch (ready to commit) to implement missing invokers
>> on GdaDataModel. This allows vala extensions to implement GdaDataModel
>> with no problems.
>>
>> 2011/12/22 Daniel Espinosa <[email protected]>:
>> > I'm implementing GdaDataModel interface in an Gee Collection object
>> > called GdaData.DataModelIterable, but I can't implement the following
>> > virtual functions:
>> >
>> >                [NoWrapper]
>> >                public abstract bool i_get_notify ();
>> >                [NoWrapper]
>> >                public abstract bool i_iter_at_row (Gda.DataModelIter
>> iter, int row);
>> >                [NoWrapper]
>> >                public abstract bool i_iter_next (Gda.DataModelIter
>> iter);
>> >                [NoWrapper]
>> >                public abstract bool i_iter_prev (Gda.DataModelIter
>> iter);
>> >                [NoWrapper]
>> >                public abstract bool i_iter_set_value (Gda.DataModelIter
>> iter, int
>> > col, GLib.Value value) throws GLib.Error;
>> >                [NoWrapper]
>> >                public abstract void i_set_notify (bool
>> do_notify_changes);
>> >
>> > These functions are declared *abstract* because they must be
>> > implemented and with the annotation [NoWrapper] because they don't
>> > have any function in the public header to call like the for example
>> > get_n_rows ();
>> >
>> >                [CCode (vfunc_name = "i_get_n_rows")]
>> >                public abstract int get_n_rows ();
>> >
>> > In the last function implementors must declare a get_n_rows ().
>> >
>> > In the case of the above functions they have the following problems:
>> >
>> > * i_iter_at_row, i_iter_next, i_iter_prev are functions that are
>> > implemented on a separated object GdaDataModelIter, then how to deal
>> > with that in C? Is this correct or can be modified in future version?
>> >
>> >
>> >  * i_set_notify and  i_get_notify they have a function that wrap it
>> > but they are "incompatible" because require different number of
>> > arguments and return type: freeze() and thaw (), initially I've
>> > declared them in GIR  as the one to call for the virtual functions but
>> > fails when Vala try to use them. Now they are declared as above with
>> > no invoker and with [NoWrapper] in Vala bindings.
>> >
>> > To fix all this problems is possible to add the following functions to
>> > the GdaDataModel just to have an invoker as a function to call and
>> > make easy to Vala (and maybe other languages) to implement
>> > GdaDataModel interface:
>> >
>> > gda_data_model_get_notify (GdaDataModel*)
>> > gda_data_model_set_notify (GdaDataModel*, gboolean)
>> > gda_data_model_iter_at_row (GdaDataModel*, GdaDataModelIter*, int)
>> > gda_data_model_iter_next (GdaDataModel*, GdaDataModelIter*)
>> > gda_data_model_iter_prev (GdaDataModel*, GdaDataModelIter*)
>> >
>> > Please tell me if this is correct in order to implement them and
>> > continue on Vala extensions.
>> >
>> > --
>> > Trabajar, la mejor arma para tu superación
>> > "de grano en grano, se hace la arena" (R) (en trámite, pero para los
>> > cuates: LIBRE
>>
>>
>
> The patch does not apply to the current git master branch, but I think you
> can apply it yourself; please also add the "Since: 5.2.0" in each new
> function's comment.
>
> Thanks,
>
> Vivien
>
_______________________________________________
gnome-db-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/gnome-db-list

Reply via email to