IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Jun 25, 2008, 2:21:25 PM (18 years ago)
Author:
eugene
Message:

move argument defines to detselect.h, added addWhereStrAlias, added -type as alias for -det_type

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ippTools/src/detselect.h

    r9392 r18322  
    3131pxConfig *detselectConfig(pxConfig *config, int argc, char **argv);
    3232
     33#define addWhereStr(name) \
     34{ \
     35    psString str = NULL; \
     36    bool status = false; \
     37    if ((str = psMetadataLookupStr(&status, config->args, "-" #name))) { \
     38        if (!psMetadataAddStr(config->where, PS_LIST_TAIL, #name, 0, "==", str)) {\
     39            psError(PS_ERR_UNKNOWN, false, "failed to add item " #name); \
     40            psFree(config); \
     41            return NULL; \
     42        } \
     43    } \
     44}
     45
     46#define addWhereStrAlias(name,realname) \
     47{ \
     48    psString str = NULL; \
     49    bool status = false; \
     50    if ((str = psMetadataLookupStr(&status, config->args, "-" #name))) { \
     51        if (!psMetadataAddStr(config->where, PS_LIST_TAIL, #realname, 0, "==", str)) {\
     52            psError(PS_ERR_UNKNOWN, false, "failed to add item " #name); \
     53            psFree(config); \
     54            return NULL; \
     55        } \
     56    } \
     57}
     58
     59#define addWhereS32(name) \
     60{ \
     61    psS32 s32 = 0; \
     62    bool status = false; \
     63    if ((s32= psMetadataLookupS32(&status, config->args, "-" #name))) { \
     64        if (!psMetadataAddS32(config->where, PS_LIST_TAIL, #name, 0, "==", s32)) { \
     65            psError(PS_ERR_UNKNOWN, false, "failed to add item " #name); \
     66            psFree(config); \
     67            return NULL; \
     68        } \
     69    } \
     70}
     71
     72#define addWhereF32(name) \
     73{ \
     74    psF32 var = 0; \
     75    bool status = false; \
     76    if ((var = psMetadataLookupF32(&status, config->args, "-" #name))) { \
     77        if (!isnan(var)) { \
     78            if (!psMetadataAddF32(config->where, PS_LIST_TAIL, #name, 0, "==", var)) { \
     79                psError(PS_ERR_UNKNOWN, false, "failed to add item " #name); \
     80                psFree(config); \
     81                return NULL; \
     82            } \
     83        } \
     84    } \
     85}
     86
     87#define addWhereF64(name) \
     88{ \
     89    psF64 var = 0; \
     90    bool status = false; \
     91    if ((var = psMetadataLookupF64(&status, config->args, "-" #name))) { \
     92        if (!isnan(var))  { \
     93            if (!psMetadataAddF64(config->where, PS_LIST_TAIL, #name, 0, "==", var)) { \
     94                psError(PS_ERR_UNKNOWN, false, "failed to add item " #name); \
     95                psFree(config); \
     96                return NULL; \
     97            } \
     98        } \
     99    } \
     100}
     101
     102#define addWhereTimeStr(name) \
     103{ \
     104    psString str = NULL; \
     105    bool status = false; \
     106    if ((str = psMetadataLookupStr(&status, config->args, "-" #name))) { \
     107        psTime *time = psTimeFromISO(str, PS_TIME_UTC); \
     108        if (!time) { \
     109            psError(PS_ERR_UNKNOWN, false, "failed to convert " #name " into a psTime object"); \
     110            psFree(config); \
     111            return NULL; \
     112        } \
     113        psMetadataItem *item = psMetadataLookup(config->args, "-" #name); \
     114        if (item) { \
     115            str = item->comment; \
     116        } else { \
     117            str = NULL; \
     118        } \
     119        if (!psMetadataAddTime(config->where, PS_LIST_TAIL, #name, 0, str, time)) {\
     120            psError(PS_ERR_UNKNOWN, false, "failed to add item " #name); \
     121            psFree(config); \
     122            return NULL; \
     123        } \
     124        psFree(time); \
     125    } \
     126}
     127
    33128#endif // DETSELECT_H
Note: See TracChangeset for help on using the changeset viewer.