Index: trunk/psLib/src/collections/psMetadata.c
===================================================================
--- trunk/psLib/src/collections/psMetadata.c	(revision 2607)
+++ trunk/psLib/src/collections/psMetadata.c	(revision 2648)
@@ -12,6 +12,6 @@
 *  @author Ross Harman, MHPCC
 *
-*  @version $Revision: 1.39 $ $Name: not supported by cvs2svn $
-*  @date $Date: 2004-12-03 23:14:28 $
+*  @version $Revision: 1.40 $ $Name: not supported by cvs2svn $
+*  @date $Date: 2004-12-07 19:09:05 $
 *
 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -218,5 +218,5 @@
 }
 
-psBool psMetadataAddItem(psMetadata *restrict md, psMetadataItem *restrict metadataItem, psS32 location)
+psBool psMetadataAddItem(psMetadata *md, psMetadataItem *metadataItem, psS32 location)
 {
     char * key = NULL;
@@ -328,5 +328,5 @@
 }
 
-psBool psMetadataAdd(psMetadata* restrict md, psS32 where, const char *name, psElemType pType,
+psBool psMetadataAdd(psMetadata *md, psS32 where, const char *name, psElemType pType,
                      psMetadataType type, const char *comment, ...)
 {
@@ -349,5 +349,5 @@
 }
 
-psBool psMetadataRemove(psMetadata* restrict md, psS32 where, const char *restrict key)
+psBool psMetadataRemove(psMetadata *md, psS32 where, const char *key)
 {
     psList* mdList = NULL;
@@ -421,5 +421,5 @@
 }
 
-psMetadataItem* psMetadataLookup(psMetadata* restrict md, const char *restrict key)
+psMetadataItem* psMetadataLookup(psMetadata *md, const char *key)
 {
     psHash* mdTable = NULL;
@@ -432,14 +432,67 @@
 
     mdTable = md->table;
-
     entry = (psMetadataItem*)psHashLookup(mdTable, key);
-    if (entry == NULL) {
-        return NULL;
-    }
 
     return entry;
 }
 
-psMetadataItem* psMetadataGet(psMetadata* restrict md, psS32 where)
+void* psMetadataLookupPtr(psMetadata *md, const char *key)
+{
+    void *value = NULL;
+    psElemType pType;
+    psMetadataItem *metadataItem = NULL;
+
+
+    metadataItem = psMetadataLookup(md, key);
+    PS_PTR_CHECK_NULL(metadataItem,NULL);
+    pType = metadataItem->pType;
+    value = metadataItem->data.V;
+    if(pType != PS_TYPE_PTR) {
+        psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psMetadata_METATYPE_MISMATCH, pType,
+                PS_TYPE_PTR);
+    }
+
+    return value;
+}
+
+psS32 psMetadataLookupS32(psMetadata *md, const char *key)
+{
+    psS32 value = 0;
+    psElemType pType;
+    psMetadataItem *metadataItem = NULL;
+
+
+    metadataItem = psMetadataLookup(md, key);
+    PS_PTR_CHECK_NULL(metadataItem,0);
+    pType = metadataItem->pType;
+    value = metadataItem->data.S32;
+    if(pType != PS_TYPE_S32) {
+        psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psMetadata_METATYPE_MISMATCH, pType,
+                PS_TYPE_S32);
+    }
+
+    return value;
+}
+
+psF64 psMetadataLookupF64(psMetadata *md, const char *key)
+{
+    psF64 value = 0.0;
+    psElemType pType;
+    psMetadataItem *metadataItem = NULL;
+
+
+    metadataItem = psMetadataLookup(md, key);
+    PS_PTR_CHECK_NULL(metadataItem,0.0);
+    pType = metadataItem->pType;
+    value = metadataItem->data.F64;
+    if(pType != PS_TYPE_F64) {
+        psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psMetadata_METATYPE_MISMATCH, pType,
+                PS_TYPE_F64);
+    }
+
+    return value;
+}
+
+psMetadataItem* psMetadataGet(psMetadata *md, psS32 where)
 {
     psMetadataItem* entry = NULL;
@@ -457,5 +510,5 @@
 }
 
-psBool psMetadataSetIterator(psMetadata* restrict md, psS32 where)
+psBool psMetadataSetIterator(psMetadata *md, psS32 where)
 {
     PS_PTR_CHECK_NULL(md,NULL);
@@ -467,5 +520,5 @@
 }
 
-psMetadataItem* psMetadataGetNext(psMetadata* restrict md, const char *restrict match, psS32 which)
+psMetadataItem* psMetadataGetNext(psMetadata *md, const char *match, psS32 which)
 {
     psList* mdList = NULL;
@@ -497,5 +550,5 @@
 }
 
-psMetadataItem* psMetadataGetPrevious(psMetadata* restrict md, const char *restrict match, psS32 which)
+psMetadataItem* psMetadataGetPrevious(psMetadata *md, const char *match, psS32 which)
 {
     psList* mdList = NULL;
