author | zecke <zecke> | 2004-08-20 19:49:57 (UTC) |
---|---|---|
committer | zecke <zecke> | 2004-08-20 19:49:57 (UTC) |
commit | a0520b8e1012bec8a2f2e7fe1d15e6fd1d38f0b0 (patch) (side-by-side diff) | |
tree | c9036b84162443550c374a7b832a40fc390490fa /development/pim/pimpaper/backendimplementation.tex | |
parent | d24c046127088eb8c2af9612043aba70fae66af6 (diff) | |
download | opie-a0520b8e1012bec8a2f2e7fe1d15e6fd1d38f0b0.zip opie-a0520b8e1012bec8a2f2e7fe1d15e6fd1d38f0b0.tar.gz opie-a0520b8e1012bec8a2f2e7fe1d15e6fd1d38f0b0.tar.bz2 |
First Draft of Opie PIM Paper
Giving an Overview and Reference for the used Attributes of
the Backends
Diffstat (limited to 'development/pim/pimpaper/backendimplementation.tex') (more/less context) (ignore whitespace changes)
-rw-r--r-- | development/pim/pimpaper/backendimplementation.tex | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/development/pim/pimpaper/backendimplementation.tex b/development/pim/pimpaper/backendimplementation.tex new file mode 100644 index 0000000..272507a --- a/dev/null +++ b/development/pim/pimpaper/backendimplementation.tex @@ -0,0 +1,103 @@ +\section{Implementation of the Backends} +Opie Backends have implementations for XML, VCF and SQL. We can +group the VCF and XML Backend in the File Family. + +\section{Locking, Journal and Visibility} +Opie PIM encourages that all changes are made visible +immediately and are propagated by Qt Signals by the Frontend +but we recognize that not every Backend +- specially the File Family - is capable of making every +change physically available instantly or it would be too +complex to develop this is why this feature is nice to have +but not necessary implement by the Backend.\\ +By default changes may not be lost by concurrent access and two different +saves. The feature to implement is called Auto-Update the Backends +can utilize QCOP for the communication. When one Backend saves the data +it needs to lock the access (it can use API), check if external changes +occurred and reload the data if necessary and then save the merged changes +and finally to give up the lock. +The user may call reload() any time and the access needs to be locked +for that. The Backends can use the appropriate techniques to provide +fast and secure operation.\\ +The reload feature may be turned off for the Frontend so that a save() +might possible override changes that occurred. + +\subsubsection{Journal and Out Of Memory} +The Backend need to make sure that it is capable of surviving crashes +and storage out of memory situation without losing data and changes.\\ +The File Family is encouraged to use the journal on a per user basis +to keep track of changes. The journal can be applied in case of a crash.\\ +In out of disk storage situation the user needs to be informed so it might +free space. + +\subsubsection{Features of the Backends} + +\begin{center} +\begin{tabular}{|l|l|l|l|l|} +\hline +Backend & Live Update & Auto Update & Journal & Available\\ \hline +XML & no & yes & no but SQL & after save \\ \hline +SQL & yes & yes & yes & immediately \\ \hline +VCF & no & no & no & never \\ \hline +\end{tabular} +\label{Feature of Backends} +\end{center} + +\subsection{Generic Implementation} +\subsubsection{Recurrence} +FIXME +\subsubsection{OPimState} +FIXME +\subsubsection{Reminders and Alarms} + +\subsection{Todo} +\subsubsection{XML} + +% supported attributes +\begin{tabular}{|l|l|} +\hline +Key & Possible Values \\ \hline +Categories & Comma separated list of Integers \\ \hline +Uid & Unique negative Integer generated by timet \\ \hline +HasDate & 0 for false and 1 for true \\ \hline +Completed & 1 for completed and 0 for not completed \\ \hline +Description & Escaped multi line Text \\ \hline +Summary & One line summary \\ \hline +Priority & Between 0 and 5, 5 high priority \\ \hline +DateDay & The Day for the DueDate \\ \hline +DateMonth & The Month for the DueDate \\ \hline +DateYear & The year for the DueDate \\ \hline +Progress & 0,10,20,30,40,50,60,70,80,90,100 \\ \hline +CompleteDate & YYYYMMDD formated Date \\ \hline +StartDate & YYYYMMDD formated Date \\ \hline +CrossReference & TODO!! \\ \hline +State & Relates to OPimState 0-4 arre current values \\ \hline +Alarms & YYYYMMDD:durationOfTheAlarm:sound:future + multiple alarams are joined with ; \\ \hline +Reminders & Notused TODO!!! \\ \hline +rtype & Daily, Weekly, MonthlyDay, MonthlyDate, Yearly, None\\ \hline +rweekdays & Char OPimReccruence::Days ored together \\ \hline +rposition & The day in the week TODO\\ \hline +rfreq & Every n (as int) \\ \hline +start & The creation of the recurrence in UTC time\\ \hline +rhasenddate & 1 if the recurrence has an end \\ \hline +enddt & The end date of the recurrence from UTC time\\ \hline +\end{tabular} + +\subsubsection{VCF} + + +\subsubsection{SQL} + + +\subsection{Contact} +\subsubsection{XML} +\subsubsection{VCF} +\subsubsection{SQL} + + +\subsection{Datebook} +\subsubsection{XML} +\subsubsection{VCF} +\subsubsection{SQL} + |