34 builder(
void *mpi_communicator_p=NULL);
37 void add_section(std::string_view name, std::shared_ptr< builder_api > section);
40 void add_header_section(std::string_view application_name);
43 void add_host_section(int32_t subsections);
48 void add_app_data_section(std::shared_ptr< builder_api > app_data);
52 void add_model_data_section(std::shared_ptr< builder_api > model_data);
56 void add_code_section(std::string tag, std::shared_ptr< builder_api >
version, std::shared_ptr< builder_api > code_details);
59 void add_code_configuration_section(std::shared_ptr< builder_api > build_details);
62 void add_exit_data_section(
int return_code, std::string status, std::shared_ptr< builder_api > status_details);
64 void add_memory_usage_section();
70 void add_mpi_section(std::string_view name,
void *mpi_comm_p,
adc_mpi_field_flags bitflags);
72 void add_workflow_section();
73 void add_workflow_children(std::vector< std::string >& child_uuids);
75 void add_slurm_section();
76 void add_slurm_section(
const std::vector< std::string >& slurmvars);
78 void add_gitlab_ci_section();
81 std::shared_ptr< builder_api > get_section(std::string_view name);
82 std::vector< std::string > get_section_names();
83 std::vector< std::string > get_field_names();
84 const field get_value(std::string_view name);
86 void add(std::string_view name,
bool value);
88 void add(std::string_view name,
char value);
90 void add(std::string_view name,
char16_t value);
92 void add(std::string_view name,
char32_t value);
95 void add(std::string_view name,
char* value);
96 void add(std::string_view name,
const char* value);
97 void add(std::string_view name, std::string& value);
98 void add(std::string_view name, std::string_view value);
101 void add_path(std::string_view name,
char* value);
102 void add_path(std::string_view name,
const char* value);
103 void add_path(std::string_view name, std::string& value);
104 void add_path(std::string_view name, std::string_view value);
107 void add_json_string(std::string_view name, std::string_view value);
109 void add_yaml_string(std::string_view name, std::string_view value);
111 void add_xml_string(std::string_view name, std::string_view value);
113 void add_number_string(std::string_view name, std::string_view value);
114#if ADC_BOOST_JSON_PUBLIC
116 void add(std::string_view name, boost::json::value value);
119 void add(std::string_view name, uint8_t value);
120 void add(std::string_view name, uint16_t value);
121 void add(std::string_view name, uint32_t value);
122 void add(std::string_view name, uint64_t value);
124 void add(std::string_view name, int8_t value);
125 void add(std::string_view name, int16_t value);
126 void add(std::string_view name, int32_t value);
127 void add(std::string_view name, int64_t value);
129 void add(std::string_view name,
float value);
130 void add(std::string_view name,
const std::complex<float>& value);
131 void add(std::string_view name,
double value);
132 void add(std::string_view name,
const std::complex<double>& value);
135 void add(std::string_view name,
const struct timeval& tv);
137 void add(std::string_view name,
const struct timespec& ts);
139 void add_epoch(std::string_view name, int64_t epoch);
142 void add_from_pointer_type(std::string_view name,
void*,
enum scalar_type t);
145 void add_array(std::string_view name,
bool value[],
size_t len, std::string_view c);
148 void add_array(std::string_view name,
const char *value,
size_t len, std::string_view c);
149 void add_array(std::string_view name,
char16_t value[],
size_t len, std::string_view c);
150 void add_array(std::string_view name,
char32_t value[],
size_t len, std::string_view c);
152 void add_array(std::string_view name, uint8_t value[],
size_t len, std::string_view c);
153 void add_array(std::string_view name, uint16_t value[],
size_t len, std::string_view c);
154 void add_array(std::string_view name, uint32_t value[],
size_t len, std::string_view c);
155 void add_array(std::string_view name, uint64_t value[],
size_t len, std::string_view c);
157 void add_array(std::string_view name, int8_t value[],
size_t len, std::string_view c);
158 void add_array(std::string_view name, int16_t value[],
size_t len, std::string_view c);
159 void add_array(std::string_view name, int32_t value[],
size_t len, std::string_view c);
160 void add_array(std::string_view name, int64_t value[],
size_t len, std::string_view c);
162 void add_array(std::string_view name,
float value[],
size_t len, std::string_view c);
164 void add_array(std::string_view name,
const std::complex<float> value[],
size_t len);
166 void add_array(std::string_view name,
double value[],
size_t len, std::string_view c);
168 void add_array(std::string_view name,
const std::complex<double> value[],
size_t len);
172 void add_array(std::string_view name,
char* value[],
size_t len, std::string_view c);
173 void add_array(std::string_view name,
const char* value[],
size_t len, std::string_view c);
174 void add_array(std::string_view name, std::string value[],
size_t len, std::string_view c);
175 void add_array(std::string_view name,
const std::string value[],
size_t len, std::string_view c);
176 void add_array(std::string_view name,
const std::vector<std::string> sv, std::string_view c);
177 void add_array(std::string_view name,
const std::set<std::string> sv, std::string_view container);
178 void add_array(std::string_view name,
const std::list<std::string> sv, std::string_view container);
181 void add_array_json_string(std::string_view name,
const std::string value[],
size_t len, std::string_view c);
183 std::string serialize();
187 boost::json::object d;
189 key_type kind(std::string_view name);
192 std::map< std::string, std::shared_ptr< builder > > sections;
194 boost::json::object flatten();
198 std::vector<std::string> get_host_env_vars();