8 #ifndef SCARAB_PARAM_BASE_HH_ 9 #define SCARAB_PARAM_BASE_HH_ 37 virtual param_ptr_t clone()
const;
38 virtual param_ptr_t move_clone();
40 virtual bool is_null()
const;
41 virtual bool is_value()
const;
42 virtual bool is_array()
const;
43 virtual bool is_node()
const;
45 virtual bool has_subset(
const param& a_subset )
const;
62 const param& operator[](
unsigned a_index )
const;
65 param& operator[](
unsigned a_index );
69 const param& operator[](
const std::string& a_name )
const;
72 param& operator[](
const std::string& a_name );
77 std::string get_value(
const std::string& a_name,
const std::string& a_default )
const;
78 std::string get_value(
const std::string& a_name,
const char* a_default )
const;
82 template<
typename XValType >
83 XValType get_value(
const std::string& a_name, XValType a_default )
const;
88 std::string get_value(
unsigned a_index,
const std::string& a_default )
const;
89 std::string get_value(
unsigned a_index,
const char* a_default )
const;
93 template<
typename XValType >
94 XValType get_value(
unsigned a_index, XValType a_default )
const;
96 void merge(
const param& a_param );
static unsigned s_indent_level
SCARAB_API std::ostream & operator<<(std::ostream &out, const param_array &a_value)
std::unique_ptr< param > param_ptr_t
std::string to_string(std::uint64_t x)