PDI 1.7.0-alpha.2023-10-26

the PDI data interface

paraconf_wrapper.h
1/*******************************************************************************
2 * Copyright (C) 2015-2021 Commissariat a l'energie atomique et aux energies alternatives (CEA)
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of CEA nor the names of its contributors may be used to
13 * endorse or promote products derived from this software without specific
14 * prior written permission.
15 *
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22 * THE SOFTWARE.
23 ******************************************************************************/
24
29#ifndef PDI_PARACONF_WRAPPER_H_
30#define PDI_PARACONF_WRAPPER_H_
31
32#include <functional>
33#include <string>
34
35#include <paraconf.h>
36
37#include <pdi/pdi_fwd.h>
38
39namespace PDI {
40
44struct PDI_EXPORT Paraconf_wrapper {
45 PC_errhandler_t m_handler;
46
47
49
51};
52
64int PDI_EXPORT len(PC_tree_t tree);
65
78int PDI_EXPORT len(PC_tree_t tree, int dflt);
79
87long PDI_EXPORT to_long(PC_tree_t tree);
88
97long PDI_EXPORT to_long(PC_tree_t tree, long dflt);
98
106double PDI_EXPORT to_double(PC_tree_t tree);
107
116double PDI_EXPORT to_double(PC_tree_t tree, double dflt);
117
125std::string PDI_EXPORT to_string(PC_tree_t tree);
126
135std::string PDI_EXPORT to_string(PC_tree_t tree, const std::string& dflt);
136
144bool PDI_EXPORT to_bool(PC_tree_t tree);
145
154bool PDI_EXPORT to_bool(PC_tree_t tree, bool dflt);
155
156
162bool PDI_EXPORT is_list(PC_tree_t tree);
163
169bool PDI_EXPORT is_map(PC_tree_t tree);
170
176bool PDI_EXPORT is_scalar(PC_tree_t tree);
177
183void PDI_EXPORT each(PC_tree_t tree, std::function<void(PC_tree_t)> operation);
184
191void PDI_EXPORT opt_each(PC_tree_t tree, std::function<void(PC_tree_t)> operation);
192
198void PDI_EXPORT each(PC_tree_t tree, std::function<void(PC_tree_t, PC_tree_t)> operation);
199
206void PDI_EXPORT each_in_omap(PC_tree_t tree, std::function<void(PC_tree_t, PC_tree_t)> operation);
207
208} // namespace PDI
209
210#endif // PDI_PARACONF_WRAPPER_H_
Definition: array_datatype.h:38
int len(PC_tree_t tree)
Returns the length of a node.
bool is_list(PC_tree_t tree)
Checks if the tree is a list.
bool to_bool(PC_tree_t tree)
Returns the boolean value of a scalar node.
void opt_each(PC_tree_t tree, std::function< void(PC_tree_t)> operation)
Iterates and apply the provided function to all elements of a PC list or directly to the provided ele...
void each_in_omap(PC_tree_t tree, std::function< void(PC_tree_t, PC_tree_t)> operation)
Iterates and apply the provided function to all elements of a PC ordered mapping.
bool is_map(PC_tree_t tree)
Checks if the tree is a map.
double to_double(PC_tree_t tree)
Returns the floating point value of a scalar node.
void each(PC_tree_t tree, std::function< void(PC_tree_t)> operation)
Iterates and apply the provided function to all elements of a PC list.
long to_long(PC_tree_t tree)
Returns the int value of a scalar node.
bool is_scalar(PC_tree_t tree)
Checks if the tree is a scalar.
std::string to_string(PC_tree_t tree)
Returns the string content of a scalar node.
Automatically installs a paraconf error-handler that ignores errors and uninstalls it on destruction.
Definition: paraconf_wrapper.h:44
PC_errhandler_t m_handler
Definition: paraconf_wrapper.h:45