mirror of
https://bitbucket.org/smil3y/kde-playground.git
synced 2025-02-23 18:32:51 +00:00
105 lines
4.7 KiB
Text
105 lines
4.7 KiB
Text
/**
|
|
\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
|
|
- <a href="http://pim.kde.org/akonadi">Website</a>
|
|
- <a href="http://techbase.kde.org/index.php?title=Projects/PIM/Akonadi">Wiki</a>
|
|
- \ref akonadi_todos
|
|
|
|
\section akonadi_building_blocks Building Blocks
|
|
|
|
- Domain-specific libraries:
|
|
- <a href="../../kdepimlibs-apidocs/kabc/html/index.html">Contacts (KABC)</a>
|
|
- <a href="../../kdepimlibs-apidocs/kmime/html/index.html">MIME Messages (KMime)</a>
|
|
- <a href="../../kdepimlibs-apidocs/kcal/html/index.html">Events, todo items and journal entries (KCal)</a>
|
|
- <a href="../../kdepimlibs-apidocs/akonadi/html/index.html">Core library (libakonadi)</a>
|
|
|
|
\authors Tobias König <tokoe@kde.org>, Volker Krause <vkrause@kde.org>
|
|
|
|
\licenses \lgpl
|
|
*/
|
|
|
|
|
|
/**
|
|
\page akonadi_design_communication Communication Schemas
|
|
|
|
\section akonadi_design_communication_search Search
|
|
|
|
The sequence diagrams below show how general communication is done:
|
|
|
|
<div id='akonadi_client_search_small.png' onClick="document.getElementById('akonadi_client_search_small.png').style.display='none';document.getElementById(' akonadi_client_search.png').style.display='inline';" title="Click to enlarge" >
|
|
\image html akonadi_client_search_small.png "Akonadi Communication Schema"
|
|
</div>
|
|
<div id=' akonadi_client_search.png' onClick="document.getElementById(' akonadi_client_search.png').style.display='none';document.getElementById('akonadi_client_search_small.png').style.display='inline';" style="display:none" >
|
|
\image html akonadi_client_search.png "Akonadi Communication Schema"
|
|
</div>
|
|
|
|
\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
|
|
<div id=' akonadi_agent_handling_small.png' onClick="document.getElementById(' akonadi_agent_handling_small.png').style.display='none';document.getElementById(' akonadi_agent_handling.png').style.display='inline';" title="Click to enlarge" >
|
|
\image html akonadi_agent_handling_small.png "Akonadi Agent Handling"
|
|
</div>
|
|
<div id=' akonadi_agent_handling.png' onClick="document.getElementById(' akonadi_agent_handling.png').style.display='none';document.getElementById(' akonadi_agent_handling_small.png').style.display='inline';" style="display:none" >
|
|
\image html akonadi_agent_handling.png "Akonadi Agent Handling"
|
|
</div>
|
|
|
|
\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.
|
|
|
|
<div id=' akonadi_overview_uml_small.png' onClick="document.getElementById(' akonadi_overview_uml_small.png').style.display='none';document.getElementById(' akonadi_overview_uml.png').style.display='inline';" title="Click to enlarge" >
|
|
\image html akonadi_overview_uml_small.png "Akonadi Overview"
|
|
</div>
|
|
<div id=' akonadi_overview_uml.png' onClick="document.getElementById(' akonadi_overview_uml.png').style.display='none';document.getElementById(' akonadi_overview_uml_small.png').style.display='inline';" style="display:none" >
|
|
\image html akonadi_overview_uml.png "Akonadi Overview"
|
|
</div>
|
|
|
|
|
|
*/
|
|
|
|
|
|
// DOXYGEN_NAME=kdepim-runtime
|
|
// DOXYGEN_ENABLE=YES
|