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