uves_parameters.h

00001 /*
00002  * This file is part of the ESO UVES Pipeline
00003  * Copyright (C) 2004,2005 European Southern Observatory
00004  *
00005  * This program is free software; you can redistribute it and/or modify
00006  * it under the terms of the GNU General Public License as published by
00007  * the Free Software Foundation; either version 2 of the License, or
00008  * (at your option) any later version.
00009  *
00010  * This program is distributed in the hope that it will be useful,
00011  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00012  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00013  * GNU General Public License for more details.
00014  *
00015  * You should have received a copy of the GNU General Public License
00016  * along with this program; if not, write to the Free Software
00017  * Foundation, 51 Franklin St, Fifth Floor, Boston, MA  02111-1307  USA
00018  */
00019 
00020 /*
00021  * $Author: amodigli $
00022  * $Date: 2008/03/04 15:21:36 $
00023  * $Revision: 1.12 $
00024  * $Name: uves-3_9_0 $
00025  * $Log: uves_parameters.h,v $
00026  * Revision 1.12  2008/03/04 15:21:36  amodigli
00027  * fixed redchain problem with clean_traps parameter
00028  *
00029  * Revision 1.11  2008/03/03 16:35:07  amodigli
00030  * added parameter to control trap column correction
00031  *
00032  * Revision 1.10  2007/06/26 13:34:57  jmlarsen
00033  * Exported function for FLAMES
00034  *
00035  * Revision 1.9  2007/06/06 08:17:33  amodigli
00036  * replace tab with 4 spaces
00037  *
00038  * Revision 1.8  2007/03/15 12:34:08  jmlarsen
00039  * Added missing include directive
00040  *
00041  * Revision 1.7  2006/10/24 14:04:46  jmlarsen
00042  * Defined macros to provide minimal syntax for parameter creation
00043  *
00044  * Revision 1.6  2006/08/17 13:56:53  jmlarsen
00045  * Reduced max line length
00046  *
00047  * Revision 1.5  2006/08/07 11:35:35  jmlarsen
00048  * Disabled parameter environment variable mode
00049  *
00050  * Revision 1.4  2005/12/19 16:17:56  jmlarsen
00051  * Replaced bool -> int
00052  *
00053  */
00054 #ifndef UVES_PARAMETERS_H
00055 #define UVES_PARAMETERS_H
00056 
00057 /*-----------------------------------------------------------------------------
00058                     Includes
00059  -----------------------------------------------------------------------------*/
00060 
00061 #include <uves_utils_wrappers.h>
00062 
00063 #include <cpl.h>
00064 /*-----------------------------------------------------------------------------
00065                             Typedefs
00066  -----------------------------------------------------------------------------*/
00067 /*-----------------------------------------------------------------------------
00068                              Defines
00069  -----------------------------------------------------------------------------*/
00070 /*-----------------------------------------------------------------------------
00071                                    Prototypes
00072  -----------------------------------------------------------------------------*/
00073 
00074 cpl_error_code
00075 uves_define_global_parameters(cpl_parameterlist *parlist);
00076 
00077 int
00078 uves_exec_recipe(int (*get_info)(cpl_pluginlist *), 
00079                  const char *recipe_domain,
00080                  const cpl_parameterlist *parameters, 
00081                  cpl_frameset *frames,
00082                  const char *caller_id, const char *context);
00083 
00084 int
00085 uves_invoke_recipe(const char *recipe_id, const cpl_parameterlist *parameters, 
00086            cpl_frameset *frames,
00087            const char *caller_id, const char *context);
00088 
00089 int
00090 uves_propagate_parameters_step(const char *step_id,
00091                    cpl_parameterlist *parameters,
00092                    const char *recipe_id, const char *context);
00093 
00094 int
00095 uves_prop_par(int (*get_info)(cpl_pluginlist *),
00096           cpl_parameterlist *parameters,
00097           const char *recipe_id, const char *context);
00098 
00099 int
00100 uves_propagate_parameters(const char *subrecipe_id, 
00101               cpl_parameterlist *parameters,
00102               const char *recipe_id, const char *context);
00103 
00104 cpl_error_code
00105 uves_corr_traps_define_parameters(cpl_parameterlist * parameters,
00106                                   const char *recipe_id);
00107 
00108 
00109 /*----------------------------------------------------------------------------*/
00119 /*----------------------------------------------------------------------------*/
00120 #define uves_parameter_new_value(p, name, type, description, context, default) \
00121       do {                                                                     \
00122             p = cpl_parameter_new_value(                                       \
00123                          name, type, description, context, default);           \
00124             cpl_parameter_disable(p, CPL_PARAMETER_MODE_ENV);                  \
00125       } while(false)
00126 
00127 /*----------------------------------------------------------------------------*/
00136 /*----------------------------------------------------------------------------*/
00137 #define uves_parameter_new_range(p, name, type, description, context,          \
00138                  default, min, max)                            \
00139       do {                                                                     \
00140             p = cpl_parameter_new_range(                                       \
00141                          name, type, description, context, default, min, max); \
00142             cpl_parameter_disable(p, CPL_PARAMETER_MODE_ENV);                  \
00143       } while(false)
00144 
00145 /*----------------------------------------------------------------------------*/
00155 /*----------------------------------------------------------------------------*/
00156 #define uves_parameter_new_enum(p, name, type, description, context, nopt, ...)\
00157       do {                                                                     \
00158             p = cpl_parameter_new_enum(                                        \
00159                          name, type, description, context, nopt, __VA_ARGS__); \
00160             cpl_parameter_disable(p, CPL_PARAMETER_MODE_ENV);                  \
00161       } while(false)
00162 
00163 
00164 
00165 /*----------------------------------------------------------------------------*/
00176 /*----------------------------------------------------------------------------*/
00177 #define uves_par_new_value(name, type, description, default)               \
00178     do {                                                                   \
00179         cpl_parameter *p;                                                  \
00180         char *context   = uves_sprintf("%s%s%s", recipe_id,                \
00181                                        subcontext != NULL ? "." : "",      \
00182                                        subcontext != NULL ? subcontext: "");\
00183         char *full_name = uves_sprintf("%s.%s", context, name);            \
00184         uves_parameter_new_value(p, full_name,                             \
00185                  type,                                     \
00186                  description,                              \
00187                                  context,                                  \
00188                  default);                                 \
00189        cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI, name);           \
00190        cpl_parameterlist_append(parameters, p);                            \
00191        cpl_free(context);                                                  \
00192        cpl_free(full_name);                                                \
00193     } while(false)
00194 
00195 /*----------------------------------------------------------------------------*/
00208 /*----------------------------------------------------------------------------*/
00209 #define uves_par_new_range(name, type, description, default, min, max)     \
00210     do {                                                                   \
00211         cpl_parameter *p;                                                  \
00212         char *context   = uves_sprintf("%s%s%s", recipe_id,                \
00213                                        subcontext != NULL ? "." : "",      \
00214                                        subcontext != NULL ? subcontext: "");\
00215         char *full_name = uves_sprintf("%s.%s", context, name);            \
00216         uves_parameter_new_range(p, full_name,                             \
00217                  type,                                     \
00218                  description,                              \
00219                                  context,                                  \
00220                  default, min, max);                       \
00221        cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI, name);           \
00222        cpl_parameterlist_append(parameters, p);                            \
00223        cpl_free(context);                                                  \
00224        cpl_free(full_name);                                                \
00225     } while(false)
00226 
00227 
00228 /*----------------------------------------------------------------------------*/
00240 /*----------------------------------------------------------------------------*/
00241 #define uves_par_new_enum(name, type, description, default, nopt, ...)       \
00242     do {                                                                     \
00243         cpl_parameter *p;                                                    \
00244         char *context   = uves_sprintf("%s%s%s", recipe_id,                \
00245                                        subcontext != NULL ? "." : "",      \
00246                                        subcontext != NULL ? subcontext: "");\
00247         char *full_name = uves_sprintf("%s.%s", context, name);              \
00248         uves_parameter_new_enum(p, full_name,                                \
00249                  type,                                       \
00250                  description,                                \
00251                                  context,                                    \
00252                  default, nopt, __VA_ARGS__);                \
00253        cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI, name);             \
00254        cpl_parameterlist_append(parameters, p);                              \
00255        cpl_free(context);                                                    \
00256        cpl_free(full_name);                                                  \
00257     } while(false)
00258 
00259 #endif  /* UVES_PARAMETERS_H */

Generated on Fri Apr 18 14:11:42 2008 for UVES Pipeline Reference Manual by  doxygen 1.5.1