00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045 #ifndef UVES_PARAMETERS_H
00046 #define UVES_PARAMETERS_H
00047
00048
00049
00050
00051
00052 #include <uves_utils_wrappers.h>
00053
00054 #include <cpl.h>
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065 cpl_error_code
00066 uves_define_global_parameters(cpl_parameterlist *parlist);
00067
00068 int
00069 uves_invoke_recipe(const char *recipe_id, const cpl_parameterlist *parameters,
00070 cpl_frameset *frames,
00071 const char *caller_id, const char *context);
00072
00073 int
00074 uves_propagate_parameters_step(const char *step_id,
00075 cpl_parameterlist *parameters,
00076 const char *recipe_id, const char *context);
00077
00078 int
00079 uves_propagate_parameters(const char *subrecipe_id,
00080 cpl_parameterlist *parameters,
00081 const char *recipe_id, const char *context);
00082
00083
00093
00094 #define uves_parameter_new_value(p, name, type, description, context, default) \
00095 do { \
00096 p = cpl_parameter_new_value( \
00097 name, type, description, context, default); \
00098 cpl_parameter_disable(p, CPL_PARAMETER_MODE_ENV); \
00099 } while(false)
00100
00101
00110
00111 #define uves_parameter_new_range(p, name, type, description, context, \
00112 default, min, max) \
00113 do { \
00114 p = cpl_parameter_new_range( \
00115 name, type, description, context, default, min, max); \
00116 cpl_parameter_disable(p, CPL_PARAMETER_MODE_ENV); \
00117 } while(false)
00118
00119
00129
00130 #define uves_parameter_new_enum(p, name, type, description, context, nopt, ...)\
00131 do { \
00132 p = cpl_parameter_new_enum( \
00133 name, type, description, context, nopt, __VA_ARGS__); \
00134 cpl_parameter_disable(p, CPL_PARAMETER_MODE_ENV); \
00135 } while(false)
00136
00137
00138
00139
00150
00151 #define uves_par_new_value(name, type, description, default) \
00152 do { \
00153 cpl_parameter *p; \
00154 char *context = uves_sprintf("%s%s%s", recipe_id, \
00155 subcontext != NULL ? "." : "", \
00156 subcontext != NULL ? subcontext: "");\
00157 char *full_name = uves_sprintf("%s.%s", context, name); \
00158 uves_parameter_new_value(p, full_name, \
00159 type, \
00160 description, \
00161 context, \
00162 default); \
00163 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI, name); \
00164 cpl_parameterlist_append(parameters, p); \
00165 cpl_free(context); \
00166 cpl_free(full_name); \
00167 } while(false)
00168
00169
00182
00183 #define uves_par_new_range(name, type, description, default, min, max) \
00184 do { \
00185 cpl_parameter *p; \
00186 char *context = uves_sprintf("%s%s%s", recipe_id, \
00187 subcontext != NULL ? "." : "", \
00188 subcontext != NULL ? subcontext: "");\
00189 char *full_name = uves_sprintf("%s.%s", context, name); \
00190 uves_parameter_new_range(p, full_name, \
00191 type, \
00192 description, \
00193 context, \
00194 default, min, max); \
00195 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI, name); \
00196 cpl_parameterlist_append(parameters, p); \
00197 cpl_free(context); \
00198 cpl_free(full_name); \
00199 } while(false)
00200
00201
00202
00214
00215 #define uves_par_new_enum(name, type, description, default, nopt, ...) \
00216 do { \
00217 cpl_parameter *p; \
00218 char *context = uves_sprintf("%s%s%s", recipe_id, \
00219 subcontext != NULL ? "." : "", \
00220 subcontext != NULL ? subcontext: "");\
00221 char *full_name = uves_sprintf("%s.%s", context, name); \
00222 uves_parameter_new_enum(p, full_name, \
00223 type, \
00224 description, \
00225 context, \
00226 default, nopt, __VA_ARGS__); \
00227 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI, name); \
00228 cpl_parameterlist_append(parameters, p); \
00229 cpl_free(context); \
00230 cpl_free(full_name); \
00231 } while(false)
00232
00233 #endif