diff options
author | Joe Hunkeler <jhunkeler@gmail.com> | 2015-08-11 16:51:37 -0400 |
---|---|---|
committer | Joe Hunkeler <jhunkeler@gmail.com> | 2015-08-11 16:51:37 -0400 |
commit | 40e5a5811c6ffce9b0974e93cdd927cbcf60c157 (patch) | |
tree | 4464880c571602d54f6ae114729bf62a89518057 /vendor/voclient/voapps/task/voParam.c | |
download | iraf-osx-40e5a5811c6ffce9b0974e93cdd927cbcf60c157.tar.gz |
Repatch (from linux) of OSX IRAF
Diffstat (limited to 'vendor/voclient/voapps/task/voParam.c')
-rw-r--r-- | vendor/voclient/voapps/task/voParam.c | 418 |
1 files changed, 418 insertions, 0 deletions
diff --git a/vendor/voclient/voapps/task/voParam.c b/vendor/voclient/voapps/task/voParam.c new file mode 100644 index 00000000..e5d108ee --- /dev/null +++ b/vendor/voclient/voapps/task/voParam.c @@ -0,0 +1,418 @@ +/** + * + * VOTASK.C -- Utilities to run a VOApps task as a connected subprocess. + * + * + * Expanded Interface + * -------------------------- + * + * This is an attempt to define the simplest possible interface which is still + * general enough to support the package/task paradigm, providing a self + * describing capability to allow generic/reusable software to be written to + * manipulate and run tasks. The main simplification is that a "package" is + * implemented as an executable (a single self contained file) which may + * contain multiple tasks and which can be queried to determine its + * capabilities. This limits "packages" to implementations which can be self + * contained enough to be runnable from a single runtime file, which is + * adequate for now to support the VOClient CLI tasks and which can be + * generalized later if necessary. + * + * A "package" is a precompiled executable with a defined API which can be + * queried with standard CLI arguments to get package metadata as well as to + * run the individual tasks. Metadata queries include user help as in + * "-help", plus programatic information such as the package name and + * description, list of tasks, task interfaces, builtin help, etc. "Package" + * executables are installed in a standard directory which can be examined by + * the tasking layer to determine what packages are available. The file names + * of package executables follow a simple naming convention so that they can + * be easily referenced at runtime. + * + * + * Client Interface: + * ================= + * + * Parameter Handling: + * ------------------- + * + * Directed parameter access: + * + * int = vo_taskParamCount (rp) + * vo_taskGetParamInfo (rp, pnum, *name, *type, *encoding, + * *description) + * str = vo_taskGetStringParam (rp, pname, pnum) # pnum used if pname=null + * ival = vo_taskGetBoolParam (rp, pname, pnum) + * ival = vo_taskGetIntParam (rp, pname, pnum) + * dval = vo_taskGetRealParam (rp, pname, pnum) + * void = vo_taskGetParamValue (rp, pname, pnum, size) + * + * Iterated parameter access: + * + * pp = vo_taskGetParam (rp, pname, pnum) + * len = vo_paramLen (pp, [typ|enc]) + * pp = vo_paramNext (pp, [typ|enc]) + * str = vo_paramAttr (pp, attr) + * + * + * + * @file voParam.c + * @author Mike Fitzpatrick + * @date 9/24/12 + * + * @brief VOClient Tasking Interface. + */ + + +#include <stdio.h> +#include <stdlib.h> +#include <unistd.h> +#include <string.h> +#include <errno.h> +#include <fcntl.h> +#include <signal.h> +#include <stdarg.h> +#include <setjmp.h> +#include <sys/wait.h> +#include <sys/stat.h> +#include <sys/select.h> +#include <sys/time.h> +#include <sys/types.h> +#include "voTask.h" + + + + +/**************************************************************************/ +/*** Package Introspection Methods ***/ +/**************************************************************************/ + +/** + * VO_PKGLIST -- List packages available in the working directory.. + * + * @brief List packages available in the working directory. + * @fn xml = vo_pkgList (char *pattern) + * + * @param pattern Package executable filename pattern (or NULL for all) + * @returns XML description of the package list. + */ +char * +vo_pkgList (char *pattern) +{ + return (NULL); +} + + +/** + * VO_TASKLIST -- List tasks in package. + * + * @brief List tasks in package. + * @fn handle = vo_taskList (char *pkgName) + * + * @param pkgName Package name + * @returns XML description of the task list + */ +char * +vo_taskList (char *pkgName) +{ + return (NULL); +} + + +/** + * VO_TASKPARAMS -- List parameters for a task. + * + * @brief List parameters for a task. + * @fn xml = vo_taskParams (char *pkgName, char *taskName) + * + * @param pkgName Package name + * @param taskName Task name + * @returns XML description of the parameter list + */ +char * +vo_taskParams (char *pkgName, char *taskName) +{ + return (NULL); +} + + +/** + * VO_SETPKGDIR -- Set the working package directory. + * + * @brief Set the working package directory. + * @fn vo_setPkgDir (char *path) + * + * @param path Path to current working package directory + * @returns nothing + */ +void +vo_setPkgDir (char *path) +{ +} + + +/** + * VO_GETPKGDIR -- Get the working package directory. + * + * @brief Get the working package directory. + * @fn path = vo_getPkgDir (void) + * + * @returns path to current working package directory + */ +char * +vo_getPkgDir (void) +{ + return (NULL); +} + + + +/**************************************************************************/ +/*** Task Execution Methods ***/ +/**************************************************************************/ + +/** + * VO_TASKINIT -- Prepare to run a task. + * + * @brief Prepare to run a task. + * @fn handle = vo_taskInit (char *pkgName, char *taskName) + * + * @param pkgName Package name + * @param taskName Task name + * @returns handle to the task descriptor + */ +handle_t +vo_taskInit (char *pkgName, char *taskName) +{ + return (0); +} + + +/** + * VO_TASKSETSTRINGPARAM -- Set a string-valued param. + * + * @brief Set a string-valued param. + * @fn str = vo_taskSetStringParam (handle_t tp, char *paramName, + * char *sval) + * + * @param tp Task handle + * @param paramName Parameter name + * @param sval Parameter value + * @returns nothing + */ +void +vo_taskSetStringParam (handle_t tp, char *paramName, char *sval) +{ +} + + +/** + * VO_TASKSETBOOLPARAM -- Set a bool-valued param. + * + * @brief Set a bool-valued param. + * @fn str = vo_taskSetBoolParam (handle_t tp, char *paramName, int bval) + * + * @param tp Task handle + * @param paramName Parameter name + * @param bval Parameter value (0=false, 1=true) + * @returns nothing + */ +void +vo_taskSetBoolParam (handle_t tp, char *paramName, int bval) +{ +} + + +/** + * VO_TASKSETINTPARAM -- Set a int-valued param. + * + * @brief Set a int-valued param. + * @fn str = vo_taskSetIntParam (handle_t tp, char *paramName, int ival) + * + * @param tp Task handle + * @param paramName Parameter name + * @param ival Parameter value + * @returns nothing + */ +void +vo_taskSetIntParam (handle_t tp, char *paramName, int ival) +{ +} + + +/** + * VO_TASKSETREALPARAM -- Set a real-valued param. + * + * @brief Set a real-valued param. + * @fn str = vo_taskSetRealParam (handle_t tp, char *paramName, + * double rval) + * + * @param tp Task handle + * @param paramName Parameter name + * @param dval Parameter value + * @returns nothing + */ +void +vo_taskSetRealParam (handle_t tp, char *paramName, double dval) +{ +} + + +#ifdef FOO + + vo_taskSetCallback (tp, &func) # Set output param callback + rp = vo_taskExecuteSync (tp) # Execute synchronous; returns + # output pset pointer + vo_taskExecuteAsync (tp) # Execute async + rp = vo_taskWait (tp) # Wait for task, get RP + tatus = vo_taskCheckError (tp, *msg) # Check for any error posted + # to TP or RP +#endif + + + +/**************************************************************************/ +/*** Output Parameters ***/ +/**************************************************************************/ + +/** + * VO_TASKPARAMCOUNT -- Return the number of available output params. + * + * @brief Return the number of available output params. + * @fn status = vo_taskParamCount (handle_t rp) + * + * @param rp Return handle + * @returns Number of available output params + */ +int +vo_taskParamCount (handle_t rp) +{ + return (0); +} + + +/** + * VO_TASKGETPARAMINFO -- Get information about an indexed parameter. + * + * @brief Get information about an indexed parameter. + * @fn status = vo_taskGetParamInfo (handle_t rp, int pnum, + * char *name, char *type, char *encoding, + * char *description) + * + * @param rp Return handle + * @param pnum Parameter index (0-based, used if paramName=NULL) + * @param name Parameter name + * @returns pointer to parameter value + */ +void +vo_taskGetParamInfo (handle_t rp, int pnum, char *name, char *type, + char *encoding, char *description) +{ + return; +} + + +/** + * VO_TASKGETPARAMVALUE -- Get a value of the named/indexed output parameter. + * + * @brief Get a value of the named/indexed output parameter. + * @fn status = vo_taskGetParamValue (handle_t rp, char *paramName, + * int pnum) + * + * @param rp Return handle + * @param paramName Parameter name + * @param pnum Parameter index (0-based, used if paramName=NULL) + * @returns pointer to parameter value + */ +void * +vo_taskGetParamValue (handle_t rp, char *paramName, int pnum) +{ + return ((void *) NULL); +} + + +/** + * VO_TASKGETSTRINGPARAM -- Get a string-valued output parameter. + * + * @brief Get a string-valued output parameter. + * @fn str = vo_taskGetStringParam (handle_t rp, char *paramName, + * int pnum) + * + * @param rp Return handle + * @param paramName Parameter name + * @param pnum Parameter index (0-based, used if paramName=NULL) + * @returns parameter value as a character string + */ +char * +vo_taskGetStringParam (handle_t rp, char *paramName, int pnum) +{ + return ((char *) NULL); +} + + +/** + * VO_TASKGETBOOLPARAM -- Get a bool-valued output parameter. + * + * @brief Get a bool-valued output parameter. + * @fn bval = vo_taskGetBoolParam (handle_t rp, char *paramName, int pnum) + * + * @param rp Return handle + * @param paramName Parameter name + * @param pnum Parameter index (0-based, used if paramName=NULL) + * @returns parameter value as a bool (0=false, 1=true) + */ +int +vo_taskGetBoolParam (handle_t rp, char *paramName, int pnum) +{ + return (0); +} + + +/** + * VO_TASKGETINTPARAM -- Get a int-valued output parameter. + * + * @brief Get a int-valued output parameter. + * @fn ival = vo_taskGetIntParam (handle_t rp, char *paramName, int pnum) + * + * @param rp Return handle + * @param paramName Parameter name + * @param pnum Parameter index (0-based, used if paramName=NULL) + * @returns parameter value and an integer + */ +int +vo_taskGetIntParam (handle_t rp, char *paramName, int pnum) +{ + return (0); +} + + +/** + * VO_TASKGETREALPARAM -- Get a real-valued output parameter. + * + * @brief Get a real-valued output parameter. + * @fn dval = vo_taskGetRealParam (handle_t rp, char *paramName, int pnum) + * + * @param rp Return handle + * @param paramName Parameter name + * @param pnum Parameter index (0-based, used if paramName=NULL) + * @returns parameter value as a double-precision + */ +double +vo_taskGetRealParam (handle_t rp, char *paramName, int pnum) +{ + return ((double) 0.0); +} + + +/** + * VO_TASKCLOSE -- Free task resources. + * + * @brief Free task resources. + * @fn status = vo_taskClose (handle_t tp) + * + * @param tp Task handle + * @returns zero if OK, one on ERROR + */ +int +vo_taskClose (handle_t tp) +{ + return (OK); +} |