summaryrefslogtreecommitdiff
path: root/development/pim/pimpaper/backendimplementation.tex
Unidiff
Diffstat (limited to 'development/pim/pimpaper/backendimplementation.tex') (more/less context) (ignore whitespace changes)
-rw-r--r--development/pim/pimpaper/backendimplementation.tex103
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 @@
1\section{Implementation of the Backends}
2Opie Backends have implementations for XML, VCF and SQL. We can
3group the VCF and XML Backend in the File Family.
4
5\section{Locking, Journal and Visibility}
6Opie PIM encourages that all changes are made visible
7immediately and are propagated by Qt Signals by the Frontend
8but we recognize that not every Backend
9- specially the File Family - is capable of making every
10change physically available instantly or it would be too
11complex to develop this is why this feature is nice to have
12but not necessary implement by the Backend.\\
13By default changes may not be lost by concurrent access and two different
14saves. The feature to implement is called Auto-Update the Backends
15can utilize QCOP for the communication. When one Backend saves the data
16it needs to lock the access (it can use API), check if external changes
17occurred and reload the data if necessary and then save the merged changes
18and finally to give up the lock.
19The user may call reload() any time and the access needs to be locked
20for that. The Backends can use the appropriate techniques to provide
21fast and secure operation.\\
22The reload feature may be turned off for the Frontend so that a save()
23might possible override changes that occurred.
24
25\subsubsection{Journal and Out Of Memory}
26The Backend need to make sure that it is capable of surviving crashes
27and storage out of memory situation without losing data and changes.\\
28The File Family is encouraged to use the journal on a per user basis
29to keep track of changes. The journal can be applied in case of a crash.\\
30In out of disk storage situation the user needs to be informed so it might
31free space.
32
33\subsubsection{Features of the Backends}
34
35\begin{center}
36\begin{tabular}{|l|l|l|l|l|}
37\hline
38Backend & Live Update & Auto Update & Journal & Available\\ \hline
39XML & no & yes & no but SQL & after save \\ \hline
40SQL & yes & yes & yes & immediately \\ \hline
41VCF & no & no & no & never \\ \hline
42\end{tabular}
43\label{Feature of Backends}
44\end{center}
45
46\subsection{Generic Implementation}
47\subsubsection{Recurrence}
48FIXME
49\subsubsection{OPimState}
50FIXME
51\subsubsection{Reminders and Alarms}
52
53\subsection{Todo}
54\subsubsection{XML}
55
56% supported attributes
57\begin{tabular}{|l|l|}
58\hline
59Key & Possible Values \\ \hline
60Categories & Comma separated list of Integers \\ \hline
61Uid & Unique negative Integer generated by timet \\ \hline
62HasDate & 0 for false and 1 for true \\ \hline
63Completed & 1 for completed and 0 for not completed \\ \hline
64Description & Escaped multi line Text \\ \hline
65Summary & One line summary \\ \hline
66Priority & Between 0 and 5, 5 high priority \\ \hline
67DateDay & The Day for the DueDate \\ \hline
68DateMonth & The Month for the DueDate \\ \hline
69DateYear & The year for the DueDate \\ \hline
70Progress & 0,10,20,30,40,50,60,70,80,90,100 \\ \hline
71CompleteDate & YYYYMMDD formated Date \\ \hline
72StartDate & YYYYMMDD formated Date \\ \hline
73CrossReference & TODO!! \\ \hline
74State & Relates to OPimState 0-4 arre current values \\ \hline
75Alarms & YYYYMMDD:durationOfTheAlarm:sound:future
76 multiple alarams are joined with ; \\ \hline
77Reminders & Notused TODO!!! \\ \hline
78rtype & Daily, Weekly, MonthlyDay, MonthlyDate, Yearly, None\\ \hline
79rweekdays & Char OPimReccruence::Days ored together \\ \hline
80rposition & The day in the week TODO\\ \hline
81rfreq & Every n (as int) \\ \hline
82start & The creation of the recurrence in UTC time\\ \hline
83rhasenddate & 1 if the recurrence has an end \\ \hline
84enddt & The end date of the recurrence from UTC time\\ \hline
85\end{tabular}
86
87\subsubsection{VCF}
88
89
90\subsubsection{SQL}
91
92
93\subsection{Contact}
94\subsubsection{XML}
95\subsubsection{VCF}
96\subsubsection{SQL}
97
98
99\subsection{Datebook}
100\subsubsection{XML}
101\subsubsection{VCF}
102\subsubsection{SQL}
103