summaryrefslogtreecommitdiffstats
path: root/doc/src/05100-lib-contacts.md
blob: 2d38b52dd96e07cdff53d032bbfabb85955bfbcf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
## libimagcontacts

The contact library basically only creates references to the actual
vcard files, though it also can parse (via the `vobject` crate) the
information and return it from an entry directly.

The architecture of indirections is as follows:

```{.numberLines}

+--------------------------------+
|                                |
|     Store, as ContactStore     |
|                                |
+----------------+---------------+
                 |
                 | Provides access to
                 |
+----------------v---------------+
|                                |
|   (FileLock)Entry as Contact   |
|                                |
|      which is actually a:      |
|                                |
|     (FileLock)Entry as Ref     |
|                                |
+----------------+---------------+
                 |
                 | refers to
                 |
+----------------v---------------+
|                                |
|   vcard file (outside store)   |
|                                |
+----------------+---------------+
                 |
                 | contains
                 |
+----------------v---------------+
|                                |
|            vcard data          |
|                                |
+--------------------------------+

```

As the library is build upon `libimagentryref`, it does not create a new
subcollection in the store `/contacts`, but uses the infrastructure of
`libimagentryref` which automatically puts all references in `/ref`.