IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 5203


Ignore:
Timestamp:
Sep 29, 2005, 3:34:45 PM (21 years ago)
Author:
drobbin
Message:

Added function psMetadataItemAllocPtr and test

Location:
trunk/psLib
Files:
3 edited

Legend:

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

    r5194 r5203  
    1212 *  @author Ross Harman, MHPCC
    1313 *
    14  *  @version $Revision: 1.86 $ $Name: not supported by cvs2svn $
    15  *  @date $Date: 2005-09-29 23:30:32 $
     14 *  @version $Revision: 1.87 $ $Name: not supported by cvs2svn $
     15 *  @date $Date: 2005-09-30 01:34:45 $
    1616 *
    1717 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    183183METADATAITEM_ALLOC_TYPE(S32,psS32,PS_DATA_S32)
    184184METADATAITEM_ALLOC_TYPE(Bool,psBool,PS_DATA_BOOL)
     185
     186psMetadataItem* psMetadataItemAllocPtr(const char *name,
     187                                       psDataType type,
     188                                       const char *comment,
     189                                       psPtr value)
     190{
     191    return (psMetadataItemAlloc(name, type, comment, value));
     192}
     193
    185194
    186195psMetadataItem* psMetadataItemAllocV(const char *name,
     
    465474METADATA_ADD_TYPE(Array,psArray*,PS_DATA_ARRAY)
    466475METADATA_ADD_TYPE(Time,psTime*,PS_DATA_TIME)
     476//METADATA_ADD_TYPE(Ptr,psPtr,PS_DATA_UNKNOWN)
     477
     478bool psMetadataAddPtr(psMetadata *md,
     479                      long location,
     480                      const char *name,
     481                      psDataType type,
     482                      const char *comment,
     483                      psPtr value)
     484{
     485    return (psMetadataAdd(md, location, name, type, comment, value) );
     486
     487}
    467488
    468489bool psMetadataRemove(psMetadata *md,
  • trunk/psLib/src/types/psMetadata.h

    r5194 r5203  
    1111*  @author Ross Harman, MHPCC
    1212*
    13 *  @version $Revision: 1.67 $ $Name: not supported by cvs2svn $
    14 *  @date $Date: 2005-09-29 23:30:32 $
     13*  @version $Revision: 1.68 $ $Name: not supported by cvs2svn $
     14*  @date $Date: 2005-09-30 01:34:45 $
    1515*
    1616*  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    212212);
    213213
     214/** Create a metadata item with specified psPtr data.
     215 *
     216 *  Returns a fill psMetadataItem ready for insertion into the psMetadata
     217 *  struct.
     218 *
     219 * @return psMetadataItem* : Pointer metadata item.
     220 */
     221psMetadataItem* psMetadataItemAllocPtr(
     222    const char* name,                  ///< Name of metadata item.
     223    psDataType type,                   ///< Data type of metadata item.
     224    const char* comment,               ///< Comment for metadata item.
     225    psPtr value                        ///< the value of the metadata item.
     226);
     227
    214228#ifndef SWIG
    215229/** Create a metadata item with va_list.
     
    472486);
    473487
     488/** Add a psPtr to metadata collection.
     489 *
     490 *  @return bool:  True for success, False for failure.
     491 */
     492psBool psMetadataAddPtr(
     493    psMetadata* md,                    ///< Metadata collection to insert metadata item
     494    long location,                     ///< Index number, PS_LIST_HEAD, or PS_LIST_TAIL
     495    const char* name,                  ///< Name of metadata item
     496    psDataType type,                   ///< psDataType for metadata item
     497    const char* comment,               ///< Comment for metadata item
     498    psPtr value                        ///< Unknown for metadata item data
     499);
     500
    474501/** Add Metadata to metadata collection.
    475502 *
  • trunk/psLib/test/types/tst_psMetadata_07.c

    r5194 r5203  
    1010*     Test E - psMetadataConfigWrite (also tests psMetadataConfigFormat)
    1111*     Test F - psMetadataRemoveKey, RemoveIndex
     12*     Test G - psMetadataAddPtr, psMetadataItemAllocPtr
    1213*
    1314*  @author  David Robbins, MHPCC
    1415*
    15 *  @version $Revision: 1.9 $  $Name: not supported by cvs2svn $
    16 *  @date  $Date: 2005-09-29 23:30:32 $
     16*  @version $Revision: 1.10 $  $Name: not supported by cvs2svn $
     17*  @date  $Date: 2005-09-30 01:34:45 $
    1718*
    1819*  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    2728static psS32 testMetaWrite(void);
    2829static psS32 testMetaRemove(void);
     30static psS32 testMetaAddPtr(void);
    2931
    3032testDescription tests[] = {
     
    3234                              {testMetaWrite, 0, "Test psMetadataConfigWrite", 0, false},
    3335                              {testMetaRemove, 0, "Test psMetadataRemoveKey/Index", 0, false},
     36                              {testMetaAddPtr, 0, "Test psMetadataAddPtr", 0, false},
    3437                              {NULL}
    3538                          };
     
    156159    return 0;
    157160}
     161
     162psS32 testMetaAddPtr(void)
     163{
     164    bool status;
     165    psVector *vecptr = NULL;
     166    psVector *vecptr2 = NULL;
     167    vecptr = psVectorAlloc(5, PS_TYPE_S32);
     168    vecptr->data.S32[0] = 666;
     169    psMetadata *md = NULL;
     170    md = psMetadataAlloc();
     171    psMetadataItem *item = NULL;
     172    psMetadataItem *item2 = NULL;
     173    item = psMetadataItemAllocPtr("itemptr", PS_DATA_STRING, "", "Devil String");
     174    status = psMetadataAddPtr(md, PS_LIST_HEAD, "vecptr", PS_DATA_VECTOR,
     175                              "this is a vector comment", vecptr);
     176    if (!status) {
     177        psError(PS_ERR_BAD_PARAMETER_VALUE, false,
     178                "Unable to add psPtr (vector) to metadata.\n");
     179        return 1;
     180    }
     181    status = false;
     182    vecptr2 = (psVector*)psMetadataLookupPtr(&status, md, "vecptr");
     183    if (!status) {
     184        psError(PS_ERR_BAD_PARAMETER_VALUE, false,
     185                "Unable to retrieve psPtr (vector) from metadata.\n");
     186        return 2;
     187    }
     188    if (vecptr2->data.S32[0] != 666) {
     189        psError(PS_ERR_BAD_PARAMETER_VALUE, false,
     190                "Failed to retrieve correct psPtr (vector) from metadata.\n");
     191        return 3;
     192    }
     193    status = false;
     194    if (item == NULL) {
     195        psError(PS_ERR_BAD_PARAMETER_VALUE, false,
     196                "Unable to Alloc psPtr (string) metadata item .\n");
     197        return 5;
     198    }
     199    if ( !psMetadataAddItem(md, item, PS_LIST_TAIL, 0) ) {
     200        psError(PS_ERR_BAD_PARAMETER_VALUE, false,
     201                "Unable to add psPtr (string) metadata item to metadata.\n");
     202        return 6;
     203    }
     204    item2 = psMetadataGet(md, PS_LIST_TAIL);
     205    if (item2 == NULL) {
     206        psError(PS_ERR_BAD_PARAMETER_VALUE, false,
     207                "Unable to retrieve psPtr (string) metadata item .\n");
     208        return 7;
     209    }
     210    if ( strncmp((char*)item2->data.V, "Devil String", 20) ) {
     211        psError(PS_ERR_BAD_PARAMETER_VALUE, false,
     212                "Unable to retrieve correct psPtr (string) metadata item .\n");
     213        printf("\n string = %s \n", (char*)item2->data.V);
     214        return 8;
     215    }
     216
     217    psFree(item);
     218    psFree(vecptr);
     219    psFree(md);
     220    return 0;
     221
     222}
Note: See TracChangeset for help on using the changeset viewer.