IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 16085


Ignore:
Timestamp:
Jan 15, 2008, 3:45:07 PM (18 years ago)
Author:
jhoblitt
Message:

add PXOPT_* macros

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/end_stage/ippTools/src/pxtools.h

    r14490 r16085  
    6363}
    6464
     65#define PXOPT_LOOKUP_STR(var, md, key, required, ret) \
     66psString var; \
     67{ \
     68    bool status; \
     69 \
     70    var = psMetadataLookupStr(&status, md, key); \
     71    if (!status) { \
     72        psError(PS_ERR_UNKNOWN, false, "failed to lookup value for %s", key); \
     73        return ret; \
     74    } \
     75 \
     76    if (required && (!var)) { \
     77        psError(PS_ERR_UNKNOWN, true, "%s is required", key); \
     78        return ret; \
     79    } \
     80}
     81
     82#define PXOPT_LOOKUP_F32(var, md, key, required, ret) \
     83psF32 var; \
     84{ \
     85    bool status; \
     86 \
     87    var = psMetadataLookupF32(&status, md, key); \
     88    if (!status) { \
     89        psError(PS_ERR_UNKNOWN, false, "failed to lookup value for %s", key); \
     90        return ret; \
     91    } \
     92 \
     93    if (required && isnan(var)) { \
     94        psError(PS_ERR_UNKNOWN, true, "%s is required", key); \
     95        return ret; \
     96    } \
     97}
     98
     99#define PXOPT_LOOKUP_F64(var, md, key, required, ret) \
     100psF64 var; \
     101{ \
     102    bool status; \
     103 \
     104    var = psMetadataLookupF64(&status, md, key); \
     105    if (!status) { \
     106        psError(PS_ERR_UNKNOWN, false, "failed to lookup value for %s", key); \
     107        return ret; \
     108    } \
     109 \
     110    if (required && isnan(var)) { \
     111        psError(PS_ERR_UNKNOWN, true, "%s is required", key); \
     112        return ret; \
     113    } \
     114}
     115
     116#define PXOPT_LOOKUP_U64(var, md, key, required, ret) \
     117psU64 var; \
     118{ \
     119    bool status; \
     120 \
     121    var = psMetadataLookupU64(&status, md, key); \
     122    if (!status) { \
     123        psError(PS_ERR_UNKNOWN, false, "failed to lookup value for %s", key); \
     124        return ret; \
     125    } \
     126 \
     127    if (required && (var != UINT64_MAX)) { \
     128        psError(PS_ERR_UNKNOWN, true, "%s is required", key); \
     129        return ret; \
     130    } \
     131}
     132
     133#define PXOPT_LOOKUP_S16(var, md, key, required, ret) \
     134psS16 var; \
     135{ \
     136    bool status; \
     137 \
     138    var = psMetadataLookupS16(&status, md, key); \
     139    if (!status) { \
     140        psError(PS_ERR_UNKNOWN, false, "failed to lookup value for %s", key); \
     141        return ret; \
     142    } \
     143 \
     144    if (required && (var != INT16_MAX)) { \
     145        psError(PS_ERR_UNKNOWN, true, "%s is required", key); \
     146        return ret; \
     147    } \
     148}
     149
     150#define PXOPT_LOOKUP_BOOL(var, md, key, ret) \
     151bool var; \
     152{ \
     153    bool status; \
     154 \
     155    var = psMetadataLookupBool(&status, md, key); \
     156    if (!status) { \
     157        psError(PS_ERR_UNKNOWN, false, "failed to lookup value for %s", key); \
     158        return ret; \
     159    } \
     160}
     161
    65162#endif // PXTOOLS_H
Note: See TracChangeset for help on using the changeset viewer.