source: trunk/libtransmission/variant-common.h

Last change on this file was 14724, checked in by jordan, 5 years ago

use '#pragma once' instead of #ifndef..#define..#endif guards

  • Property svn:keywords set to Date Rev Author Id
File size: 2.1 KB
Line 
1/*
2 * This file Copyright (C) 2008-2014 Mnemosyne LLC
3 *
4 * It may be used under the GNU GPL versions 2 or 3
5 * or any future license endorsed by Mnemosyne LLC.
6 *
7 * $Id: variant-common.h 14724 2016-03-29 16:37:21Z mikedld $
8 */
9
10#ifndef __LIBTRANSMISSION_VARIANT_MODULE__
11 #error only libtransmission/variant-*.c should #include this header.
12#endif
13
14#pragma once
15
16typedef void (*VariantWalkFunc)(const tr_variant * val, void * user_data);
17
18struct VariantWalkFuncs
19{
20  VariantWalkFunc intFunc;
21  VariantWalkFunc boolFunc;
22  VariantWalkFunc realFunc;
23  VariantWalkFunc stringFunc;
24  VariantWalkFunc dictBeginFunc;
25  VariantWalkFunc listBeginFunc;
26  VariantWalkFunc containerEndFunc;
27};
28
29void
30tr_variantWalk (const tr_variant               * top,
31                const struct VariantWalkFuncs  * walkFuncs,
32                void                           * user_data,
33                bool                             sort_dicts);
34
35void tr_variantToBufJson (const tr_variant * top, struct evbuffer * buf, bool lean);
36
37void tr_variantToBufBenc (const tr_variant * top, struct evbuffer * buf);
38
39void tr_variantInit (tr_variant * v, char type);
40
41int tr_jsonParse (const char    * source, /* Such as a filename. Only when logging an error */
42                  const void    * vbuf,
43                  size_t          len,
44                  tr_variant    * setme_benc,
45                  const char   ** setme_end);
46
47/** @brief Private function that's exposed here only for unit tests */
48int tr_bencParseInt (const uint8_t *  buf,
49                     const uint8_t *  bufend,
50                     const uint8_t ** setme_end,
51                     int64_t *        setme_val);
52
53/** @brief Private function that's exposed here only for unit tests */
54int tr_bencParseStr (const uint8_t *  buf,
55                     const uint8_t *  bufend,
56                     const uint8_t ** setme_end,
57                     const uint8_t ** setme_str,
58                     size_t *         setme_strlen);
59
60int tr_variantParseBenc (const void     * buf,
61                         const void     * end,
62                         tr_variant     * top,
63                         const char ** setme_end);
64
65
Note: See TracBrowser for help on using the repository browser.