Common Pipeline Library Reference Manual  5.3.1
Defines
Recipe Definition

Defines

#define cpl_get_license(PACKAGE_NAME, YEAR)
 Generate the recipe copyright and license text (GPL v.2)
#define cpl_recipe_define(RECIPE_NAME, RECIPE_VERSION, RECIPE_AUTHOR,RECIPE_EMAIL, RECIPE_YEAR,RECIPE_SYNOPSIS, RECIPE_DESCRIPTION)
 Define a standard CPL recipe.
#define CPL_RECIPE_DEFINE(RECIPE_NAME, RECIPE_VERSION, RECIPE_FILL_PARAMS,RECIPE_AUTHOR, RECIPE_AUTHOR_EMAIL, RECIPE_YEAR,RECIPE_SYNOPSIS, RECIPE_DESCRIPTION)
 Define a standard CPL recipe.

Detailed Description

This module implements the support for recipe defition.

Synopsis:
   #include <cpl_recipedefine.h>

Define Documentation

#define cpl_get_license (   PACKAGE_NAME,
  YEAR 
)

Generate the recipe copyright and license text (GPL v.2)

Parameters:
PACKAGE_NAMEThe name as a string literal, e.g. from config.h
YEARThe year(s) as a string literal
Returns:
The recipe copyright and license text as a string literal

Example:

     const char * eso_gpl_license = cpl_get_license(PACKAGE_NAME, "2005, 2008");
#define cpl_recipe_define (   RECIPE_NAME,
  RECIPE_VERSION,
  RECIPE_AUTHOR,
  RECIPE_EMAIL,
  RECIPE_YEAR,
  RECIPE_SYNOPSIS,
  RECIPE_DESCRIPTION 
)

Define a standard CPL recipe.

Parameters:
RECIPE_NAMEThe name as an identifier
RECIPE_VERSIONThe binary version number
RECIPE_AUTHORThe author as a string literal
RECIPE_EMAILThe contact email as a string literal
RECIPE_YEARThe copyright year as a string literal
RECIPE_SYNOPSISThe synopsis as a string literal
RECIPE_DESCRIPTIONThe man-page as a string literal

A CPL-based recipe may use this macro to define its four mandatory functions: cpl_plugin_get_info(), <recipe>_create(), <recipe>_exec() and <recipe>_destroy(), as well as declaring the actual data reduction function, <recipe>() as

     static int <recipe>(cpl_frameset *, const cpl_parameterlist *);

The macro also declares the recipe-specific function that fills the recipe parameterlist with the supported parameters as

     static cpl_error_code <recipe>_fill_parameterlist(cpl_parameterlist *self);

A recipe that invokes cpl_recipedefine() must define this function.

The macro cpl_recipedefine() may be used by defining a macro, e.g. in my_recipe.h:

   #define MY_RECIPE_DEFINE(NAME, SYNOPSIS, DESCRIPTION)                    \
     cpl_recipe_define(NAME, MY_BINARY_VERSION,                             \
     "Firstname Lastname", "2006, 2008", SYNOPSIS, DESCRIPTION)
  • and then by invoking this macro in each recipe:
   #include "my_recipe.h"

   MY_RECIPE_DEFINE(instrume_img_dark,
                    "Dark recipe",
                    "instrume_img_dark -- imaging dark recipe.\n"
                    " ... recipe man-page\n");

   static
   cpl_error_code instrume_img_dark_fill_parameterlist(cpl_parameterlist *self);
   {

      // Fill the parameterlist with the parameters supported by the recipe.

      retun CPL_ERROR_NONE;
   }
#define CPL_RECIPE_DEFINE (   RECIPE_NAME,
  RECIPE_VERSION,
  RECIPE_FILL_PARAMS,
  RECIPE_AUTHOR,
  RECIPE_AUTHOR_EMAIL,
  RECIPE_YEAR,
  RECIPE_SYNOPSIS,
  RECIPE_DESCRIPTION 
)

Define a standard CPL recipe.

Parameters:
RECIPE_NAMEThe name as an identifier
RECIPE_VERSIONThe binary version number
RECIPE_FILL_PARAMSA function call to fill the recipe parameterlist. Must evaluate to zero if and only if successful
RECIPE_AUTHORThe author as a string literal
RECIPE_AUTHOR_EMAILThe author email as a string literal
RECIPE_YEARThe copyright year as a string literal
RECIPE_SYNOPSISThe synopsis as a string literal
RECIPE_DESCRIPTIONThe man-page as a string literal
Deprecated:
Use cpl_recipe_define()