Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/contrib/libcbor/src/cbor/streaming.h
39507 views
1
/*
2
* Copyright (c) 2014-2020 Pavel Kalvoda <[email protected]>
3
*
4
* libcbor is free software; you can redistribute it and/or modify
5
* it under the terms of the MIT license. See LICENSE for details.
6
*/
7
8
#ifndef LIBCBOR_STREAMING_H
9
#define LIBCBOR_STREAMING_H
10
11
#include "callbacks.h"
12
#include "cbor/cbor_export.h"
13
#include "cbor/common.h"
14
15
#ifdef __cplusplus
16
extern "C" {
17
#endif
18
19
/** Stateless decoder
20
*
21
* Will try parsing the \p source and will invoke the appropriate callback on
22
* success. Decodes one item at a time. No memory allocations occur.
23
*
24
* @param source Input buffer
25
* @param source_size Length of the buffer
26
* @param callbacks The callback bundle
27
* @param context An arbitrary pointer to allow for maintaining context.
28
*/
29
_CBOR_NODISCARD CBOR_EXPORT struct cbor_decoder_result cbor_stream_decode(
30
cbor_data source, size_t source_size,
31
const struct cbor_callbacks* callbacks, void* context);
32
33
#ifdef __cplusplus
34
}
35
#endif
36
37
#endif // LIBCBOR_STREAMING_H
38
39