aboutsummaryrefslogtreecommitdiff
path: root/doc/source/api/decoding.rst
diff options
context:
space:
mode:
Diffstat (limited to 'doc/source/api/decoding.rst')
-rw-r--r--doc/source/api/decoding.rst53
1 files changed, 53 insertions, 0 deletions
diff --git a/doc/source/api/decoding.rst b/doc/source/api/decoding.rst
new file mode 100644
index 000000000000..e3a41f467a15
--- /dev/null
+++ b/doc/source/api/decoding.rst
@@ -0,0 +1,53 @@
+Decoding
+=============================
+
+The following diagram illustrates the relationship among different parts of libcbor from the decoding standpoint.
+
+::
+
+ ┌──────────────────────────────────────────────────────────────────────────────────────────────┐
+ │ │
+ │ Client application │
+ │ │
+ │ ┌────────────────────────────────────────────┘
+ │ │ ↕
+ │ │ ┌──────────────────────────────────────────┐
+ │ │ │ │
+ │ │ │ Manipulation routines │
+ │ │ │ │
+ │ ┌─────────────────────────────────────┘ └──────────────────────────────────────────┘
+ │ │ ↑ ↑ ↑ ↑
+ │ │ │ │ ┌─────────────╫──────────┬───────────────────┴─┐
+ │ │ │ CDS │ ║ │ │
+ │ │ │ │ PDS ║ PDS PDS
+ │ │ ↓ ↓ ↓ ↓ ↓ ↓
+ │ │ ┌─────────────────┐ ┌────────────────────┐ ┌────────────────────────────┐
+ │ │ │ │ │ │ │ │
+ │ │ │ Custom driver │ ↔ │ Streaming driver │ ↔ │ Default driver │ ↔ CD
+ │ │ │ │ │ │ │ │
+ └───────────┘ └─────────────────┘ └────────────────────┘ └────────────────────────────┘
+ ↕ ↕ ↕ ↕
+ ┌──────────────────────────────────────────────────────────────────────────────────────────────┐
+ │ │
+ │ Stateless event─driven decoder │
+ │ │
+ └──────────────────────────────────────────────────────────────────────────────────────────────┘
+
+ (PSD = Provided Data Structures, CDS = Custom Data Structures)
+
+This section will deal with the API that is labeled as the "Default driver" in the diagram. That is, routines that
+decode complete libcbor data items
+
+.. doxygenfunction:: cbor_load
+
+Associated data structures
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+.. doxygenenum:: cbor_error_code
+
+.. doxygenstruct:: cbor_load_result
+ :members:
+
+.. doxygenstruct:: cbor_error
+ :members:
+