Jürg Billeter wrote:
> On Mon, 2008-11-10 at 15:20 +0000, Martyn Russell wrote:
>> Jamie McCracken wrote:
>>> On Mon, 2008-11-03 at 15:30 +0100, Jürg Billeter wrote:
>>>
>>>> What is your opinion on my proposal to introduce a TrackerService (or
>>>> TrackerResource) class - similar to the GFile interface in GIO - and use
>>>> that throughout the API where we currently use path, uri, or service id?
>>>>
>>> the big disadvantage of this is that we end up supporting and coding in
>>> more paths through the code and more SPs - not sure if its worth it
>>> especially as in a lot of cases we will be supporting both uri and ID
>>> params where we only ever use one
>> True.
>>
>> We could actually just:
>>
>>   typedef GFile TrackerResource
>>
>> For now just to keep it something internal which can change. That way
>> APIs stay the same and we do operations on the resource (or GFile if we
>> explicitly know it is a GFile).
> 
> I don't quite understand how this would help. Either we say it's always
> a valid GFile, then we could directly use GFile in the API, however,
> this might be problematic for e-mails and possibly other resource types.
> Or we say it doesn't have to be a valid GFile, and then we won't be able
> to use any g_file_* functionality, which means that we need our own
> interface/class TrackerResource. Am I missing something?

The idea was to keep the API the same but be able to interchange what
the resource represents if we need to at a later stage with a little
more ease.

I agree with your points. I am not sure if G_IS_FILE() would actually
work for us here, if so, that could be utilised.

But ultimately you are right.

>>> The indexing calls will all be ID based except for the call to check if
>>> a file is up to date which is obviously URI driven and to get the ID for
>>> a URI
>> I just had some crazy idea for a second there about perhaps having a
>> unique ID (like an MD5SUM) for each path which is the service ID in the
>> database (instead of auto incrementing it) - so you can always get the
>> ID easily without needing extra DB look ups. Am I on crack or is this
>> work investigating? Ignore me if it is :)
> 
> I don't think that this would improve the situation a lot compared to
> just using URIs. As far as I can tell, we would have to store the hashes
> as strings as reduction to 64 bit integer is probably not sensible due
> to possible collisions (and also with 128 bit MD5 we'd have to think of
> a way to handle collisions). And if we store IDs as strings, we lose the
> performance benefit.

Yea, it would have to be an integer not a string. Oh well, :)

-- 
Regards,
Martyn
_______________________________________________
tracker-list mailing list
tracker-list@gnome.org
http://mail.gnome.org/mailman/listinfo/tracker-list

Reply via email to