xref: /src/contrib/libcbor/doc/source/api/decoding.rst (revision 10ff414c14eef433d8157f0c17904d740693933b)
15b2defbdSEd MasteDecoding
25b2defbdSEd Maste=============================
35b2defbdSEd Maste
45b2defbdSEd MasteThe following diagram illustrates the relationship among different parts of libcbor from the decoding standpoint.
55b2defbdSEd Maste
65b2defbdSEd Maste::
75b2defbdSEd Maste
85b2defbdSEd Maste    ┌──────────────────────────────────────────────────────────────────────────────────────────────┐
95b2defbdSEd Maste    │                                                                                              │
105b2defbdSEd Maste    │                                      Client application                                      │
115b2defbdSEd Maste    │                                                                                              │
125b2defbdSEd Maste    │                                                 ┌────────────────────────────────────────────┘
135b2defbdSEd Maste    │                                                 │                     ↕
145b2defbdSEd Maste    │                                                 │ ┌──────────────────────────────────────────┐
155b2defbdSEd Maste    │                                                 │ │                                          │
165b2defbdSEd Maste    │                                                 │ │          Manipulation routines           │
175b2defbdSEd Maste    │                                                 │ │                                          │
185b2defbdSEd Maste    │           ┌─────────────────────────────────────┘ └──────────────────────────────────────────┘
195b2defbdSEd Maste    │           │     ↑    ↑                  ↑                              ↑
205b2defbdSEd Maste    │           │     │    │    ┌─────────────╫──────────┬───────────────────┴─┐
215b2defbdSEd Maste    │           │     │   CDS   │             ║          │                     │
225b2defbdSEd Maste    │           │     │    │   PDS            ║         PDS                   PDS
235b2defbdSEd Maste    │           │     ↓    ↓    ↓             ↓          ↓                     ↓
245b2defbdSEd Maste    │           │ ┌─────────────────┐   ┌────────────────────┐   ┌────────────────────────────┐
255b2defbdSEd Maste    │           │ │                 │   │                    │   │                            │
265b2defbdSEd Maste    │           │ │  Custom driver  │ ↔ │  Streaming driver  │ ↔ │       Default driver       │ ↔ CD
275b2defbdSEd Maste    │           │ │                 │   │                    │   │                            │
285b2defbdSEd Maste    └───────────┘ └─────────────────┘   └────────────────────┘   └────────────────────────────┘
295b2defbdSEd Maste          ↕                ↕                        ↕                           ↕
305b2defbdSEd Maste    ┌──────────────────────────────────────────────────────────────────────────────────────────────┐
315b2defbdSEd Maste    │                                                                                              │
325b2defbdSEd Maste    │                            Stateless event─driven decoder                                    │
335b2defbdSEd Maste    │                                                                                              │
345b2defbdSEd Maste    └──────────────────────────────────────────────────────────────────────────────────────────────┘
355b2defbdSEd Maste
365b2defbdSEd Maste                  (PSD = Provided Data Structures, CDS = Custom Data Structures)
375b2defbdSEd Maste
385b2defbdSEd MasteThis section will deal with the API that is labeled as the "Default driver" in the diagram. That is, routines that
395b2defbdSEd Mastedecode complete libcbor data items
405b2defbdSEd Maste
415b2defbdSEd Maste.. doxygenfunction:: cbor_load
425b2defbdSEd Maste
435b2defbdSEd MasteAssociated data structures
445b2defbdSEd Maste~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
455b2defbdSEd Maste
465b2defbdSEd Maste.. doxygenenum:: cbor_error_code
475b2defbdSEd Maste
485b2defbdSEd Maste.. doxygenstruct:: cbor_load_result
495b2defbdSEd Maste    :members:
505b2defbdSEd Maste
515b2defbdSEd Maste.. doxygenstruct:: cbor_error
525b2defbdSEd Maste    :members:
535b2defbdSEd Maste
54