/** \mainpage Akonadi, the KDE PIM storage framework These pages are a combination of design and api documentation. If you are looking for general information go to the Overview section. For detailed information and/or api-dox on any of the packages go to the package main page, either from the menu on the left or from the Building blocks section below. \section akonadi_overview Overview - Design and Concepts - \ref akonadi_design_communication - \ref akonadi_usage - Website - Wiki - \ref akonadi_todos \section akonadi_building_blocks Building Blocks - Domain-specific libraries: - Contacts (KABC) - MIME Messages (KMime) - Events, todo items and journal entries (KCal) - Core library (libakonadi) \authors Tobias König , Volker Krause \licenses \lgpl */ /** \page akonadi_design_communication Communication Schemas \section akonadi_design_communication_search Search The sequence diagrams below show how general communication is done:
\image html akonadi_client_search_small.png "Akonadi Communication Schema"
\image html akonadi_client_search.png "Akonadi Communication Schema"
\image latex akonadi_client_search.eps "Akonadi Communication Schema" height=5cm 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 \verbatim 0x8053c68 8 LIST "" "res1/foo/%" 0x8053c68 * LIST (\MimeTypes[text/calendar,directory/inode]) "/" "res1/foo/bar" \endverbatim - Fetch \verbatim 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: ... \endverbatim \section akonadi_design_communication_agent Agent Handling
\image html akonadi_agent_handling_small.png "Akonadi Agent Handling"
\image html akonadi_agent_handling.png "Akonadi Agent Handling"
\image latex akonadi_agent_handling.eps "Akonadi Agent Handling" height=4cm */ /** \page akonadi_overview_uml Akonadi Overview This overview does not show a complete class or collaboration diagram, it is rather meant to show the big picture.
\image html akonadi_overview_uml_small.png "Akonadi Overview"
\image html akonadi_overview_uml.png "Akonadi Overview"
*/ // DOXYGEN_NAME=kdepim-runtime // DOXYGEN_ENABLE=YES