akonadi
Communication Schemas
Search
The sequence diagrams below show how general communication is done:
Akonadi Communication Schema
The item search request is probably the call which is used most often by the clients (components or applications). This call enables the client to search for a list of items of a given mime type which match a given search criterion.
In this case the client will contact the SearchProvider responsible for the mime type, in order to retrieve the list of matching UIDs. The SearchProvider already has a list of all available items of this mime type in its memory, so it can search fast and use indices for optimization.
To communicate mime type constraints in FETCH and LIST and their responses the IMAP flags mechanism is used. Unknown flags should be ignored by non-Akonadi IMAP clients, which keeps compatibility with mutt and regular KMail.
Examples:
- List
0x8053c68 8 LIST "" "res1/foo/%" 0x8053c68 * LIST (\MimeTypes[text/calendar,directory/inode]) "/" "res1/foo/bar"
- Fetch
0x8056310 7 UID FETCH 22 (UID RFC822.SIZE FLAGS BODY.PEEK[]) 0x8056310 * 1 FETCH (FLAGS (\Seen \MimeTypes[message/rfc822]) RFC822 {2450} From: Till Adam To: ...
Profile Handling
Akonadi Profile Handling
Agent Handling
Akonadi Agent Handling
KDE 4.1 API Reference