2006/11/30, Jamie McCracken &lt;<a href="mailto:jamiemcc@blueyonder.co.uk">jamiemcc@blueyonder.co.uk</a>&gt;:<div><span class="gmail_quote"></span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Mikkel Kamstrup Erlandsen wrote:<br>&gt; 2006/11/28, Jamie McCracken &lt;<a href="mailto:jamiemcc@blueyonder.co.uk">jamiemcc@blueyonder.co.uk</a><br>&gt; &lt;mailto:<a href="mailto:jamiemcc@blueyonder.co.uk">jamiemcc@blueyonder.co.uk
</a>&gt;&gt;:<br>&gt;<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; As for live queries, I dont like dynamic interfaces and in tracker we<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; will simply take a live_query_id as a param and use dbus signal<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; filtering to listen for changes to that specific ID
<br>&gt;<br>&gt;<br>&gt;<br>&gt; You mean that the client app will have to do dbus match rules, no? I see<br>&gt; that this would work, but it also feels counter intuitive, and all<br>&gt; experience tells me that this should be avoided in an api.
<br>&gt;<br>&gt; Why not use temporary dbus objects instead? That will also wrap easier<br>&gt; in a toolkit client object. Then you have the search engine live interface:<br>&gt;<br>&gt;&nbsp;&nbsp; method org.freedesktop.search.live.PrepareQuery
(args) : returns a dbus<br>&gt; path to the query object<br><br>yes that will do - I was worried the existing interface would be<br>extended dynamically but yeah using a separate interface will avoid that<br><br>&gt;<br>&gt; The query object has the interface 
org.freedesktop.search.Query<br>&gt; something like:<br>&gt;<br>&gt;&nbsp;&nbsp; method org.freedesktop.search.Query.Execute (args)<br>&gt;&nbsp;&nbsp; method org.freedesktop.search.Query.HitCount (args)<br>&gt;&nbsp;&nbsp; method org.freedesktop.search.Query.Close
 (args)<br>&gt;<br>&gt;&nbsp;&nbsp; signal org.freedesktop.search.Query.HitAdd (args)<br>&gt;&nbsp;&nbsp; signal org.freedesktop.search.Query.HitRemove (args)<br>&gt;&nbsp;&nbsp; signal org.freedesktop.search.Query.HitModify (args)<br>&gt;<br>&gt; This is a really rough draft, but I hope the point is clear enough...
<br>&gt;<br><br>yeah thats fine.&nbsp;&nbsp;(not sure you need a HitModify though?)<br><br>HitAdd - only fired when a new file is created that matches the query<br>HitRemove - only fired when a file is deleted that matches the query
<br><br>For a file Move - it generates a remove and an add signal.</blockquote><div><br>The HitModify was a bit arbitarary... I was thinking that the metadata for the hit could change. Resizing and image, changing mimetype, snippet text changes... This could still be solved by add/remove signals though... 
<br></div><br></div>Cheers,<br>Mikkel<br>