Mikkel Kamstrup Erlandsen wrote:
2006/11/28, Jamie McCracken <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>:


    As for live queries, I dont like dynamic interfaces and in tracker we
    will simply take a live_query_id as a param and use dbus signal
    filtering to listen for changes to that specific ID



You mean that the client app will have to do dbus match rules, no? I see that this would work, but it also feels counter intuitive, and all experience tells me that this should be avoided in an api.

Why not use temporary dbus objects instead? That will also wrap easier in a toolkit client object. Then you have the search engine live interface:

method org.freedesktop.search.live.PrepareQuery(args) : returns a dbus path to the query object

yes that will do - I was worried the existing interface would be extended dynamically but yeah using a separate interface will avoid that


The query object has the interface org.freedesktop.search.Query something like:

  method org.freedesktop.search.Query.Execute (args)
  method org.freedesktop.search.Query.HitCount (args)
  method org.freedesktop.search.Query.Close (args)

  signal org.freedesktop.search.Query.HitAdd (args)
  signal org.freedesktop.search.Query.HitRemove (args)
  signal org.freedesktop.search.Query.HitModify (args)

This is a really rough draft, but I hope the point is clear enough...


yeah thats fine.  (not sure you need a HitModify though?)

HitAdd - only fired when a new file is created that matches the query
HitRemove - only fired when a file is deleted that matches the query

For a file Move - it generates a remove and an add signal.


--
Mr Jamie McCracken
http://jamiemcc.livejournal.com/

_______________________________________________
xdg mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/xdg

Reply via email to