2006/11/29, 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><br>&gt;<br>&gt; Why is it that you are against a dbus object per query? That way you<br>&gt; listen to signal on the object directly and avoid message filtering (and<br>&gt; possible flooding of the bus). More over a a dedicated object is also
<br>&gt; easier to bind in the toolkits (as far as I can see atleast).<br><br>the bus is shared so if you have a separate object dbus is effectively<br>filtering on that object - its no different from setting up a manual<br>
match rule to filter on a QueryID<br><br><br><br>&gt;<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; Heres my suggested spec for Wasabi:<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; ServiceTypes is an array of service names like &quot;Files&quot;, &quot;Emails&quot; etc<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; need to define full list)<br>&gt;<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; method PrepareQuery (ServiceTypes as, query s) return ID i<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; method ExecuteQuery (int ID, offset i, limit i) return as (array of<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; uri's)
<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; method QueryHitCount (int ID) return i<br>&gt;<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; signal QueryHitAdd (ID i, uri s)<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; signal QueryHitRemove (ID i, uri s)<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; The above is easy to implement and should cover the simple ground
<br>&gt;<br>&gt;<br>&gt;<br>&gt; Do I understand correctly in that you mean to use this interface<br>&gt; directly with no toolkit bindings? (I'm not objecting - just inquiring).<br><br>yes - toolkits already integrate with dbus unless I misuderstood what
<br>you mean?<br><br>toolkits can further abstract and avoid dbus'isms like libtracker but<br>they are not strictly necessary</blockquote><div><br><br>You understood correctly. You mean to let apps use that interface directly. I was asking if you intended to wrap that api in a toolkit&nbsp; dependent client (which you didn't).
<br><br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">&gt;<br>&gt; What about snippets and file/object properties?<br><br>yes true - we can add those
<br><br>&gt;<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; For nautilus also needed is extra methods for searching files by mime<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; types and/or location - these can be separate methods as tracker<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; implements them (mime and location dont have a meaning with non-file
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; entities)<br>&gt;<br>&gt;<br>&gt;<br>&gt; What about Konq? Does it have any special needs?<br><br>right we need to get all the *simple* requirements from apps so that the<br>initial searech interface is useful (if not all powerful). If it can
<br>address 90%+ of needs then it will succeed.</blockquote><div><br><br>Ok. My opinion is this:<br><br>Create a simple api for direct use. No live queries, just batch deliverance and support for paging (much like the current spec on WasabiSearchSimple). The question on whether to standardize on a simple query (non-xml, maybe beagle-like syntax) language as well remains open.
<br></div><br><br>When we have the simple interface in place, create a &quot;live&quot; (or &quot;full&quot;) interface to support live queries and what not. This includes a XML query language. This interface is intended for toolkit bindings (think native Client objects in QT/Gobject), but should be usable without these.
<br><br><br>Cheers,<br>Mikkel<br></div>