[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