cbor.h revision 1.1
1/* 2 * Copyright (c) 2014-2017 Pavel Kalvoda <me@pavelkalvoda.com> 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 9#ifndef LIBCBOR_H_ 10#define LIBCBOR_H_ 11 12#include "cbor/data.h" 13#include "cbor/common.h" 14 15#include "cbor/arrays.h" 16#include "cbor/bytestrings.h" 17#include "cbor/floats_ctrls.h" 18#include "cbor/ints.h" 19#include "cbor/maps.h" 20#include "cbor/strings.h" 21#include "cbor/tags.h" 22 23#include "cbor/encoding.h" 24#include "cbor/serialization.h" 25#include "cbor/callbacks.h" 26#include "cbor/streaming.h" 27 28#ifdef __cplusplus 29extern "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 result[out] Result indicator. #CBOR_ERR_NONE on success 43 * @return **new** CBOR item or `NULL` on failure. In that case, \p result contains location and description of the error. 44 */ 45cbor_item_t * cbor_load(cbor_data source, 46 size_t source_size, 47 struct cbor_load_result * result); 48 49/** Deep copy of an item 50 * 51 * All the reference counts in the new structure are set to one. 52 * 53 * @param item[borrow] item to copy 54 * @return **new** CBOR deep copy 55 */ 56cbor_item_t * cbor_copy(cbor_item_t * item); 57 58#if CBOR_PRETTY_PRINTER 59#include <stdio.h> 60 61void cbor_describe(cbor_item_t * item, FILE * out); 62#endif 63 64#ifdef __cplusplus 65} 66#endif 67 68#endif //LIBCBOR_H_ 69