Index: trunk/psLib/src/collections/psMetadata.h
===================================================================
--- trunk/psLib/src/collections/psMetadata.h	(revision 3264)
+++ trunk/psLib/src/collections/psMetadata.h	(revision 3341)
@@ -11,6 +11,6 @@
 *  @author Ross Harman, MHPCC
 *
-*  @version $Revision: 1.37 $ $Name: not supported by cvs2svn $
-*  @date $Date: 2005-02-17 19:26:23 $
+*  @version $Revision: 1.38 $ $Name: not supported by cvs2svn $
+*  @date $Date: 2005-02-28 23:34:10 $
 *
 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -24,4 +24,6 @@
 #include "psHash.h"
 #include "psList.h"
+#include "psImage.h"
+#include "psLookupTable.h"
 
 /// @addtogroup Metadata
@@ -33,5 +35,8 @@
  */
 typedef enum {
-    PS_META_PRIMITIVE,                 ///< Primitive data.
+    PS_META_S32,                       ///< Primitive data.
+    PS_META_F32,                       ///< Primitive data.
+    PS_META_F64,                       ///< Primitive data.
+    PS_META_BOOL,                       ///< Primitive data.
     PS_META_LIST,                      ///< List data (Stored as item.data.list).
     PS_META_STR,                       ///< String data (Stored as item.data.V).
@@ -47,4 +52,16 @@
 } psMetadataType;
 
+#define PS_META_IS_PRIMITIVE(TYPE) \
+(TYPE == PS_META_S32 || \
+ TYPE == PS_META_F32 || \
+ TYPE == PS_META_F64 || \
+ TYPE == PS_META_BOOL)
+
+#define PS_META_PRIMITIVE_TYPE(METATYPE) ( \
+        (METATYPE==PS_META_S32) ? PS_TYPE_S32 : \
+        (METATYPE==PS_META_F32) ? PS_TYPE_F32 : \
+        (METATYPE==PS_META_F64) ? PS_TYPE_F64 : \
+        (METATYPE==PS_META_BOOL) ? PS_TYPE_BOOL : PS_TYPE_PTR )
+
 /** Option flags for psMetadata functions
  *
@@ -55,5 +72,5 @@
 typedef enum {
     PS_META_DEFAULT = 0,               ///< default behaviour (duplicate entry is an error)
-    PS_META_REPLACE                    ///< allow entry to be replaced
+    PS_META_REPLACE = 0x10000          ///< allow entry to be replaced
 } psMetadataFlags;
 
@@ -82,5 +99,4 @@
     char *name;                        ///< Name of metadata item.
     psMetadataType type;               ///< Type of metadata item.
-    psElemType pType;                  ///< Primitive data type
     union {
         psBool B;                      ///< boolean data
@@ -113,8 +129,37 @@
 psMetadataItem* psMetadataItemAlloc(
     const char *name,                  ///< Name of metadata item.
-    psElemType pType,                  ///< Primitive type.
     psMetadataType type,               ///< Type of metadata item.
     const char *comment,               ///< Comment for metadata item.
     ...                                ///< Arguments for name formatting and metadata item data.
+);
+
+psMetadataItem* psMetadataItemAllocStr(
+    const char* name,
+    const char* comment,
+    const char* value
+);
+
+psMetadataItem* psMetadataItemAllocF32(
+    const char* name,
+    const char* comment,
+    psF32 value
+);
+
+psMetadataItem* psMetadataItemAllocF64(
+    const char* name,
+    const char* comment,
+    psF64 value
+);
+
+psMetadataItem* psMetadataItemAllocS32(
+    const char* name,
+    const char* comment,
+    psS32 value
+);
+
+psMetadataItem* psMetadataItemAllocBool(
+    const char* name,
+    const char* comment,
+    psBool value
 );
 
@@ -137,5 +182,4 @@
 psMetadataItem* psMetadataItemAllocV(
     const char *name,                  ///< Name of metadata item.
-    psElemType pType,                  ///< Primitive type.
     psMetadataType type,               ///< Type of metadata item.
     const char *comment,               ///< Comment for metadata item.
@@ -161,7 +205,7 @@
  */
 psBool psMetadataAddItem(
-    psMetadata*  md,          ///< Metadata collection to insert metadat item.
-    psMetadataItem*  item,    ///< Metadata item to be added.
-    psS32 location            ///< Location to be added.
+    psMetadata*  md,                   ///< Metadata collection to insert metadat item.
+    psMetadataItem*  item,             ///< Metadata item to be added.
+    psS32 location                     ///< Location to be added.
 );
 
@@ -173,12 +217,33 @@
  */
 psBool psMetadataAdd(
-    psMetadata* md,           ///< Metadata collection to insert metadat item.
-    psS32 where,              ///< Location to be added.
-    const char *name,         ///< Name of metadata item.
-    psElemType pType,         ///< Primitive type.
-    psMetadataType type,      ///< Type of metadata item.
-    const char *comment,      ///< Comment for metadata item.
-    ...                       ///< Arguments for name formatting and metadata item data.
-);
+    psMetadata* md,                    ///< Metadata collection to insert metadat item.
+    psS32 where,                       ///< Location to be added.
+    const char *name,                  ///< Name of metadata item.
+    psMetadataType type,               ///< Type of metadata item.
+    const char *comment,               ///< Comment for metadata item.
+    ...                                ///< Arguments for name formatting and metadata item data.
+);
+
+psBool psMetadataAddS32(psMetadata* md, psS32 where, const char* name,
+                        const char* comment, psS32 value);
+psBool psMetadataAddF32(psMetadata* md, psS32 where, const char* name,
+                        const char* comment, psF32 value);
+psBool psMetadataAddF64(psMetadata* md, psS32 where, const char* name,
+                        const char* comment, psF64 value);
+psBool psMetadataAddList(psMetadata* md, psS32 where, const char* name,
+                         const char* comment, psList* value);
+psBool psMetadataAddStr(psMetadata* md, psS32 where, const char* name,
+                        const char* comment, const char* value);
+psBool psMetadataAddVector(psMetadata* md, psS32 where, const char* name,
+                           const char* comment, psVector* value);
+psBool psMetadataAddImage(psMetadata* md, psS32 where, const char* name,
+                          const char* comment, psImage* value);
+psBool psMetadataAddHash(psMetadata* md, psS32 where, const char* name,
+                         const char* comment, psHash* value);
+psBool psMetadataAddLookupTable(psMetadata* md, psS32 where, const char* name,
+                                const char* comment, psLookupTable* value);
+psBool psMetadataAddUnknown(psMetadata* md, psS32 where, const char* name,
+                            const char* comment, psPtr value);
+
 
 /** Remove an item from metadata collection.
