xref: /freebsd-src/contrib/libcbor/doc/source/api/decoding.rst (revision c03c5b1c80914ec656fbee84539355d1fad68bf9)
1Decoding
2=============================
3
4The following diagram illustrates the relationship among different parts of libcbor from the decoding standpoint.
5
6::
7
8    ┌──────────────────────────────────────────────────────────────────────────────────────────────┐
9    │                                                                                              │
10    │                                      Client application                                      │
11    │                                                                                              │
12    │                                                 ┌────────────────────────────────────────────┘
13    │                                                 │                     ↕
14    │                                                 │ ┌──────────────────────────────────────────┐
15    │                                                 │ │                                          │
16    │                                                 │ │          Manipulation routines           │
17    │                                                 │ │                                          │
18    │           ┌─────────────────────────────────────┘ └──────────────────────────────────────────┘
19    │           │     ↑    ↑                  ↑                              ↑
20    │           │     │    │    ┌─────────────╫──────────┬───────────────────┴─┐
21    │           │     │   CDS   │             ║          │                     │
22    │           │     │    │   PDS            ║         PDS                   PDS
23    │           │     ↓    ↓    ↓             ↓          ↓                     ↓
24    │           │ ┌─────────────────┐   ┌────────────────────┐   ┌────────────────────────────┐
25    │           │ │                 │   │                    │   │                            │
26    │           │ │  Custom driver  │ ↔ │  Streaming driver  │ ↔ │       Default driver       │ ↔ CD
27    │           │ │                 │   │                    │   │                            │
28    └───────────┘ └─────────────────┘   └────────────────────┘   └────────────────────────────┘
29          ↕                ↕                        ↕                           ↕
30    ┌──────────────────────────────────────────────────────────────────────────────────────────────┐
31    │                                                                                              │
32    │                            Stateless event─driven decoder                                    │
33    │                                                                                              │
34    └──────────────────────────────────────────────────────────────────────────────────────────────┘
35
36                  (PSD = Provided Data Structures, CDS = Custom Data Structures)
37
38This section will deal with the API that is labeled as the "Default driver" in the diagram. That is, routines that
39decode complete libcbor data items
40
41.. doxygenfunction:: cbor_load
42
43Associated data structures
44~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
45
46.. doxygenenum:: cbor_error_code
47
48.. doxygenstruct:: cbor_load_result
49    :members:
50
51.. doxygenstruct:: cbor_error
52    :members:
53
54