Re: [Multi-valued V2 (grilo) 11/12] core: Merge GrlDataMulti into GrlData
- From: Iago Toral <itoral igalia com>
- To: <grilo-list gnome org>
- Subject: Re: [Multi-valued V2 (grilo) 11/12] core: Merge GrlDataMulti into GrlData
- Date: Thu, 03 Mar 2011 09:48:15 +0000
On Thu, 03 Mar 2011 10:39:36 +0100, "Juan A." Suárez Romero
<jasuarez igalia com> wrote:
On Thu, 2011-03-03 at 09:15 +0000, Iago Toral wrote:
> We can discuss if we can get rid of some of this functions, but
that
> would change the API, so I prefer to keep it as it is, at least
for
> some
> time, after we think which functions can be removed, and what
> functions
> should be renamed.
No, it won't change the API.
What I am saying is that we should have grl_data_remove *only* but
its
implementation should be that of grl_data_remove_property and we
should
not have grl_data_remove_property, of course.
Currently we have:
void grl_data_remove (GrlData *data, GrlKeyID key);
void grl_data_remove_related_keys (GrlData *data, GrlKeyID key, guint
index);
The first one is invoking second one with index == 0.
If we want to keep the first one only, we would need to add the index
parameter, and hence changing the api.
We need to have grl_data_remove and grl_data_remove_nth, just like with
other APIs. An the point is that *both* should deal with the related
keys transparently.
>
>> > But users can still remove a specific element if they really
want:
>> > get
>> > the property with the element, and then remove the key from
that
>> > property.
>>
>> Shouldn't we remove that API from GrlProperty then?
>
> The API to remove the key in GrlProperty is there to implement the
> grl_data_remove(), which acts on single-values (i.e., the first
value
> of
> multi-valued keys).
If it is there for internal use as you suggest here, then that's
fine
with me, but then it should not be part of the public API, since as
I
said, its use by clients could break the semantics of the related
keys,
and I don't really see a good reason why they would like to use
this
instead of grl_data_remove (updated to deal with related keys)
> Of course, I can still get rid of it, as doing
>
> grl_property_remove(prop, key)
>
> is almost the same as
>
> grl_property_set (prop, key, NULL)
But this is not exactly the same, as grl_property_set would
actually
leave the key with NULL value.
Fair enough. I'll remove the function.
What function?
I am saying that I am ok with having the function as long as it is kept
private to the framework and is not part of the public API.
Iago
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]