aboutsummaryrefslogtreecommitdiff
path: root/contrib/libcbor/doc/source/api/streaming_decoding.rst
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/libcbor/doc/source/api/streaming_decoding.rst')
-rw-r--r--contrib/libcbor/doc/source/api/streaming_decoding.rst34
1 files changed, 34 insertions, 0 deletions
diff --git a/contrib/libcbor/doc/source/api/streaming_decoding.rst b/contrib/libcbor/doc/source/api/streaming_decoding.rst
new file mode 100644
index 000000000000..d7cea38712a0
--- /dev/null
+++ b/contrib/libcbor/doc/source/api/streaming_decoding.rst
@@ -0,0 +1,34 @@
+Streaming Decoding
+=============================
+
+*libcbor* exposes a stateless decoder that reads a stream of input bytes from a buffer and invokes user-provided callbacks as it decodes the input:
+
+.. doxygenfunction:: cbor_stream_decode
+
+For example, when :func:`cbor_stream_decode` encounters a 1B unsigned integer, it will invoke the function pointer stored in ``cbor_callbacks.uint8``.
+Complete usage example: `examples/streaming_parser.c <https://github.com/PJK/libcbor/blob/master/examples/streaming_parser.c>`_
+
+The callbacks are defined by
+
+.. doxygenstruct:: cbor_callbacks
+ :members:
+
+When building custom sets of callbacks, feel free to start from
+
+.. doxygenvariable:: cbor_empty_callbacks
+
+
+Callback types definition
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+.. doxygentypedef:: cbor_int8_callback
+.. doxygentypedef:: cbor_int16_callback
+.. doxygentypedef:: cbor_int32_callback
+.. doxygentypedef:: cbor_int64_callback
+.. doxygentypedef:: cbor_simple_callback
+.. doxygentypedef:: cbor_string_callback
+.. doxygentypedef:: cbor_collection_callback
+.. doxygentypedef:: cbor_float_callback
+.. doxygentypedef:: cbor_double_callback
+.. doxygentypedef:: cbor_bool_callback