Path: blob/main/contrib/libcbor/src/cbor/internal/builder_callbacks.h
39566 views
/*1* Copyright (c) 2014-2020 Pavel Kalvoda <[email protected]>2*3* libcbor is free software; you can redistribute it and/or modify4* it under the terms of the MIT license. See LICENSE for details.5*/67#ifndef LIBCBOR_BUILDER_CALLBACKS_H8#define LIBCBOR_BUILDER_CALLBACKS_H910#include "../callbacks.h"11#include "cbor/common.h"12#include "stack.h"1314#ifdef __cplusplus15extern "C" {16#endif1718/** High-level decoding context */19struct _cbor_decoder_context {20/** Callback creating the last item has failed */21bool creation_failed;22/** Stack expectation mismatch */23bool syntax_error;24cbor_item_t *root;25struct _cbor_stack *stack;26};2728/** Internal helper: Append item to the top of the stack while handling errors.29*/30void _cbor_builder_append(cbor_item_t *item, struct _cbor_decoder_context *ctx);3132void cbor_builder_uint8_callback(void *, uint8_t);3334void cbor_builder_uint16_callback(void *, uint16_t);3536void cbor_builder_uint32_callback(void *, uint32_t);3738void cbor_builder_uint64_callback(void *, uint64_t);3940void cbor_builder_negint8_callback(void *, uint8_t);4142void cbor_builder_negint16_callback(void *, uint16_t);4344void cbor_builder_negint32_callback(void *, uint32_t);4546void cbor_builder_negint64_callback(void *, uint64_t);4748void cbor_builder_string_callback(void *, cbor_data, uint64_t);4950void cbor_builder_string_start_callback(void *);5152void cbor_builder_byte_string_callback(void *, cbor_data, uint64_t);5354void cbor_builder_byte_string_start_callback(void *);5556void cbor_builder_array_start_callback(void *, uint64_t);5758void cbor_builder_indef_array_start_callback(void *);5960void cbor_builder_map_start_callback(void *, uint64_t);6162void cbor_builder_indef_map_start_callback(void *);6364void cbor_builder_tag_callback(void *, uint64_t);6566void cbor_builder_float2_callback(void *, float);6768void cbor_builder_float4_callback(void *, float);6970void cbor_builder_float8_callback(void *, double);7172void cbor_builder_null_callback(void *);7374void cbor_builder_undefined_callback(void *);7576void cbor_builder_boolean_callback(void *, bool);7778void cbor_builder_indef_break_callback(void *);7980#ifdef __cplusplus81}82#endif8384#endif // LIBCBOR_BUILDER_CALLBACKS_H858687