IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Feb 28, 2005, 1:34:10 PM (21 years ago)
Author:
desonia
Message:

Changes to psMetadata to match latest SDRS.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/psLib/src/fits/psFits.c

    r3298 r3341  
    77 *  @author Robert DeSonia, MHPCC
    88 *
    9  *  @version $Revision: 1.19 $ $Name: not supported by cvs2svn $
    10  *  @date $Date: 2005-02-22 19:25:52 $
     9 *  @version $Revision: 1.20 $ $Name: not supported by cvs2svn $
     10 *  @date $Date: 2005-02-28 23:34:10 $
    1111 *
    1212 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    162162}
    163163
    164 static bool convertPsTypeToBinaryTForm(psElemType type, char** fitsType)
     164static bool convertMetadataTypeToBinaryTForm(psMetadataType type, char** fitsType)
    165165{
    166166    switch (type) {
    167     case PS_TYPE_BOOL:
     167    case PS_META_BOOL:
    168168        *fitsType = psStringCopy("1L");
    169169        break;
    170     case PS_TYPE_S32:
     170    case PS_META_S32:
    171171        *fitsType = psStringCopy("1J");
    172172        break;
    173     case PS_TYPE_F32:
     173    case PS_META_F32:
    174174        *fitsType = psStringCopy("1E");
    175175        break;
    176     case PS_TYPE_F64:
     176    case PS_META_F64:
    177177        *fitsType = psStringCopy("1D");
    178178        break;
     
    506506                                        PS_LIST_TAIL,
    507507                                        keyName,
    508                                         PS_TYPE_S32,
    509                                         PS_META_PRIMITIVE,
     508                                        PS_META_S32,
    510509                                        keyComment,
    511510                                        atoi(keyValue));
     
    517516                                        PS_LIST_TAIL,
    518517                                        keyName,
    519                                         PS_TYPE_F64,
    520                                         PS_META_PRIMITIVE,
     518                                        PS_META_F64,
    521519                                        keyComment,
    522520                                        atof(keyValue));
     
    529527                                            PS_LIST_TAIL,
    530528                                            keyName,
    531                                             PS_TYPE_PTR,
    532529                                            PS_META_STR,
    533530                                            keyComment,
     
    537534                                            PS_LIST_TAIL,
    538535                                            keyName,
    539                                             PS_TYPE_PTR,
    540536                                            PS_META_STR,
    541537                                            keyComment,
     
    548544                                        PS_LIST_TAIL,
    549545                                        keyName,
    550                                         PS_TYPE_BOOL,
    551                                         PS_META_PRIMITIVE,
     546                                        PS_META_BOOL,
    552547                                        keyComment,
    553548                                        tempBool);
     
    10721067    psMetadataItem* item;
    10731068    while ( (item=psListGetAndIncrement(iter)) != NULL ) {
    1074         if (item->type == PS_META_PRIMITIVE) { // we only write primitive data types.
    1075             switch (item->pType) {
    1076             case PS_TYPE_BOOL: {
    1077                     int value = item->data.B;
    1078                     fits_update_key(fits->p_fd,
    1079                                     TLOGICAL,
    1080                                     item->name,
    1081                                     &value,
    1082                                     item->comment,
    1083                                     &status);
    1084                     break;
    1085                 }
    1086             case PS_TYPE_S32:
     1069        switch (item->type) {
     1070        case PS_META_BOOL: {
     1071                int value = item->data.B;
    10871072                fits_update_key(fits->p_fd,
    1088                                 TINT,
     1073                                TLOGICAL,
    10891074                                item->name,
    1090                                 &item->data.S32,
     1075                                &value,
    10911076                                item->comment,
    10921077                                &status);
    10931078                break;
    1094             case PS_TYPE_F32:
    1095                 fits_update_key(fits->p_fd,
    1096                                 TFLOAT,
    1097                                 item->name,
    1098                                 &item->data.F32,
    1099                                 item->comment,
    1100                                 &status);
    1101                 break;
    1102             case PS_TYPE_F64:
    1103                 fits_update_key(fits->p_fd,
    1104                                 TDOUBLE,
    1105                                 item->name,
    1106                                 &item->data.F64,
    1107                                 item->comment,
    1108                                 &status);
    1109                 break;
    1110             default:
    1111                 psError(PS_ERR_BAD_PARAMETER_TYPE, true,
    1112                         PS_ERRORTEXT_psFits_METADATA_PTYPE_UNSUPPORTED,
    1113                         item->pType);
    1114                 break;
    11151079            }
    1116         } else if (item->type == PS_META_STR) {
     1080        case PS_META_S32:
     1081            fits_update_key(fits->p_fd,
     1082                            TINT,
     1083                            item->name,
     1084                            &item->data.S32,
     1085                            item->comment,
     1086                            &status);
     1087            break;
     1088        case PS_META_F32:
     1089            fits_update_key(fits->p_fd,
     1090                            TFLOAT,
     1091                            item->name,
     1092                            &item->data.F32,
     1093                            item->comment,
     1094                            &status);
     1095            break;
     1096        case PS_META_F64:
     1097            fits_update_key(fits->p_fd,
     1098                            TDOUBLE,
     1099                            item->name,
     1100                            &item->data.F64,
     1101                            item->comment,
     1102                            &status);
     1103            break;
     1104        case PS_META_STR:
    11171105            fits_update_key(fits->p_fd,
    11181106                            TSTRING,
     
    11211109                            item->comment,
    11221110                            &status);
     1111            break;
     1112        default:  // all other META types are ignored
     1113            break;
    11231114        }
    11241115
     
    12141205                              1, 1, NULL, &value, &anynul, &status); \
    12151206                psMetadataAdd(data,PS_LIST_TAIL, name, \
    1216                               PS_TYPE_##TYPE, PS_META_PRIMITIVE, \
     1207                              PS_META_##TYPE, \
    12171208                              "", (ps##TYPE)value); \
    12181209                break; \
     
    12341225                    if (anynul == 0) {
    12351226                        psMetadataAdd(data,PS_LIST_TAIL, name,
    1236                                       PS_TYPE_PTR, PS_META_STR,
     1227                                      PS_META_STR,
    12371228                                      "", value);
    12381229                    }
     
    14871478                                   PS_LIST_HEAD,true);
    14881479            while ( (item=psListGetAndIncrement(iter)) != NULL) {
    1489                 if (item->type == PS_META_PRIMITIVE) {
     1480                if (PS_META_IS_PRIMITIVE(item->type)) {
    14901481                    bool found = false;
    14911482                    for (int n=0; n < columns->n && ! found; n++) {
     
    15151506        char* fitsType;
    15161507        columnNames->data[n] = psMemIncrRefCounter(((psMetadataItem*)columns->data[n])->name);
    1517         if ( ! convertPsTypeToBinaryTForm(((psMetadataItem*)columns->data[n])->pType,
    1518                                           &fitsType)) {
     1508        if ( ! convertMetadataTypeToBinaryTForm(((psMetadataItem*)columns->data[n])->type,
     1509                                                &fitsType)) {
    15191510            // XXX: error message
    15201511            return false;
     
    15401531        int row;
    15411532        item = columns->data[n];
    1542 
    1543         if (item->type == PS_META_PRIMITIVE) {
    1544             psVector* col = psVectorAlloc(table->n, item->pType);
    1545             switch (item->pType) {
    1546             case PS_TYPE_S32:
     1533        if (PS_META_IS_PRIMITIVE(item->type)) {
     1534            psVector* col = NULL;
     1535            switch (item->type) {
     1536            case PS_META_S32:
     1537                col = psVectorAlloc(table->n, PS_TYPE_S32);
    15471538                for (row = 0; row < table->n; row++) {
    15481539                    col->data.S32[row] = psMetadataLookupS32(NULL,
     
    15581549                                   &status);
    15591550                break;
    1560             case PS_TYPE_F32:
     1551            case PS_META_F32:
     1552                col = psVectorAlloc(table->n, PS_TYPE_F32);
    15611553                for (row = 0; row < table->n; row++) {
    15621554                    col->data.F32[row] = psMetadataLookupF32(NULL,
     
    15721564                                   &status);
    15731565                break;
    1574             case PS_TYPE_F64:
     1566            case PS_META_F64:
     1567                col = psVectorAlloc(table->n, PS_TYPE_F64);
    15751568                for (row = 0; row < table->n; row++) {
    15761569                    col->data.F64[row] = psMetadataLookupF64(NULL,
     
    15861579                                   &status);
    15871580                break;
    1588             case PS_TYPE_BOOL:
     1581            case PS_META_BOOL:
     1582                col = psVectorAlloc(table->n, PS_TYPE_BOOL);
    15891583                for (row = 0; row < table->n; row++) {
    15901584                    col->data.S8[row] = psMetadataLookupBool(NULL,
     
    16011595                break;
    16021596            default:
    1603                 // XXX: error message
     1597                // XXX: error message?
    16041598                break;
    16051599            }
Note: See TracChangeset for help on using the changeset viewer.