IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 2973


Ignore:
Timestamp:
Jan 13, 2005, 10:48:59 AM (22 years ago)
Author:
desonia
Message:

fixed some small bugs in psMetadataLookup and psMetadataItemPrint.

Location:
trunk/psLib/src
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/psLib/src/astronomy/psMetadata.c

    r2971 r2973  
    1212*  @author Ross Harman, MHPCC
    1313*
    14 *  @version $Revision: 1.44 $ $Name: not supported by cvs2svn $
    15 *  @date $Date: 2005-01-13 19:50:44 $
     14*  @version $Revision: 1.45 $ $Name: not supported by cvs2svn $
     15*  @date $Date: 2005-01-13 20:48:59 $
    1616*
    1717*  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    421421void* psMetadataLookupPtr(psMetadata *md, const char *key, psU32 *status)
    422422{
    423     void *value = NULL;
    424     psElemType pType;
    425423    psMetadataItem *metadataItem = NULL;
    426424
     425    if (status) {
     426        *status = 0;
     427    }
    427428
    428429    metadataItem = psMetadataLookup(md, key);
    429430    if(metadataItem == NULL) {
    430         *status = 1;
    431         return value;
    432     }
    433 
    434     pType = metadataItem->pType;
    435     value = metadataItem->data.V;
    436     if(pType != PS_TYPE_PTR) {
    437         psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psMetadata_METATYPE_MISMATCH, pType,
     431        if (status) {
     432            *status = 1;
     433        }
     434        return NULL;
     435    }
     436
     437    if(metadataItem->type == PS_META_PRIMITIVE && metadataItem->pType != PS_TYPE_PTR) {
     438        if (status) {
     439            *status = 1;
     440        }
     441        psError(PS_ERR_BAD_PARAMETER_VALUE, true,
     442                PS_ERRORTEXT_psMetadata_METATYPE_MISMATCH,
     443                metadataItem->pType,
    438444                PS_TYPE_PTR);
    439     }
    440 
    441     return value;
    442 }
    443 
    444 psS32 psMetadataLookupS32(psMetadata *md, const char *key, psU32 *status)
    445 {
    446     psS32 value = 0;
    447     psElemType pType;
    448     psMetadataItem *metadataItem = NULL;
    449 
    450 
    451     metadataItem = psMetadataLookup(md, key);
    452     if(metadataItem == NULL) {
    453         *status = 1;
    454         return value;
    455     }
    456 
    457     pType = metadataItem->pType;
    458     value = metadataItem->data.S32;
    459     if(pType != PS_TYPE_S32) {
    460         psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psMetadata_METATYPE_MISMATCH, pType,
    461                 PS_TYPE_S32);
    462     }
    463 
    464     return value;
    465 }
    466 
    467 psF32 psMetadataLookupF32(psMetadata *md, const char *key, psU32 *status)
    468 {
    469     psF32 value = 0.0;
    470     psElemType pType;
    471     psMetadataItem *metadataItem = NULL;
    472 
    473 
    474     metadataItem = psMetadataLookup(md, key);
    475     if(metadataItem == NULL) {
    476         *status = 1;
    477         return value;
    478     }
    479 
    480     pType = metadataItem->pType;
    481     value = metadataItem->data.F32;
    482     if(pType != PS_TYPE_F32) {
    483         psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psMetadata_METATYPE_MISMATCH, pType,
    484                 PS_TYPE_F32);
    485     }
    486 
    487     return value;
    488 }
    489 
    490 psF64 psMetadataLookupF64(psMetadata *md, const char *key, psU32 *status)
    491 {
    492     psF64 value = 0.0;
    493     psElemType pType;
    494     psMetadataItem *metadataItem = NULL;
    495 
    496 
    497     metadataItem = psMetadataLookup(md, key);
    498     if(metadataItem == NULL) {
    499         *status = 1;
    500         return value;
    501     }
    502 
    503     pType = metadataItem->pType;
    504     value = metadataItem->data.F64;
    505     if(pType != PS_TYPE_F64) {
    506         psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psMetadata_METATYPE_MISMATCH, pType,
    507                 PS_TYPE_F64);
    508     }
    509 
    510     return value;
    511 }
     445        return NULL;
     446    } else {
     447        return metadataItem->data.V;
     448    }
     449}
     450
     451#define psMetadataLookupNumTYPE(TYPE) \
     452ps##TYPE psMetadataLookup##TYPE(psMetadata *md, const char *key, psU32 *status) \
     453{ \
     454    psMetadataItem *metadataItem = NULL; \
     455    \
     456    if (status) { \
     457        *status = 0; \
     458    } \
     459    \
     460    metadataItem = psMetadataLookup(md, key); \
     461    if(metadataItem == NULL) { \
     462        if (status) { \
     463            *status = 1; \
     464        } \
     465        return 0; \
     466    } \
     467    \
     468    if (metadataItem->type == PS_META_PRIMITIVE) { \
     469        switch (metadataItem->pType) { \
     470        case PS_TYPE_S32: \
     471            return metadataItem->data.S32; \
     472        case PS_TYPE_F32: \
     473            return metadataItem->data.F32; \
     474        case PS_TYPE_F64: \
     475            return metadataItem->data.F64; \
     476        case PS_TYPE_BOOL: \
     477            if (metadataItem->data.B) { \
     478                return 1; \
     479            } \
     480            return 0; \
     481        default: \
     482            break; \
     483        } \
     484    } \
     485    \
     486    /* if you get to this point, the value is not a number. */ \
     487    if (status) { \
     488        *status = 1; \
     489    } \
     490    \
     491    return 0; \
     492}
     493
     494psMetadataLookupNumTYPE(F32)
     495psMetadataLookupNumTYPE(F64)
     496psMetadataLookupNumTYPE(S32)
    512497
    513498psMetadataItem* psMetadataGet(psMetadata *md, psS32 where)
  • trunk/psLib/src/astronomy/psMetadataIO.c

    r2885 r2973  
    99*  @author Ross Harman, MHPCC
    1010*
    11 *  @version $Revision: 1.17 $ $Name: not supported by cvs2svn $
    12 *  @date $Date: 2005-01-04 18:33:55 $
     11*  @version $Revision: 1.18 $ $Name: not supported by cvs2svn $
     12*  @date $Date: 2005-01-13 20:48:59 $
    1313*
    1414*  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    308308    psMetadataType type;
    309309    psElemType pType;
    310     psBool success = false;
     310    psBool success = true;
    311311
    312312    PS_PTR_CHECK_NULL(fd, success);
     
    338338        break;
    339339    case PS_META_STR:
    340         fprintf(fd,format, metadataItem->data.V);
     340        fprintf(fd,format, (char*)metadataItem->data.V);
    341341        break;
    342342    default:
     
    344344        success = false;
    345345    }
    346 
    347     success = true;
    348346
    349347    return success;
  • trunk/psLib/src/collections/psMetadata.c

    r2971 r2973  
    1212*  @author Ross Harman, MHPCC
    1313*
    14 *  @version $Revision: 1.44 $ $Name: not supported by cvs2svn $
    15 *  @date $Date: 2005-01-13 19:50:44 $
     14*  @version $Revision: 1.45 $ $Name: not supported by cvs2svn $
     15*  @date $Date: 2005-01-13 20:48:59 $
    1616*
    1717*  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    421421void* psMetadataLookupPtr(psMetadata *md, const char *key, psU32 *status)
    422422{
    423     void *value = NULL;
    424     psElemType pType;
    425423    psMetadataItem *metadataItem = NULL;
    426424
     425    if (status) {
     426        *status = 0;
     427    }
    427428
    428429    metadataItem = psMetadataLookup(md, key);
    429430    if(metadataItem == NULL) {
    430         *status = 1;
    431         return value;
    432     }
    433 
    434     pType = metadataItem->pType;
    435     value = metadataItem->data.V;
    436     if(pType != PS_TYPE_PTR) {
    437         psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psMetadata_METATYPE_MISMATCH, pType,
     431        if (status) {
     432            *status = 1;
     433        }
     434        return NULL;
     435    }
     436
     437    if(metadataItem->type == PS_META_PRIMITIVE && metadataItem->pType != PS_TYPE_PTR) {
     438        if (status) {
     439            *status = 1;
     440        }
     441        psError(PS_ERR_BAD_PARAMETER_VALUE, true,
     442                PS_ERRORTEXT_psMetadata_METATYPE_MISMATCH,
     443                metadataItem->pType,
    438444                PS_TYPE_PTR);
    439     }
    440 
    441     return value;
    442 }
    443 
    444 psS32 psMetadataLookupS32(psMetadata *md, const char *key, psU32 *status)
    445 {
    446     psS32 value = 0;
    447     psElemType pType;
    448     psMetadataItem *metadataItem = NULL;
    449 
    450 
    451     metadataItem = psMetadataLookup(md, key);
    452     if(metadataItem == NULL) {
    453         *status = 1;
    454         return value;
    455     }
    456 
    457     pType = metadataItem->pType;
    458     value = metadataItem->data.S32;
    459     if(pType != PS_TYPE_S32) {
    460         psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psMetadata_METATYPE_MISMATCH, pType,
    461                 PS_TYPE_S32);
    462     }
    463 
    464     return value;
    465 }
    466 
    467 psF32 psMetadataLookupF32(psMetadata *md, const char *key, psU32 *status)
    468 {
    469     psF32 value = 0.0;
    470     psElemType pType;
    471     psMetadataItem *metadataItem = NULL;
    472 
    473 
    474     metadataItem = psMetadataLookup(md, key);
    475     if(metadataItem == NULL) {
    476         *status = 1;
    477         return value;
    478     }
    479 
    480     pType = metadataItem->pType;
    481     value = metadataItem->data.F32;
    482     if(pType != PS_TYPE_F32) {
    483         psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psMetadata_METATYPE_MISMATCH, pType,
    484                 PS_TYPE_F32);
    485     }
    486 
    487     return value;
    488 }
    489 
    490 psF64 psMetadataLookupF64(psMetadata *md, const char *key, psU32 *status)
    491 {
    492     psF64 value = 0.0;
    493     psElemType pType;
    494     psMetadataItem *metadataItem = NULL;
    495 
    496 
    497     metadataItem = psMetadataLookup(md, key);
    498     if(metadataItem == NULL) {
    499         *status = 1;
    500         return value;
    501     }
    502 
    503     pType = metadataItem->pType;
    504     value = metadataItem->data.F64;
    505     if(pType != PS_TYPE_F64) {
    506         psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psMetadata_METATYPE_MISMATCH, pType,
    507                 PS_TYPE_F64);
    508     }
    509 
    510     return value;
    511 }
     445        return NULL;
     446    } else {
     447        return metadataItem->data.V;
     448    }
     449}
     450
     451#define psMetadataLookupNumTYPE(TYPE) \
     452ps##TYPE psMetadataLookup##TYPE(psMetadata *md, const char *key, psU32 *status) \
     453{ \
     454    psMetadataItem *metadataItem = NULL; \
     455    \
     456    if (status) { \
     457        *status = 0; \
     458    } \
     459    \
     460    metadataItem = psMetadataLookup(md, key); \
     461    if(metadataItem == NULL) { \
     462        if (status) { \
     463            *status = 1; \
     464        } \
     465        return 0; \
     466    } \
     467    \
     468    if (metadataItem->type == PS_META_PRIMITIVE) { \
     469        switch (metadataItem->pType) { \
     470        case PS_TYPE_S32: \
     471            return metadataItem->data.S32; \
     472        case PS_TYPE_F32: \
     473            return metadataItem->data.F32; \
     474        case PS_TYPE_F64: \
     475            return metadataItem->data.F64; \
     476        case PS_TYPE_BOOL: \
     477            if (metadataItem->data.B) { \
     478                return 1; \
     479            } \
     480            return 0; \
     481        default: \
     482            break; \
     483        } \
     484    } \
     485    \
     486    /* if you get to this point, the value is not a number. */ \
     487    if (status) { \
     488        *status = 1; \
     489    } \
     490    \
     491    return 0; \
     492}
     493
     494psMetadataLookupNumTYPE(F32)
     495psMetadataLookupNumTYPE(F64)
     496psMetadataLookupNumTYPE(S32)
    512497
    513498psMetadataItem* psMetadataGet(psMetadata *md, psS32 where)
  • trunk/psLib/src/collections/psMetadataIO.c

    r2885 r2973  
    99*  @author Ross Harman, MHPCC
    1010*
    11 *  @version $Revision: 1.17 $ $Name: not supported by cvs2svn $
    12 *  @date $Date: 2005-01-04 18:33:55 $
     11*  @version $Revision: 1.18 $ $Name: not supported by cvs2svn $
     12*  @date $Date: 2005-01-13 20:48:59 $
    1313*
    1414*  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    308308    psMetadataType type;
    309309    psElemType pType;
    310     psBool success = false;
     310    psBool success = true;
    311311
    312312    PS_PTR_CHECK_NULL(fd, success);
     
    338338        break;
    339339    case PS_META_STR:
    340         fprintf(fd,format, metadataItem->data.V);
     340        fprintf(fd,format, (char*)metadataItem->data.V);
    341341        break;
    342342    default:
     
    344344        success = false;
    345345    }
    346 
    347     success = true;
    348346
    349347    return success;
  • trunk/psLib/src/dataIO/psFits.c

    r2971 r2973  
    77 *  @author Robert DeSonia, MHPCC
    88 *
    9  *  @version $Revision: 1.7 $ $Name: not supported by cvs2svn $
    10  *  @date $Date: 2005-01-13 19:50:44 $
     9 *  @version $Revision: 1.8 $ $Name: not supported by cvs2svn $
     10 *  @date $Date: 2005-01-13 20:48:59 $
    1111 *
    1212 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    3737                                      "EXTNAME",
    3838                                      "HDUNAME",
     39                                      "XTENSION",
     40                                      "TFIELDS",
    3941                                      NULL
    4042                                  };
  • trunk/psLib/src/fileUtils/psFits.c

    r2971 r2973  
    77 *  @author Robert DeSonia, MHPCC
    88 *
    9  *  @version $Revision: 1.7 $ $Name: not supported by cvs2svn $
    10  *  @date $Date: 2005-01-13 19:50:44 $
     9 *  @version $Revision: 1.8 $ $Name: not supported by cvs2svn $
     10 *  @date $Date: 2005-01-13 20:48:59 $
    1111 *
    1212 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    3737                                      "EXTNAME",
    3838                                      "HDUNAME",
     39                                      "XTENSION",
     40                                      "TFIELDS",
    3941                                      NULL
    4042                                  };
  • trunk/psLib/src/fits/psFits.c

    r2971 r2973  
    77 *  @author Robert DeSonia, MHPCC
    88 *
    9  *  @version $Revision: 1.7 $ $Name: not supported by cvs2svn $
    10  *  @date $Date: 2005-01-13 19:50:44 $
     9 *  @version $Revision: 1.8 $ $Name: not supported by cvs2svn $
     10 *  @date $Date: 2005-01-13 20:48:59 $
    1111 *
    1212 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    3737                                      "EXTNAME",
    3838                                      "HDUNAME",
     39                                      "XTENSION",
     40                                      "TFIELDS",
    3941                                      NULL
    4042                                  };
  • trunk/psLib/src/types/psMetadata.c

    r2971 r2973  
    1212*  @author Ross Harman, MHPCC
    1313*
    14 *  @version $Revision: 1.44 $ $Name: not supported by cvs2svn $
    15 *  @date $Date: 2005-01-13 19:50:44 $
     14*  @version $Revision: 1.45 $ $Name: not supported by cvs2svn $
     15*  @date $Date: 2005-01-13 20:48:59 $
    1616*
    1717*  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    421421void* psMetadataLookupPtr(psMetadata *md, const char *key, psU32 *status)
    422422{
    423     void *value = NULL;
    424     psElemType pType;
    425423    psMetadataItem *metadataItem = NULL;
    426424
     425    if (status) {
     426        *status = 0;
     427    }
    427428
    428429    metadataItem = psMetadataLookup(md, key);
    429430    if(metadataItem == NULL) {
    430         *status = 1;
    431         return value;
    432     }
    433 
    434     pType = metadataItem->pType;
    435     value = metadataItem->data.V;
    436     if(pType != PS_TYPE_PTR) {
    437         psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psMetadata_METATYPE_MISMATCH, pType,
     431        if (status) {
     432            *status = 1;
     433        }
     434        return NULL;
     435    }
     436
     437    if(metadataItem->type == PS_META_PRIMITIVE && metadataItem->pType != PS_TYPE_PTR) {
     438        if (status) {
     439            *status = 1;
     440        }
     441        psError(PS_ERR_BAD_PARAMETER_VALUE, true,
     442                PS_ERRORTEXT_psMetadata_METATYPE_MISMATCH,
     443                metadataItem->pType,
    438444                PS_TYPE_PTR);
    439     }
    440 
    441     return value;
    442 }
    443 
    444 psS32 psMetadataLookupS32(psMetadata *md, const char *key, psU32 *status)
    445 {
    446     psS32 value = 0;
    447     psElemType pType;
    448     psMetadataItem *metadataItem = NULL;
    449 
    450 
    451     metadataItem = psMetadataLookup(md, key);
    452     if(metadataItem == NULL) {
    453         *status = 1;
    454         return value;
    455     }
    456 
    457     pType = metadataItem->pType;
    458     value = metadataItem->data.S32;
    459     if(pType != PS_TYPE_S32) {
    460         psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psMetadata_METATYPE_MISMATCH, pType,
    461                 PS_TYPE_S32);
    462     }
    463 
    464     return value;
    465 }
    466 
    467 psF32 psMetadataLookupF32(psMetadata *md, const char *key, psU32 *status)
    468 {
    469     psF32 value = 0.0;
    470     psElemType pType;
    471     psMetadataItem *metadataItem = NULL;
    472 
    473 
    474     metadataItem = psMetadataLookup(md, key);
    475     if(metadataItem == NULL) {
    476         *status = 1;
    477         return value;
    478     }
    479 
    480     pType = metadataItem->pType;
    481     value = metadataItem->data.F32;
    482     if(pType != PS_TYPE_F32) {
    483         psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psMetadata_METATYPE_MISMATCH, pType,
    484                 PS_TYPE_F32);
    485     }
    486 
    487     return value;
    488 }
    489 
    490 psF64 psMetadataLookupF64(psMetadata *md, const char *key, psU32 *status)
    491 {
    492     psF64 value = 0.0;
    493     psElemType pType;
    494     psMetadataItem *metadataItem = NULL;
    495 
    496 
    497     metadataItem = psMetadataLookup(md, key);
    498     if(metadataItem == NULL) {
    499         *status = 1;
    500         return value;
    501     }
    502 
    503     pType = metadataItem->pType;
    504     value = metadataItem->data.F64;
    505     if(pType != PS_TYPE_F64) {
    506         psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psMetadata_METATYPE_MISMATCH, pType,
    507                 PS_TYPE_F64);
    508     }
    509 
    510     return value;
    511 }
     445        return NULL;
     446    } else {
     447        return metadataItem->data.V;
     448    }
     449}
     450
     451#define psMetadataLookupNumTYPE(TYPE) \
     452ps##TYPE psMetadataLookup##TYPE(psMetadata *md, const char *key, psU32 *status) \
     453{ \
     454    psMetadataItem *metadataItem = NULL; \
     455    \
     456    if (status) { \
     457        *status = 0; \
     458    } \
     459    \
     460    metadataItem = psMetadataLookup(md, key); \
     461    if(metadataItem == NULL) { \
     462        if (status) { \
     463            *status = 1; \
     464        } \
     465        return 0; \
     466    } \
     467    \
     468    if (metadataItem->type == PS_META_PRIMITIVE) { \
     469        switch (metadataItem->pType) { \
     470        case PS_TYPE_S32: \
     471            return metadataItem->data.S32; \
     472        case PS_TYPE_F32: \
     473            return metadataItem->data.F32; \
     474        case PS_TYPE_F64: \
     475            return metadataItem->data.F64; \
     476        case PS_TYPE_BOOL: \
     477            if (metadataItem->data.B) { \
     478                return 1; \
     479            } \
     480            return 0; \
     481        default: \
     482            break; \
     483        } \
     484    } \
     485    \
     486    /* if you get to this point, the value is not a number. */ \
     487    if (status) { \
     488        *status = 1; \
     489    } \
     490    \
     491    return 0; \
     492}
     493
     494psMetadataLookupNumTYPE(F32)
     495psMetadataLookupNumTYPE(F64)
     496psMetadataLookupNumTYPE(S32)
    512497
    513498psMetadataItem* psMetadataGet(psMetadata *md, psS32 where)
  • trunk/psLib/src/types/psMetadataConfig.c

    r2885 r2973  
    99*  @author Ross Harman, MHPCC
    1010*
    11 *  @version $Revision: 1.17 $ $Name: not supported by cvs2svn $
    12 *  @date $Date: 2005-01-04 18:33:55 $
     11*  @version $Revision: 1.18 $ $Name: not supported by cvs2svn $
     12*  @date $Date: 2005-01-13 20:48:59 $
    1313*
    1414*  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    308308    psMetadataType type;
    309309    psElemType pType;
    310     psBool success = false;
     310    psBool success = true;
    311311
    312312    PS_PTR_CHECK_NULL(fd, success);
     
    338338        break;
    339339    case PS_META_STR:
    340         fprintf(fd,format, metadataItem->data.V);
     340        fprintf(fd,format, (char*)metadataItem->data.V);
    341341        break;
    342342    default:
     
    344344        success = false;
    345345    }
    346 
    347     success = true;
    348346
    349347    return success;
  • trunk/psLib/src/xml/psXML.c

    r2885 r2973  
    99*  @author Ross Harman, MHPCC
    1010*
    11 *  @version $Revision: 1.17 $ $Name: not supported by cvs2svn $
    12 *  @date $Date: 2005-01-04 18:33:55 $
     11*  @version $Revision: 1.18 $ $Name: not supported by cvs2svn $
     12*  @date $Date: 2005-01-13 20:48:59 $
    1313*
    1414*  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    308308    psMetadataType type;
    309309    psElemType pType;
    310     psBool success = false;
     310    psBool success = true;
    311311
    312312    PS_PTR_CHECK_NULL(fd, success);
     
    338338        break;
    339339    case PS_META_STR:
    340         fprintf(fd,format, metadataItem->data.V);
     340        fprintf(fd,format, (char*)metadataItem->data.V);
    341341        break;
    342342    default:
     
    344344        success = false;
    345345    }
    346 
    347     success = true;
    348346
    349347    return success;
Note: See TracChangeset for help on using the changeset viewer.