IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 3779


Ignore:
Timestamp:
Apr 27, 2005, 4:45:12 PM (21 years ago)
Author:
desonia
Message:

tweaked the logic in adding/allocating metadata items.

Location:
trunk/psLib
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/psLib/configure.ac

    r3769 r3779  
    4343
    4444AC_LANG_PUSH(Fortran)
    45 AC_PROG_F77(gfortran g95 g90 g77 f95 f90 f77)
     45AC_PROG_F77([gfortran g77])
    4646AC_F77_WRAPPERS
    4747AC_LANG_POP(Fortran)
  • trunk/psLib/pslib.kdevses

    r3769 r3779  
    22<!DOCTYPE KDevPrjSession>
    33<KDevPrjSession>
    4  <DocsAndViews NumberOfDocuments="5" >
    5   <Doc0 NumberOfViews="1" URL="file:///home/desonia/panstarrs/psLib/src/collections/psVector.h" >
    6    <View0 line="145" Type="Source" />
    7   </Doc0>
    8   <Doc1 NumberOfViews="1" URL="file:///home/desonia/panstarrs/psLib/src/collections/Makefile.am" >
    9    <View0 line="16" Type="Source" />
    10   </Doc1>
    11   <Doc2 NumberOfViews="1" URL="file:///home/desonia/panstarrs/psLib/src/image/Makefile.am" >
    12    <View0 line="19" Type="Source" />
    13   </Doc2>
    14   <Doc3 NumberOfViews="1" URL="file:///home/desonia/panstarrs/psLib/src/collections/psMetadata.c" >
    15    <View0 line="196" Type="Source" />
    16   </Doc3>
    17   <Doc4 NumberOfViews="1" URL="file:///home/desonia/panstarrs/psLib/configure.ac" >
    18    <View0 line="25" Type="Source" />
    19   </Doc4>
    20  </DocsAndViews>
     4 <DocsAndViews NumberOfDocuments="0" />
    215 <pluginList>
    226  <kdevdebugger>
  • trunk/psLib/src/collections/psMetadata.c

    r3765 r3779  
    1212*  @author Ross Harman, MHPCC
    1313*
    14 *  @version $Revision: 1.59 $ $Name: not supported by cvs2svn $
    15 *  @date $Date: 2005-04-23 02:07:27 $
     14*  @version $Revision: 1.60 $ $Name: not supported by cvs2svn $
     15*  @date $Date: 2005-04-28 02:45:12 $
    1616*
    1717*  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    3939#include "psConstants.h"
    4040
    41 /******************************************************************************/
    42 /*  DEFINE STATEMENTS                                                         */
    43 /******************************************************************************/
    44 
    45 /** Maximum size of a string */
    46 #define MAX_STRING_LENGTH 1024
    47 
    48 /******************************************************************************/
    49 /*  TYPE DEFINITIONS                                                          */
    50 /******************************************************************************/
    51 
    52 // None
    53 
    54 /*****************************************************************************/
    55 /*  GLOBAL VARIABLES                                                         */
    56 /*****************************************************************************/
    57 
    58 // None
    59 
    60 /*****************************************************************************/
    61 /*  FILE STATIC VARIABLES                                                    */
    62 /*****************************************************************************/
    63 
    6441static psS32 metadataId = 0;
    65 
    66 /*****************************************************************************/
    67 /*  FUNCTION IMPLEMENTATION - LOCAL                                          */
    68 /*****************************************************************************/
    6942
    7043static psMetadataItem* makeMetaMulti(psHash* table, const char* key, psMetadataItem* existing)
     
    7548    }
    7649
    77     // move any existing entry into a psList
    78     psList* newList = psListAlloc(existing);
    7950
    8051    psMetadataItem* item = psMetadataItemAlloc(key,
    8152                           PS_META_MULTI,
    82                            "",
    83                            newList);
     53                           "List of Metadata Items",
     54                           NULL);
     55
     56    psListAdd(item->data.list,PS_LIST_TAIL,existing);
    8457
    8558    if (existing != NULL) {
     
    8760    }
    8861
    89     psHashAdd(table, key, item); // put in the new entry
    90 
    91     // free local references of newly allocated items.
    92     psFree(newList);
     62    psHashAdd(table, key, item); // put in the new MULTI list entry
     63
     64    // free local references of newly allocated item.
    9365    psFree(item);
    9466
     
    174146{
    175147    psMetadataItem* metadataItem = NULL;
    176 
     148    char tmp;
     149    int nBytes;
    177150
    178151    PS_PTR_CHECK_NULL(name,NULL);
     
    185158    psMemSetDeallocator(metadataItem, (psFreeFcn) metadataItemFree);
    186159
    187     // Allocate and set metadata item comment
     160    // set metadata item comment
    188161    if (comment == NULL) {
    189162        // Per SDRS, null isn't allowed, must use "" instead
     
    200173
    201174    // Allocate and set metadata item name
    202     metadataItem->name = (char *)psAlloc(sizeof(char) * MAX_STRING_LENGTH);
     175    nBytes = vsnprintf(&tmp, 0, name, argPtr) + 1;
     176    metadataItem->name = (char *)psAlloc(sizeof(char) * nBytes);
    203177    vsprintf(metadataItem->name, name, argPtr);
    204178
     
    219193    case PS_META_STR:
    220194        // Perform copy of input strings
    221         metadataItem->data.V = psStringNCopy(va_arg(argPtr, char *), MAX_STRING_LENGTH);
     195        metadataItem->data.V = psStringCopy(va_arg(argPtr, char *));
     196        break;
     197    case PS_META_MULTI:
     198        // MULTI needs to create a psList entry, value must be NULL
     199        metadataItem->data.list = psListAlloc(NULL);
    222200        break;
    223201    case PS_META_LIST:
     
    229207    case PS_META_ASTROM:
    230208    case PS_META_UNKNOWN:
    231     case PS_META_MULTI:
    232209        // Copy of input data not performed due to variability of data types
    233210        metadataItem->data.V = psMemIncrRefCounter(va_arg(argPtr, psPtr));
     
    281258
    282259    // See if key is already in table
    283     existingEntry = (psMetadataItem*)psHashLookup(mdTable, key);
    284 
     260    existingEntry = psMetadataLookup(md, key);
     261
     262    // if replace is set, remove any existing items of the same key
     263    if (existingEntry != NULL && (flags & PS_META_REPLACE) != 0) {
     264        psMetadataRemove(md,0,key);
     265        existingEntry = NULL;
     266    }
     267
     268    // if the metadataItem is MULTI, just add the encapsulated entries
    285269    if (metadataItem->type == PS_META_MULTI) {
    286         // the incoming entry is PS_META_MULTI
    287 
    288         // force the hash entry to be PS_META_MULTI
     270
     271        // make sure the existing entry is PS_META_MULTI
    289272        existingEntry = makeMetaMulti(mdTable,key,existingEntry);
    290273
     274        psBool status = true;
    291275        // add all the items in the incoming entry to metadata
    292276        psList* list = metadataItem->data.list;
     
    294278            psListIterator* iter = psListIteratorAlloc(list,PS_LIST_HEAD,true);
    295279            psMetadataItem* listItem;
    296             while ((listItem=(psMetadataItem*)psListGetAndIncrement(iter)) != NULL) {
    297                 psMetadataAddItem(md,listItem,location,flags);
     280            while (status && (listItem=(psMetadataItem*)psListGetAndIncrement(iter)) != NULL) {
     281                status |= psMetadataAddItem(md,listItem,location,flags);
    298282            }
    299283            psFree(iter);
    300284        }
    301285
    302         return true; // all done.
     286        return status; // all done.
    303287    }
    304288
    305289    // how the item is added to the hash depends on prior existence, flags, etc.
    306     if(existingEntry != NULL) { // prior existence
     290    if(existingEntry == NULL) { // no prior existence
     291        // Node doesn't already exist - Add new metadata item to metadata collection's hash
     292        if(!psHashAdd(mdTable, key, metadataItem)) {
     293            psError(PS_ERR_UNKNOWN,false,PS_ERRORTEXT_psMetadata_ADD_TABLE_FAILED,key);
     294            return false;
     295        }
     296    } else {
    307297        if (existingEntry->type == PS_META_MULTI || (flags & PS_META_DUPLICATE_OK) != 0) {
    308298            // duplicate entries allowed - add another entry.
    309299
    310             // make sure the existing entry is PS_META_MULTI
     300            // make sure the existing hash entry is PS_META_MULTI
    311301            existingEntry = makeMetaMulti(mdTable,key,existingEntry);
    312302
    313             // add to the hash's list of duplicate entries
     303            // add to the hash key's list of entries
    314304            if (! psListAdd(existingEntry->data.list, PS_LIST_TAIL, metadataItem) ) {
    315305                psError(PS_ERR_UNKNOWN,false,PS_ERRORTEXT_psMetadata_ADD_COLLECTION_FAILED,key);
    316306                return false;
    317307            }
    318         } else if ((flags & PS_META_REPLACE) != 0) {
    319             // replace entry instead of creating a duplicate entry.
    320 
    321             // remove the existing entry from metadata
    322             psMetadataRemove(md,0,key);
    323 
    324             // treat as if new (added to list below)
    325             if(!psHashAdd(mdTable, key, metadataItem)) {
    326                 psError(PS_ERR_UNKNOWN,false,PS_ERRORTEXT_psMetadata_ADD_TABLE_FAILED,key);
    327                 return false;
    328             }
    329308        } else {
    330             // default is to error on duplicate entry.
     309            // error on duplicate entry.
    331310            psError(PS_ERR_BAD_PARAMETER_VALUE, true,
    332311                    PS_ERRORTEXT_psMetadata_DUPLICATE_NOT_ALLOWED);
    333312            return false;
    334313        }
    335     } else {
    336         // OK, this is a new item.
    337 
    338         // Node doesn't exist - Add new metadata item to metadata collection's hash
    339         if(!psHashAdd(mdTable, key, metadataItem)) {
    340             psError(PS_ERR_UNKNOWN,false,PS_ERRORTEXT_psMetadata_ADD_TABLE_FAILED,key);
    341             return false;
    342         }
    343     }
    344 
     314    }
     315
     316    // finally, add the metadataItem to the metadata's list.
    345317    if(!psListAdd(mdList, location, metadataItem)) {
    346318        psError(PS_ERR_UNKNOWN,false,PS_ERRORTEXT_psMetadata_ADD_COLLECTION_FAILED,key);
  • trunk/psLib/src/types/psMetadata.c

    r3765 r3779  
    1212*  @author Ross Harman, MHPCC
    1313*
    14 *  @version $Revision: 1.59 $ $Name: not supported by cvs2svn $
    15 *  @date $Date: 2005-04-23 02:07:27 $
     14*  @version $Revision: 1.60 $ $Name: not supported by cvs2svn $
     15*  @date $Date: 2005-04-28 02:45:12 $
    1616*
    1717*  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    3939#include "psConstants.h"
    4040
    41 /******************************************************************************/
    42 /*  DEFINE STATEMENTS                                                         */
    43 /******************************************************************************/
    44 
    45 /** Maximum size of a string */
    46 #define MAX_STRING_LENGTH 1024
    47 
    48 /******************************************************************************/
    49 /*  TYPE DEFINITIONS                                                          */
    50 /******************************************************************************/
    51 
    52 // None
    53 
    54 /*****************************************************************************/
    55 /*  GLOBAL VARIABLES                                                         */
    56 /*****************************************************************************/
    57 
    58 // None
    59 
    60 /*****************************************************************************/
    61 /*  FILE STATIC VARIABLES                                                    */
    62 /*****************************************************************************/
    63 
    6441static psS32 metadataId = 0;
    65 
    66 /*****************************************************************************/
    67 /*  FUNCTION IMPLEMENTATION - LOCAL                                          */
    68 /*****************************************************************************/
    6942
    7043static psMetadataItem* makeMetaMulti(psHash* table, const char* key, psMetadataItem* existing)
     
    7548    }
    7649
    77     // move any existing entry into a psList
    78     psList* newList = psListAlloc(existing);
    7950
    8051    psMetadataItem* item = psMetadataItemAlloc(key,
    8152                           PS_META_MULTI,
    82                            "",
    83                            newList);
     53                           "List of Metadata Items",
     54                           NULL);
     55
     56    psListAdd(item->data.list,PS_LIST_TAIL,existing);
    8457
    8558    if (existing != NULL) {
     
    8760    }
    8861
    89     psHashAdd(table, key, item); // put in the new entry
    90 
    91     // free local references of newly allocated items.
    92     psFree(newList);
     62    psHashAdd(table, key, item); // put in the new MULTI list entry
     63
     64    // free local references of newly allocated item.
    9365    psFree(item);
    9466
     
    174146{
    175147    psMetadataItem* metadataItem = NULL;
    176 
     148    char tmp;
     149    int nBytes;
    177150
    178151    PS_PTR_CHECK_NULL(name,NULL);
     
    185158    psMemSetDeallocator(metadataItem, (psFreeFcn) metadataItemFree);
    186159
    187     // Allocate and set metadata item comment
     160    // set metadata item comment
    188161    if (comment == NULL) {
    189162        // Per SDRS, null isn't allowed, must use "" instead
     
    200173
    201174    // Allocate and set metadata item name
    202     metadataItem->name = (char *)psAlloc(sizeof(char) * MAX_STRING_LENGTH);
     175    nBytes = vsnprintf(&tmp, 0, name, argPtr) + 1;
     176    metadataItem->name = (char *)psAlloc(sizeof(char) * nBytes);
    203177    vsprintf(metadataItem->name, name, argPtr);
    204178
     
    219193    case PS_META_STR:
    220194        // Perform copy of input strings
    221         metadataItem->data.V = psStringNCopy(va_arg(argPtr, char *), MAX_STRING_LENGTH);
     195        metadataItem->data.V = psStringCopy(va_arg(argPtr, char *));
     196        break;
     197    case PS_META_MULTI:
     198        // MULTI needs to create a psList entry, value must be NULL
     199        metadataItem->data.list = psListAlloc(NULL);
    222200        break;
    223201    case PS_META_LIST:
     
    229207    case PS_META_ASTROM:
    230208    case PS_META_UNKNOWN:
    231     case PS_META_MULTI:
    232209        // Copy of input data not performed due to variability of data types
    233210        metadataItem->data.V = psMemIncrRefCounter(va_arg(argPtr, psPtr));
     
    281258
    282259    // See if key is already in table
    283     existingEntry = (psMetadataItem*)psHashLookup(mdTable, key);
    284 
     260    existingEntry = psMetadataLookup(md, key);
     261
     262    // if replace is set, remove any existing items of the same key
     263    if (existingEntry != NULL && (flags & PS_META_REPLACE) != 0) {
     264        psMetadataRemove(md,0,key);
     265        existingEntry = NULL;
     266    }
     267
     268    // if the metadataItem is MULTI, just add the encapsulated entries
    285269    if (metadataItem->type == PS_META_MULTI) {
    286         // the incoming entry is PS_META_MULTI
    287 
    288         // force the hash entry to be PS_META_MULTI
     270
     271        // make sure the existing entry is PS_META_MULTI
    289272        existingEntry = makeMetaMulti(mdTable,key,existingEntry);
    290273
     274        psBool status = true;
    291275        // add all the items in the incoming entry to metadata
    292276        psList* list = metadataItem->data.list;
     
    294278            psListIterator* iter = psListIteratorAlloc(list,PS_LIST_HEAD,true);
    295279            psMetadataItem* listItem;
    296             while ((listItem=(psMetadataItem*)psListGetAndIncrement(iter)) != NULL) {
    297                 psMetadataAddItem(md,listItem,location,flags);
     280            while (status && (listItem=(psMetadataItem*)psListGetAndIncrement(iter)) != NULL) {
     281                status |= psMetadataAddItem(md,listItem,location,flags);
    298282            }
    299283            psFree(iter);
    300284        }
    301285
    302         return true; // all done.
     286        return status; // all done.
    303287    }
    304288
    305289    // how the item is added to the hash depends on prior existence, flags, etc.
    306     if(existingEntry != NULL) { // prior existence
     290    if(existingEntry == NULL) { // no prior existence
     291        // Node doesn't already exist - Add new metadata item to metadata collection's hash
     292        if(!psHashAdd(mdTable, key, metadataItem)) {
     293            psError(PS_ERR_UNKNOWN,false,PS_ERRORTEXT_psMetadata_ADD_TABLE_FAILED,key);
     294            return false;
     295        }
     296    } else {
    307297        if (existingEntry->type == PS_META_MULTI || (flags & PS_META_DUPLICATE_OK) != 0) {
    308298            // duplicate entries allowed - add another entry.
    309299
    310             // make sure the existing entry is PS_META_MULTI
     300            // make sure the existing hash entry is PS_META_MULTI
    311301            existingEntry = makeMetaMulti(mdTable,key,existingEntry);
    312302
    313             // add to the hash's list of duplicate entries
     303            // add to the hash key's list of entries
    314304            if (! psListAdd(existingEntry->data.list, PS_LIST_TAIL, metadataItem) ) {
    315305                psError(PS_ERR_UNKNOWN,false,PS_ERRORTEXT_psMetadata_ADD_COLLECTION_FAILED,key);
    316306                return false;
    317307            }
    318         } else if ((flags & PS_META_REPLACE) != 0) {
    319             // replace entry instead of creating a duplicate entry.
    320 
    321             // remove the existing entry from metadata
    322             psMetadataRemove(md,0,key);
    323 
    324             // treat as if new (added to list below)
    325             if(!psHashAdd(mdTable, key, metadataItem)) {
    326                 psError(PS_ERR_UNKNOWN,false,PS_ERRORTEXT_psMetadata_ADD_TABLE_FAILED,key);
    327                 return false;
    328             }
    329308        } else {
    330             // default is to error on duplicate entry.
     309            // error on duplicate entry.
    331310            psError(PS_ERR_BAD_PARAMETER_VALUE, true,
    332311                    PS_ERRORTEXT_psMetadata_DUPLICATE_NOT_ALLOWED);
    333312            return false;
    334313        }
    335     } else {
    336         // OK, this is a new item.
    337 
    338         // Node doesn't exist - Add new metadata item to metadata collection's hash
    339         if(!psHashAdd(mdTable, key, metadataItem)) {
    340             psError(PS_ERR_UNKNOWN,false,PS_ERRORTEXT_psMetadata_ADD_TABLE_FAILED,key);
    341             return false;
    342         }
    343     }
    344 
     314    }
     315
     316    // finally, add the metadataItem to the metadata's list.
    345317    if(!psListAdd(mdList, location, metadataItem)) {
    346318        psError(PS_ERR_UNKNOWN,false,PS_ERRORTEXT_psMetadata_ADD_COLLECTION_FAILED,key);
  • trunk/psLib/test/collections/tst_psMetadataIO.c

    r3682 r3779  
    1414 *  @author  Robert DeSonia, MHPCC
    1515 *
    16  *  @version $Revision: 1.13 $  $Name: not supported by cvs2svn $
    17  *  @date  $Date: 2005-04-07 20:27:41 $
     16 *  @version $Revision: 1.14 $  $Name: not supported by cvs2svn $
     17 *  @date  $Date: 2005-04-28 02:45:12 $
    1818 *
    1919 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    121121    printPositiveTestHeader(stdout, "psMetadata", "Test B - Read config file with overwrite set false");
    122122    psMetadata *metadata2 = NULL;
    123     psS32 failedLines2 = 0;
     123    psU32 failedLines2 = 0;
    124124    metadata2 = psMetadataParseConfig(metadata2, &failedLines2, "test.config", false);
    125125    printf("Failed lines: %d Expected: 7 ", failedLines2);
     
    131131    printPositiveTestHeader(stdout, "psMetadata", "Test C - Read config file without auto-allocation of metadata");
    132132    psMetadata *metadata3 = psMetadataAlloc();
    133     psS32 failedLines3 = 0;
     133    psU32 failedLines3 = 0;
    134134    metadata3 = psMetadataParseConfig(metadata3, &failedLines3, "test.config", true);
    135135    printf("Failed lines: %d Expected: 6 ", failedLines3);
  • trunk/psLib/test/collections/tst_psMetadata_01.c

    r3682 r3779  
    1818*  @author  Ross Harman, MHPCC
    1919*
    20 *  @version $Revision: 1.24 $  $Name: not supported by cvs2svn $
    21 *  @date  $Date: 2005-04-07 20:27:41 $
     20*  @version $Revision: 1.25 $  $Name: not supported by cvs2svn $
     21*  @date  $Date: 2005-04-28 02:45:12 $
    2222*
    2323*  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    126126    printFooter(stdout, "psMetadata", "Test A - Read 1st hdr from simple FITS file", true);
    127127
    128     printf("ID=%d\n",(int)psMemGetId());
    129 
    130128    // Test B - Read 2nd hdr from complex FITS file
    131129
     
    174172    printFooter(stdout, "psMetadata", "Test B - Read 2nd hdr from complex FITS file", true);
    175173
    176     printf("ID=%d\n",(int)psMemGetId());
    177 
    178174    // Test C - Read named hdr from complex FITS file
    179175    printPositiveTestHeader(stdout, "psMetadata", "Test C - Read named hdr from complex FITS file");
  • trunk/psLib/test/collections/verified/tst_psMetadataIO.stdout

    r3690 r3779  
    2626
    2727Contents of metadata table:
    28  Key Name:  comment  Key mdType: 0x0001000a Key Value:                  Key Comment:
     28 Key Name:  comment  Key mdType: 0x0001000a Key Value:                  Key Comment: List of Metadata Items
    2929    Key Name:  comment  Key mdType: 0x00010001 Key Value:            This  Key Comment:
    3030    Key Name:  comment  Key mdType: 0x00010001 Key Value:              is  Key Comment:
     
    7373
    7474Contents of metadata table:
    75  Key Name:  comment  Key mdType: 0x0001000a Key Value:                  Key Comment:
     75 Key Name:  comment  Key mdType: 0x0001000a Key Value:                  Key Comment: List of Metadata Items
    7676    Key Name:  comment  Key mdType: 0x00010001 Key Value:            This  Key Comment:
    7777    Key Name:  comment  Key mdType: 0x00010001 Key Value:              is  Key Comment:
     
    120120
    121121Contents of metadata table:
    122  Key Name:  comment  Key mdType: 0x0001000a Key Value:                  Key Comment:
     122 Key Name:  comment  Key mdType: 0x0001000a Key Value:                  Key Comment: List of Metadata Items
    123123    Key Name:  comment  Key mdType: 0x00010001 Key Value:            This  Key Comment:
    124124    Key Name:  comment  Key mdType: 0x00010001 Key Value:              is  Key Comment:
  • trunk/psLib/test/collections/verified/tst_psMetadata_01.stdout

    r3690 r3779  
    1919---> TESTPOINT PASSED (psMetadata{Test A - Read 1st hdr from simple FITS file} | tst_psMetadata_01.c)
    2020
    21 ID=34
    2221/***************************** TESTPOINT ******************************************\
    2322*             TestFile: tst_psMetadata_01.c                                        *
     
    4544 Key Name:   PCOUNT  Key mdType: 0x00000104  Key Value:               0  Key Comment: required keyword; must = 0
    4645 Key Name: XTENSION  Key mdType: 0x00010001  Key Value:      'IMAGE   '  Key Comment: IMAGE extension
    47  Key Name:   BITPIX  Key mdType: 0x0001000a  Key Value:                  Key Comment:
     46 Key Name:   BITPIX  Key mdType: 0x0001000a  Key Value:                  Key Comment: List of Metadata Items
    4847    Key Name:   BITPIX  Key mdType: 0x00000104  Key Value:             -64  Key Comment: number of bits per data pixel
    4948    Key Name:   BITPIX  Key mdType: 0x00000104  Key Value:             -64  Key Comment: number of bits per data pixel
    5049 Key Name:   GCOUNT  Key mdType: 0x00000104  Key Value:               1  Key Comment: required keyword; must = 1
    51  Key Name:  HISTORY  Key mdType: 0x0001000a  Key Value:                  Key Comment:
     50 Key Name:  HISTORY  Key mdType: 0x0001000a  Key Value:                  Key Comment: List of Metadata Items
    5251    Key Name:  HISTORY  Key mdType: 0x00010001  Key Value:                  Key Comment: File modified by user 'harman' with fv  on 2004-08-04T<DATE>
    5352    Key Name:  HISTORY  Key mdType: 0x00010001  Key Value:                  Key Comment: File modified by user 'harman' with fv  on 2004-08-04T<DATE>
     
    5857---> TESTPOINT PASSED (psMetadata{Test B - Read 2nd hdr from complex FITS file} | tst_psMetadata_01.c)
    5958
    60 ID=138
    6159/***************************** TESTPOINT ******************************************\
    6260*             TestFile: tst_psMetadata_01.c                                        *
     
    8381 Key Name:   GCOUNT  Key mdType: 0x00000104  Key Value:               1  Key Comment: required keyword; must = 1
    8482 Key Name:   BITPIX  Key mdType: 0x00000104  Key Value:             -64  Key Comment: number of bits per data pixel
    85  Key Name:  HISTORY  Key mdType: 0x0001000a  Key Value:                  Key Comment:
     83 Key Name:  HISTORY  Key mdType: 0x0001000a  Key Value:                  Key Comment: List of Metadata Items
    8684    Key Name:  HISTORY  Key mdType: 0x00010001  Key Value:                  Key Comment: File modified by user 'harman' with fv  on 2004-08-04T<DATE>
    8785    Key Name:  HISTORY  Key mdType: 0x00010001  Key Value:                  Key Comment: File modified by user 'harman' with fv  on 2004-08-04T<DATE>
Note: See TracChangeset for help on using the changeset viewer.