28 void ( *declare_entries_)(
Parameters &,
const std::string &,
const std::vector<std::string> &),
29 std::vector<std::string> required_entries_,
30 const bool allow_multiple_)
32 default_value(
std::move(default_value_)),
33 declare_entries(declare_entries_),
34 required_entries(
std::move(required_entries_)),
35 allow_multiple(allow_multiple_)
39 WBAssert(declare_entries_ !=
nullptr,
"declare entries may not be a null pointer.");
58 const std::string &name,
59 const std::string &documentation)
const 66 Pointer((path +
"/description").c_str()).Set(prm.
declarations,documentation.c_str());
71 Pointer((path +
"/type").c_str()).Set(prm.
declarations,
"array");
83 Pointer((path +
"/type").c_str()).Set(prm.
declarations,
"object");
void enter_subsection(const std::string &name)
std::vector< std::string > required_entries
void write_schema(Parameters &prm, const std::string &name, const std::string &documentation) const override final
#define WBAssert(condition, message)
std::string default_value
std::string get_full_json_path(size_t max_size=std::numeric_limits< size_t >::max()) const
~PluginSystem() override final
PluginSystem(std::string default_value_, void(*declare_entries)(Parameters &, const std::string &, const std::vector< std::string > &), std::vector< std::string > required_entries, const bool allow_multiple=true)
void(* declare_entries)(Parameters &, const std::string &, const std::vector< std::string > &)
rapidjson::Document declarations