15 #include "eckit/config/LocalConfiguration.h" 16 #include "eckit/config/Parametrisation.h" 18 #include "atlas/library/config.h" 23 class Metadata :
public eckit::LocalConfiguration {
25 Metadata() : eckit::LocalConfiguration() {}
27 Metadata(
const eckit::LocalConfiguration& p ) : eckit::LocalConfiguration( p ) {}
30 using eckit::LocalConfiguration::set;
32 template <
typename ValueT>
33 Metadata&
set(
const std::string& name,
const ValueT& value ) {
34 eckit::LocalConfiguration::set( name, value );
38 using eckit::LocalConfiguration::get;
40 template <
typename ValueT>
41 ValueT
get(
const std::string& name )
const {
43 if ( not eckit::LocalConfiguration::get( name, value ) )
44 throw_not_found( name );
48 friend std::ostream& operator<<( std::ostream& s,
const Metadata& v ) {
54 void broadcast(
idx_t root );
60 size_t footprint()
const;
63 [[noreturn]]
void throw_not_found(
const std::string& )
const;
74 void atlas__Metadata__delete(
Metadata* This );
75 void atlas__Metadata__print(
Metadata* This, std::ostream* channel );
76 void atlas__Metadata__json(
Metadata* This,
char*& json,
int& size,
int& allocated );
77 int atlas__Metadata__has(
Metadata* This,
const char* name );
78 void atlas__Metadata__set_int(
Metadata* This,
const char* name,
int value );
79 void atlas__Metadata__set_long(
Metadata* This,
const char* name,
long value );
80 void atlas__Metadata__set_float(
Metadata* This,
const char* name,
float value );
81 void atlas__Metadata__set_double(
Metadata* This,
const char* name,
double value );
82 void atlas__Metadata__set_string(
Metadata* This,
const char* name,
const char* value );
83 void atlas__Metadata__set_array_int(
Metadata* This,
const char* name,
int value[],
int size );
84 void atlas__Metadata__set_array_long(
Metadata* This,
const char* name,
long value[],
int size );
85 void atlas__Metadata__set_array_float(
Metadata* This,
const char* name,
float value[],
int size );
86 void atlas__Metadata__set_array_double(
Metadata* This,
const char* name,
double value[],
int size );
88 int atlas__Metadata__get_int(
Metadata* This,
const char* name );
89 long atlas__Metadata__get_long(
Metadata* This,
const char* name );
90 float atlas__Metadata__get_float(
Metadata* This,
const char* name );
91 double atlas__Metadata__get_double(
Metadata* This,
const char* name );
92 void atlas__Metadata__get_string(
Metadata* This,
const char* name,
char* output_str,
int max_len );
93 void atlas__Metadata__get_array_int(
Metadata* This,
const char* name,
int*& value,
int& size,
int& allocated );
94 void atlas__Metadata__get_array_long(
Metadata* This,
const char* name,
long*& value,
int& size,
int& allocated );
95 void atlas__Metadata__get_array_float(
Metadata* This,
const char* name,
float*& value,
int& size,
int& allocated );
96 void atlas__Metadata__get_array_double(
Metadata* This,
const char* name,
double*& value,
int& size,
int& allocated );
Contains all atlas classes and methods.
Definition: atlas-grids.cc:33
long idx_t
Integer type for indices in connectivity tables.
Definition: config.h:42