dl
dl_json_config.h
浏览该文件的文档.
1
12#pragma once
13
14#include "io/dl_log.h"
15#include "io/dl_json.h"
16#include "misc/dl_value.h"
17
18namespace dl
19{
22{
23public:
25 {
26 std::string _filename;
27 std::string _brief;
28 std::string _version;
29 std::string _author;
30 std::string _date;
31 std::string _note;
32 std::string _logFunction;
33 std::string _namespace;
34 bool _bRegisterLua = false;
35 };
36
37 struct Node
38 {
39 std::string _var; // 变量名
40 std::string _name; // 显示名
41 std::string _desc; // 描述
42 Value _value; // 值
43 };
45 {
46
47 }
48
53 bool Load(std::string_view path_name)
54 {
55 json j = Json::ParseFile(path_name);
56 if (j.is_null())
57 return false;
58
59 _root = _parse_node(j, "__root");
60 return true;
61 }
62
67 std::string GenerateCode(const GenerateParam& param);
68
74 std::string GenerateConfigUser(const std::unordered_map<std::string, std::string>& map_type = {});
75
76private:
77 Value _root;
78
80 Value _parse_node(json& j, std::string_view var);
81
83 Value _parse_value(json& j, std::string_view type);
84};
85}
bool Load(std::string_view path_name)
加载原始配置
std::string GenerateCode(const GenerateParam &param)
生成C++代码
std::string GenerateConfigUser(const std::unordered_map< std::string, std::string > &map_type={})
生成用户配置
任意类型
json格式相关
nlohmann::json json
日志系统
任意类型
json ParseFile(std::string_view path_name, bool binary=false)
从 文件 构建json对象