From ed24614acf367312d23c7cf408b3972d9a4c2865 Mon Sep 17 00:00:00 2001 From: "Dirk-Jan C. Binnema" Date: Fri, 12 May 2006 16:18:55 +0000 Subject: [PATCH] * Update the documentation, in particular about ModestAccountMgr pmo-trunk-r56 --- docs/design/modest-account-mgr.png | Bin 0 -> 5526 bytes docs/design/modest-design.tex | 67 ++++++++++++++++++++++++++++++------ 2 files changed, 57 insertions(+), 10 deletions(-) create mode 100644 docs/design/modest-account-mgr.png diff --git a/docs/design/modest-account-mgr.png b/docs/design/modest-account-mgr.png new file mode 100644 index 0000000000000000000000000000000000000000..e94ebb056d7cfe6fe2104552bf33550e628d0e20 GIT binary patch literal 5526 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 literal 0 HcmV?d00001 diff --git a/docs/design/modest-design.tex b/docs/design/modest-design.tex index f38a0fa..2ed4669 100644 --- a/docs/design/modest-design.tex +++ b/docs/design/modest-design.tex @@ -1,6 +1,9 @@ % % modest-design.tex -% Time-stamp: <2006-05-04 17:21:51 (djcb)> +% Time-stamp: <2006-05-12 18:47:13 (djcb)> +% +\documentclass{book} +\usepackage{graphics} % macros \newcommand{\modest}{{\tt modest} } @@ -14,8 +17,6 @@ \newcommand{\gtk}{{\sc GTK+} } \newcommand{\gconf}{{\sc GConf} } - -\documentclass{book} \author{Dirk-Jan C. Binnema\\\djcbemail} \title{{\huge \modest}\\ an e-mail program for small devices\\ @@ -75,14 +76,14 @@ For \modest, the following: \end{itemize} - - - \chapter{Design} In this chapter, we'll discuss the design of various parts of \modest. We'll not go into the details of various APIs. Please consult the documentation generated from the source code ({\tt gtk-doc}) for that. +There are {\tt \#define}-definitions for many account keys in {\tt + modest-account-keys.h}. + \section {Configuration} Configuration is the part of \modest that deals with storing all settings. While the design allows for alternative implementations, currently @@ -108,16 +109,62 @@ In practice, the following types are available: \subsection{Definitions} \begin{itemize} - \item A {\bf transport} describes the connection information (servername, - username, password etc.) for a transport server; - \item A {\bf store} describes the connection information for a store server; - \item An {\bf account} is a named entity consisting of a {\bf store} and a + \item An {\bf account} is a named entity consisting of a {\bf store} and a {\bf transport}.\footnote{For our mobile use-cases, the {\em transport} cannot be a static entity, but may depend on the network connection. That is however not part of Account Management, so not discussed here} + \item A {\bf server account} is account describing the connection with a + specific server. Server accounts come in two type: + \begin{itemize} + \item A {\bf transport} describes the connection information (servername, + username, password etc.) for a transport server; + \item A {\bf store} describes the connection information for a store server; + \end{itemize} +\end{itemize} + +\subsection{Code} +The functions to deal with account and server accounts are located in {\tt + ModestAccountMgr}, ie. in {\tt modest-account-mgr.[ch]}. There function to +add specific values for both, to list the available ones, etc. Please refer to +the source code documentation for details. + +\subsection{Location in configuration database} +{\em Accounts} can be found in {\tt /apps/modest/accounts}, while {\em server + accounts} can be found in {\tt /app/modest/server\_accounts}. + +The following image show an account {\em accountstest} with server accounts +{\tt mystore} and {\tt mytransport}. + +\includegraphics{modest-account-mgr.png} + +For each of the stores, there are number of parameters specified: +\begin{itemize} +\item {\tt hostname} - the place where the server resides; +\item {\tt username} - the username; +\item {\tt password} - the password; +\item {\tt proto} - the protocal for communication with this server - for + now these are the following valid values (literal strings): + \begin{itemize} + \item {\tt sendmail}; + \item {\tt smtp}; + \item {\tt pop} + \item {\tt imap}. + \end{itemize} \end{itemize} +In the {\tt modest-proto.[ch]} there are various functions to check whether +something is a valid protocol, and whether it is a transport of a store. + +Note that server accounts and accounts are relatively independent. While +accounts refer to two server accounts, these server accounts can be +used by other accounts as well. + +The reason two keep accounts and server accounts separately, is a bit of +flexibility. In mobile use-cases, quite often it's desirable to use a +network-specific smtp-server. The chosen structure makes it easy to iterate +over all smtp-servers and find the right one. + \chapter{Finding the Transport} One of the interesting topics in designing a mobile e-mail client is to deal with transports (in particular, \smtp). The reason for that is that the -- 1.7.9.5