Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/contrib/libcbor/src/cbor.h
39478 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_H_
9
#define LIBCBOR_H_
10
11
#include "cbor/common.h"
12
#include "cbor/data.h"
13
14
#include "cbor/arrays.h"
15
#include "cbor/bytestrings.h"
16
#include "cbor/floats_ctrls.h"
17
#include "cbor/ints.h"
18
#include "cbor/maps.h"
19
#include "cbor/strings.h"
20
#include "cbor/tags.h"
21
22
#include "cbor/callbacks.h"
23
#include "cbor/cbor_export.h"
24
#include "cbor/encoding.h"
25
#include "cbor/serialization.h"
26
#include "cbor/streaming.h"
27
28
#ifdef __cplusplus
29
extern "C" {
30
#endif
31
32
/*
33
* ============================================================================
34
* High level decoding
35
* ============================================================================
36
*/
37
38
/** Loads data item from a buffer
39
*
40
* @param source The buffer
41
* @param source_size
42
* @param[out] result Result indicator. #CBOR_ERR_NONE on success
43
* @return Decoded CBOR item. The item's reference count is initialized to one.
44
* @return `NULL` on failure. In that case, \p result contains the location and
45
* description of the error.
46
*/
47
_CBOR_NODISCARD CBOR_EXPORT cbor_item_t* cbor_load(
48
cbor_data source, size_t source_size, struct cbor_load_result* result);
49
50
/** Take a deep copy of an item
51
*
52
* All items this item points to (array and map members, string chunks, tagged
53
* items) will be copied recursively using #cbor_copy. The new item doesn't
54
* alias or point to any items from the original \p item. All the reference
55
* counts in the new structure are set to one.
56
*
57
* @param item item to copy
58
* @return Reference to the new item. The item's reference count is initialized
59
* to one.
60
* @return `NULL` if memory allocation fails
61
*/
62
_CBOR_NODISCARD CBOR_EXPORT cbor_item_t* cbor_copy(cbor_item_t* item);
63
64
#if CBOR_PRETTY_PRINTER
65
#include <stdio.h>
66
67
CBOR_EXPORT void cbor_describe(cbor_item_t* item, FILE* out);
68
#endif
69
70
#ifdef __cplusplus
71
}
72
#endif
73
74
#endif // LIBCBOR_H_
75
76