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
00046
00047
00048 #ifndef UVES_PARAMETERS_H
00049 #define UVES_PARAMETERS_H
00050
00051
00052
00053
00054
00055 #include <uves_utils_wrappers.h>
00056
00057 #include <cpl.h>
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068 cpl_error_code
00069 uves_define_global_parameters(cpl_parameterlist *parlist);
00070
00071 int
00072 uves_exec_recipe(int (*get_info)(cpl_pluginlist *),
00073 const char *recipe_domain,
00074 const cpl_parameterlist *parameters,
00075 cpl_frameset *frames,
00076 const char *caller_id, const char *context);
00077
00078 int
00079 uves_invoke_recipe(const char *recipe_id, const cpl_parameterlist *parameters,
00080 cpl_frameset *frames,
00081 const char *caller_id, const char *context);
00082
00083 int
00084 uves_propagate_parameters_step(const char *step_id,
00085 cpl_parameterlist *parameters,
00086 const char *recipe_id, const char *context);
00087
00088 int
00089 uves_prop_par(int (*get_info)(cpl_pluginlist *),
00090 cpl_parameterlist *parameters,
00091 const char *recipe_id, const char *context);
00092
00093 int
00094 uves_propagate_parameters(const char *subrecipe_id,
00095 cpl_parameterlist *parameters,
00096 const char *recipe_id, const char *context);
00097
00098
00108
00109 #define uves_parameter_new_value(p, name, type, description, context, default) \
00110 do { \
00111 p = cpl_parameter_new_value( \
00112 name, type, description, context, default); \
00113 cpl_parameter_disable(p, CPL_PARAMETER_MODE_ENV); \
00114 } while(false)
00115
00116
00125
00126 #define uves_parameter_new_range(p, name, type, description, context, \
00127 default, min, max) \
00128 do { \
00129 p = cpl_parameter_new_range( \
00130 name, type, description, context, default, min, max); \
00131 cpl_parameter_disable(p, CPL_PARAMETER_MODE_ENV); \
00132 } while(false)
00133
00134
00144
00145 #define uves_parameter_new_enum(p, name, type, description, context, nopt, ...)\
00146 do { \
00147 p = cpl_parameter_new_enum( \
00148 name, type, description, context, nopt, __VA_ARGS__); \
00149 cpl_parameter_disable(p, CPL_PARAMETER_MODE_ENV); \
00150 } while(false)
00151
00152
00153
00154
00165
00166 #define uves_par_new_value(name, type, description, default) \
00167 do { \
00168 cpl_parameter *p; \
00169 char *context = uves_sprintf("%s%s%s", recipe_id, \
00170 subcontext != NULL ? "." : "", \
00171 subcontext != NULL ? subcontext: "");\
00172 char *full_name = uves_sprintf("%s.%s", context, name); \
00173 uves_parameter_new_value(p, full_name, \
00174 type, \
00175 description, \
00176 context, \
00177 default); \
00178 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI, name); \
00179 cpl_parameterlist_append(parameters, p); \
00180 cpl_free(context); \
00181 cpl_free(full_name); \
00182 } while(false)
00183
00184
00197
00198 #define uves_par_new_range(name, type, description, default, min, max) \
00199 do { \
00200 cpl_parameter *p; \
00201 char *context = uves_sprintf("%s%s%s", recipe_id, \
00202 subcontext != NULL ? "." : "", \
00203 subcontext != NULL ? subcontext: "");\
00204 char *full_name = uves_sprintf("%s.%s", context, name); \
00205 uves_parameter_new_range(p, full_name, \
00206 type, \
00207 description, \
00208 context, \
00209 default, min, max); \
00210 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI, name); \
00211 cpl_parameterlist_append(parameters, p); \
00212 cpl_free(context); \
00213 cpl_free(full_name); \
00214 } while(false)
00215
00216
00217
00229
00230 #define uves_par_new_enum(name, type, description, default, nopt, ...) \
00231 do { \
00232 cpl_parameter *p; \
00233 char *context = uves_sprintf("%s%s%s", recipe_id, \
00234 subcontext != NULL ? "." : "", \
00235 subcontext != NULL ? subcontext: "");\
00236 char *full_name = uves_sprintf("%s.%s", context, name); \
00237 uves_parameter_new_enum(p, full_name, \
00238 type, \
00239 description, \
00240 context, \
00241 default, nopt, __VA_ARGS__); \
00242 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI, name); \
00243 cpl_parameterlist_append(parameters, p); \
00244 cpl_free(context); \
00245 cpl_free(full_name); \
00246 } while(false)
00247
00248 #endif