[Kde-pim] Akonadi design questions

Volker Krause vkrause at kde.org
Fri Jun 1 07:55:29 BST 2007


On Wednesday 30 May 2007 23:52:10 Christian Schaarschmidt wrote:
> I have put toghether yet another overview for akonadi I had planed to
> attach. Unfortunately umbrello will no longer display the diagram and the
> .png is to big as attachment. Does anyone have an idea how I could convince
> umbrello to display it again?
>
> Now to the akonadi questions ...
>
> there are some aspect I still don't understand, I hope someone on the list
> can help providing answers to these questions:
>
> - What is the idea behind SearchProvider?
> MessageSearchProvider does listen to notifications and updates the meta
> data accordingly. I guess this is not in eg. AppenJob to avoid code
> replication?

Search providers were part of one of the first designs and were removed some 
time ago already. Unfortunately some of their obsolete infrastructure has 
been used for the strigi and nepomuk feeder agents. We need clean this up.

In theory you could put this functionality in the item modifcation job 
classes, but the a separate agent makes it IMHO much more flexible and 
robust. You can easily add additional agents for your favorite desktop search 
service and if it crashs because it fails to parse some broken data it 
doesn't affect your applications.

> - how to search for messages? only Nepomuk?
> SearchProvider does not provide message specific searches,
> findMessageBySubject or something like that.

The idea so far is (IIRC we don't have code for that yet) to pass through the 
search query to strigi/nepomuk and to the resources which can do searches on 
the server (eg. ldap, imap). XESAM seems to contain a pretty comprehensive 
query language which should cover all our needs and wouldn't need any 
conversion to query strigi (or any other search service supporting it).

> -Table PersistentSearches missing
> where is PersistentSearch used?
>
> - is PersistentSearch::uids correct?
> SearchProvider does not have member queryForUids( well, I couldn't find it)
> QList<QByteArray> PersistentSearch::uids( const DataStore *store ) const
> {
>   return mProvider->queryForUids( mQuery, store );
> }

Again, this is code from the early search provider design which for some 
unknown reason is still in there...

> - reason for not having Q_CLASSINFO
> in control/SearchProviderManger, control/ProfileManger
> control/AgentManager does have it.

I think it's only strictly needed when you don't use a dedicated DBus adaptor 
class or generate the interface description from the header file.

> - QCoreApplication in SearchProvider main() vs. KApplication in Resource
> main()

See above. We probably need KApplication everywhere. I'm thinking about a 
generic agent base class/infrastructure which can be shared between the 
resources, search service feeder agents, filter agents, etc.. That would get 
rid of quite some code duplication in the control process as well.

> - purpose of AkonadiSlave::get(const KUrl & url)?
> calls ItemSerializer::serialize( item, "RFC822", tmp );
> what if item is an addressee?

RFC822 is a misleading name for the main data part of an item resulting from 
IMAP compatibility. This has still to be replaced by a constant and a less 
confusing value.

> finaly some suggestions, are there arguments against? ?:
> - listener port in the config

No, actually I would like to have the whole tcp socket optionally and use a 
unix socket per default instead. IMHO this is absolutely necessary for 
multi-user systems and security.

> - provide switch to stop akonadi_control

No, stopping/restarting still works quite unreliable, any improvements would 
be very welcome :)

Sorry for all the confusion, most of it seems to be caused by us not cleaning 
up obsolete draft implementations...

regards
Volker
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/kde-pim/attachments/20070601/62653cdf/attachment.sig>
-------------- next part --------------
_______________________________________________
kde-pim mailing list
kde-pim at kde.org
https://mail.kde.org/mailman/listinfo/kde-pim
kde-pim home page at http://pim.kde.org/


More information about the kde-pim mailing list