1/* 2 * Copyright (c) 2014-2020 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#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 16extern "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