Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/contrib/libcbor/src/cbor/callbacks.h
39488 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_CALLBACKS_H
9
#define LIBCBOR_CALLBACKS_H
10
11
#include <stdint.h>
12
13
#include "cbor/cbor_export.h"
14
#include "cbor/common.h"
15
16
#ifdef __cplusplus
17
extern "C" {
18
#endif
19
20
/** Callback prototype */
21
typedef void (*cbor_int8_callback)(void *, uint8_t);
22
23
/** Callback prototype */
24
typedef void (*cbor_int16_callback)(void *, uint16_t);
25
26
/** Callback prototype */
27
typedef void (*cbor_int32_callback)(void *, uint32_t);
28
29
/** Callback prototype */
30
typedef void (*cbor_int64_callback)(void *, uint64_t);
31
32
/** Callback prototype */
33
typedef void (*cbor_simple_callback)(void *);
34
35
/** Callback prototype */
36
typedef void (*cbor_string_callback)(void *, cbor_data, uint64_t);
37
38
/** Callback prototype */
39
typedef void (*cbor_collection_callback)(void *, uint64_t);
40
41
/** Callback prototype */
42
typedef void (*cbor_float_callback)(void *, float);
43
44
/** Callback prototype */
45
typedef void (*cbor_double_callback)(void *, double);
46
47
/** Callback prototype */
48
typedef void (*cbor_bool_callback)(void *, bool);
49
50
/** Callback bundle -- passed to the decoder */
51
struct cbor_callbacks {
52
/** Unsigned int */
53
cbor_int8_callback uint8;
54
/** Unsigned int */
55
cbor_int16_callback uint16;
56
/** Unsigned int */
57
cbor_int32_callback uint32;
58
/** Unsigned int */
59
cbor_int64_callback uint64;
60
61
/** Negative int */
62
cbor_int64_callback negint64;
63
/** Negative int */
64
cbor_int32_callback negint32;
65
/** Negative int */
66
cbor_int16_callback negint16;
67
/** Negative int */
68
cbor_int8_callback negint8;
69
70
/** Definite byte string */
71
cbor_simple_callback byte_string_start;
72
/** Indefinite byte string start */
73
cbor_string_callback byte_string;
74
75
/** Definite string */
76
cbor_string_callback string;
77
/** Indefinite string start */
78
cbor_simple_callback string_start;
79
80
/** Definite array */
81
cbor_simple_callback indef_array_start;
82
/** Indefinite array */
83
cbor_collection_callback array_start;
84
85
/** Definite map */
86
cbor_simple_callback indef_map_start;
87
/** Indefinite map */
88
cbor_collection_callback map_start;
89
90
/** Tags */
91
cbor_int64_callback tag;
92
93
/** Half float */
94
cbor_float_callback float2;
95
/** Single float */
96
cbor_float_callback float4;
97
/** Double float */
98
cbor_double_callback float8;
99
/** Undef */
100
cbor_simple_callback undefined;
101
/** Null */
102
cbor_simple_callback null;
103
/** Bool */
104
cbor_bool_callback boolean;
105
106
/** Indefinite item break */
107
cbor_simple_callback indef_break;
108
};
109
110
/** Dummy callback implementation - does nothing */
111
CBOR_EXPORT void cbor_null_uint8_callback(void *, uint8_t);
112
113
/** Dummy callback implementation - does nothing */
114
CBOR_EXPORT void cbor_null_uint16_callback(void *, uint16_t);
115
116
/** Dummy callback implementation - does nothing */
117
CBOR_EXPORT void cbor_null_uint32_callback(void *, uint32_t);
118
119
/** Dummy callback implementation - does nothing */
120
CBOR_EXPORT void cbor_null_uint64_callback(void *, uint64_t);
121
122
/** Dummy callback implementation - does nothing */
123
CBOR_EXPORT void cbor_null_negint8_callback(void *, uint8_t);
124
125
/** Dummy callback implementation - does nothing */
126
CBOR_EXPORT void cbor_null_negint16_callback(void *, uint16_t);
127
128
/** Dummy callback implementation - does nothing */
129
CBOR_EXPORT void cbor_null_negint32_callback(void *, uint32_t);
130
131
/** Dummy callback implementation - does nothing */
132
CBOR_EXPORT void cbor_null_negint64_callback(void *, uint64_t);
133
134
/** Dummy callback implementation - does nothing */
135
CBOR_EXPORT void cbor_null_string_callback(void *, cbor_data, uint64_t);
136
137
/** Dummy callback implementation - does nothing */
138
CBOR_EXPORT void cbor_null_string_start_callback(void *);
139
140
/** Dummy callback implementation - does nothing */
141
CBOR_EXPORT void cbor_null_byte_string_callback(void *, cbor_data, uint64_t);
142
143
/** Dummy callback implementation - does nothing */
144
CBOR_EXPORT void cbor_null_byte_string_start_callback(void *);
145
146
/** Dummy callback implementation - does nothing */
147
CBOR_EXPORT void cbor_null_array_start_callback(void *, uint64_t);
148
149
/** Dummy callback implementation - does nothing */
150
CBOR_EXPORT void cbor_null_indef_array_start_callback(void *);
151
152
/** Dummy callback implementation - does nothing */
153
CBOR_EXPORT void cbor_null_map_start_callback(void *, uint64_t);
154
155
/** Dummy callback implementation - does nothing */
156
CBOR_EXPORT void cbor_null_indef_map_start_callback(void *);
157
158
/** Dummy callback implementation - does nothing */
159
CBOR_EXPORT void cbor_null_tag_callback(void *, uint64_t);
160
161
/** Dummy callback implementation - does nothing */
162
CBOR_EXPORT void cbor_null_float2_callback(void *, float);
163
164
/** Dummy callback implementation - does nothing */
165
CBOR_EXPORT void cbor_null_float4_callback(void *, float);
166
167
/** Dummy callback implementation - does nothing */
168
CBOR_EXPORT void cbor_null_float8_callback(void *, double);
169
170
/** Dummy callback implementation - does nothing */
171
CBOR_EXPORT void cbor_null_null_callback(void *);
172
173
/** Dummy callback implementation - does nothing */
174
CBOR_EXPORT void cbor_null_undefined_callback(void *);
175
176
/** Dummy callback implementation - does nothing */
177
CBOR_EXPORT void cbor_null_boolean_callback(void *, bool);
178
179
/** Dummy callback implementation - does nothing */
180
CBOR_EXPORT void cbor_null_indef_break_callback(void *);
181
182
/** Dummy callback bundle - does nothing */
183
CBOR_EXPORT extern const struct cbor_callbacks cbor_empty_callbacks;
184
185
#ifdef __cplusplus
186
}
187
#endif
188
189
#endif // LIBCBOR_CALLBACKS_H
190
191