File: branch-data-json.cc

package info (click to toggle)
crawl 2%3A0.34.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 100,188 kB
  • sloc: cpp: 363,709; ansic: 27,765; javascript: 9,516; python: 8,463; perl: 3,293; java: 3,132; xml: 2,380; makefile: 1,835; sh: 611; objc: 250; cs: 15; sed: 9; lisp: 3
file content (38 lines) | stat: -rw-r--r-- 995 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
/**
 * @file
 * @brief Provide branch data as JSON
 */

#include "AppHdr.h"

#include "branch-data-json.h"

#include "json.h"
#include "json-wrapper.h"

#include "branch.h"
#include "stringutil.h" // to_string on Cygwin

static JsonNode *_branch_info_array()
{
    JsonNode *br(json_mkarray());
    for (branch_iterator it; it; ++it)
    {
        JsonNode *branch_info(json_mkobject());
        json_append_member(branch_info, "name", json_mkstring(it->shortname));
        json_append_member(branch_info, "long_name",
            json_mkstring(it->longname));
        json_append_member(branch_info, "levels", json_mknumber(it->numlevels));
        json_append_member(branch_info, "has_rune",
            json_mkbool(it->runes.size() > 0 ? true : false));
        json_append_element(br, branch_info);
    }
    return br;
}

string branch_data_json()
{
    JsonWrapper json(json_mkobject());
    json_append_member(json.node, "branches", _branch_info_array());
    return json.to_string();
}