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
