NetCDF Assembler documentation 1.0.0
Loading...
Searching...
No Matches
get_values.hh
Go to the documentation of this file.
1/*
2** SEAGNAL PROJECT, 2024
3** netcdf-assembler
4** File description:
5** The header file of the get_var_value function
6*/
13#include <nc_assembler.hh>
14
15#ifndef GET_VALUES_HH_
16 #define GET_VALUES_HH_
17
27var_type get_invalid_value(file_information_t & in_s_file, variable_information_t & in_s_var,
28 size_t *in_ai_count, size_t *in_ai_start);
29
38var_type get_byte_value(file_information_t & in_s_file, variable_information_t & in_s_var,
39 size_t *in_ai_count, size_t *in_ai_start);
40
49var_type get_char_value(file_information_t & in_s_file, variable_information_t & in_s_var,
50 size_t *in_ai_count, size_t *in_ai_start);
51
60var_type get_short_value(file_information_t & in_s_file, variable_information_t & in_s_var,
61 size_t *in_ai_count, size_t *in_ai_start);
62
71var_type get_int_value(file_information_t & in_s_file, variable_information_t & in_s_var,
72 size_t *in_ai_count, size_t *in_ai_start);
73
82var_type get_float_value(file_information_t & in_s_file, variable_information_t & in_s_var,
83 size_t *in_ai_count, size_t *in_ai_start);
84
93var_type get_double_value(file_information_t & in_s_file, variable_information_t & in_s_var,
94 size_t *in_ai_count, size_t *in_ai_start);
95
104var_type get_ubyte_value(file_information_t & in_s_file, variable_information_t & in_s_var,
105 size_t *in_ai_count, size_t *in_ai_start);
106
115var_type get_ushort_value(file_information_t & in_s_file, variable_information_t & in_s_var,
116 size_t *in_ai_count, size_t *in_ai_start);
117
126var_type get_uint_value(file_information_t & in_s_file, variable_information_t & in_s_var,
127 size_t *in_ai_count, size_t *in_ai_start);
128
137var_type get_int64_value(file_information_t & in_s_file, variable_information_t & in_s_var,
138 size_t *in_ai_count, size_t *in_ai_start);
139
148var_type get_uint64_value(file_information_t & in_s_file, variable_information_t & in_s_var,
149 size_t *in_ai_count, size_t *in_ai_start);
150
159var_type get_string_value(file_information_t & in_s_file, variable_information_t & in_s_var,
160 size_t *in_ai_count, size_t *in_ai_start);
161
169template <typename T>
171 size_t *in_ai_start)
172{
173 static var_type (*get_value_functions[])(file_information_t & in_s_file,
174 variable_information_t & in_s_var, size_t *in_ai_count, size_t *in_ai_start) = {
180 static size_t ai_count[NC_MAX_VAR_DIMS] = {0};
181
182 if (ai_count[0] == 0) {
183 for (int32_t i_count_index = 0; i_count_index < NC_MAX_VAR_DIMS; i_count_index++)
184 ai_count[i_count_index] = 1;
185 }
186 return std::get<T>(get_value_functions[in_s_current_var.i_type](in_s_file, in_s_current_var, ai_count, in_ai_start));
187}
188
189#endif /* GET_VALUES_HH_ */
var_type get_int_value(file_information_t &in_s_file, variable_information_t &in_s_var, size_t *in_ai_count, size_t *in_ai_start)
Get an int value.
Definition get_values.cc:111
var_type get_float_value(file_information_t &in_s_file, variable_information_t &in_s_var, size_t *in_ai_count, size_t *in_ai_start)
Get a float value.
Definition get_values.cc:134
var_type get_char_value(file_information_t &in_s_file, variable_information_t &in_s_var, size_t *in_ai_count, size_t *in_ai_start)
Get a char value.
Definition get_values.cc:65
var_type get_ubyte_value(file_information_t &in_s_file, variable_information_t &in_s_var, size_t *in_ai_count, size_t *in_ai_start)
Get an unsigned byte value.
Definition get_values.cc:181
var_type get_byte_value(file_information_t &in_s_file, variable_information_t &in_s_var, size_t *in_ai_count, size_t *in_ai_start)
Get a byte value.
Definition get_values.cc:42
var_type get_invalid_value(file_information_t &in_s_file, variable_information_t &in_s_var, size_t *in_ai_count, size_t *in_ai_start)
Get an invalid value.
Definition get_values.cc:24
var_type get_uint_value(file_information_t &in_s_file, variable_information_t &in_s_var, size_t *in_ai_count, size_t *in_ai_start)
Get an unsigned int value.
Definition get_values.cc:227
var_type get_double_value(file_information_t &in_s_file, variable_information_t &in_s_var, size_t *in_ai_count, size_t *in_ai_start)
Get a double value.
Definition get_values.cc:157
T get_var_value(file_information_t &in_s_file, variable_information_t &in_s_current_var, size_t *in_ai_start)
Get the value of a variable.
Definition get_values.hh:170
var_type get_ushort_value(file_information_t &in_s_file, variable_information_t &in_s_var, size_t *in_ai_count, size_t *in_ai_start)
Get an unsigned short value.
Definition get_values.cc:204
var_type get_short_value(file_information_t &in_s_file, variable_information_t &in_s_var, size_t *in_ai_count, size_t *in_ai_start)
Get a short value.
Definition get_values.cc:88
var_type get_int64_value(file_information_t &in_s_file, variable_information_t &in_s_var, size_t *in_ai_count, size_t *in_ai_start)
Get an int64 value.
Definition get_values.cc:250
var_type get_string_value(file_information_t &in_s_file, variable_information_t &in_s_var, size_t *in_ai_count, size_t *in_ai_start)
Get a string value.
Definition get_values.cc:296
var_type get_uint64_value(file_information_t &in_s_file, variable_information_t &in_s_var, size_t *in_ai_count, size_t *in_ai_start)
Get an unsigned int64 value.
Definition get_values.cc:273
The header file of the project.
Definition nc_assembler.hh:73
Definition nc_assembler.hh:59