source: trunk/libtransmission/variant-common.h @ 14521

Last change on this file since 14521 was 14521, checked in by mikedld, 6 years ago

Cut internal macro names to have equal number of underscores on each side

  • Property svn:keywords set to Date Rev Author Id
File size: 2.2 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 14521 2015-05-04 19:58:34Z mikedld $
8 */
9
10#ifndef __LIBTRANSMISSION_VARIANT_MODULE__
11 #error only libtransmission/variant-*.c should #include this header.
12#endif
13
14#ifndef _TR_VARIANT_COMMON_H_
15#define _TR_VARIANT_COMMON_H_
16
17typedef void (*VariantWalkFunc)(const tr_variant * val, void * user_data);
18
19struct VariantWalkFuncs
20{
21  VariantWalkFunc intFunc;
22  VariantWalkFunc boolFunc;
23  VariantWalkFunc realFunc;
24  VariantWalkFunc stringFunc;
25  VariantWalkFunc dictBeginFunc;
26  VariantWalkFunc listBeginFunc;
27  VariantWalkFunc containerEndFunc;
28};
29
30void
31tr_variantWalk (const tr_variant               * top,
32                const struct VariantWalkFuncs  * walkFuncs,
33                void                           * user_data,
34                bool                             sort_dicts);
35
36void tr_variantToBufJson (const tr_variant * top, struct evbuffer * buf, bool lean);
37
38void tr_variantToBufBenc (const tr_variant * top, struct evbuffer * buf);
39
40void tr_variantInit (tr_variant * v, char type);
41
42int tr_jsonParse (const char    * source, /* Such as a filename. Only when logging an error */
43                  const void    * vbuf,
44                  size_t          len,
45                  tr_variant    * setme_benc,
46                  const char   ** setme_end);
47
48/** @brief Private function that's exposed here only for unit tests */
49int tr_bencParseInt (const uint8_t *  buf,
50                     const uint8_t *  bufend,
51                     const uint8_t ** setme_end,
52                     int64_t *        setme_val);
53
54/** @brief Private function that's exposed here only for unit tests */
55int tr_bencParseStr (const uint8_t *  buf,
56                     const uint8_t *  bufend,
57                     const uint8_t ** setme_end,
58                     const uint8_t ** setme_str,
59                     size_t *         setme_strlen);
60
61int tr_variantParseBenc (const void     * buf,
62                         const void     * end,
63                         tr_variant     * top,
64                         const char ** setme_end);
65
66
67
68#endif /* _TR_VARIANT_COMMON_H_ */
Note: See TracBrowser for help on using the repository browser.