IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 14589


Ignore:
Timestamp:
Aug 21, 2007, 12:41:02 PM (19 years ago)
Author:
jhoblitt
Message:

add pxTreeFromMetadata()

Location:
trunk/ippTools/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/ippTools/src/pxtree.c

    r14510 r14589  
    134134    return true;
    135135}
     136
     137pxNode *pxTreeFromMetadata(psMetadata *md)
     138{
     139    psHash *nodeNames = psHashAlloc(10);
     140
     141    psMetadataIterator *iter = psMetadataIteratorAlloc(md, 0, NULL);
     142    psMetadataItem *item = NULL;
     143    while ((item = psMetadataGetAndIncrement(iter))) {
     144        if (!(item->type == PS_DATA_STRING)) {
     145            continue;
     146        }
     147        pxNode *parent = psHashLookup(nodeNames, item->data.str);
     148        pxNode *node = pxNodeAlloc(item->name, parent);
     149        psHashAdd(nodeNames, item->name, node);
     150        psFree(node);
     151    }
     152    psFree(iter);
     153
     154    pxNode *root = psHashLookup(nodeNames, "root");
     155    psFree(nodeNames);
     156
     157    return root;
     158}
  • trunk/ippTools/src/pxtree.h

    r14510 r14589  
    5757bool pxNodeHasGrandChildren(pxNode *node);
    5858
     59pxNode *pxTreeFromMetadata(psMetadata *md);
     60
    5961
    6062/*
Note: See TracChangeset for help on using the changeset viewer.