Changeset 3341
- Timestamp:
- Feb 28, 2005, 1:34:10 PM (21 years ago)
- Location:
- trunk/psLib
- Files:
-
- 51 edited
-
pslib.kdevelop (modified) (1 diff)
-
pslib.kdevelop.pcs (modified) ( previous)
-
pslib.kdevses (modified) (1 diff)
-
src/astro/psTime.c (modified) (4 diffs)
-
src/astronomy/astronomy.i (modified) (1 diff)
-
src/astronomy/psAstronomyErrors.h (modified) (1 diff)
-
src/astronomy/psMetadata.c (modified) (14 diffs)
-
src/astronomy/psMetadata.h (modified) (10 diffs)
-
src/astronomy/psMetadataIO.c (modified) (24 diffs)
-
src/astronomy/psTime.c (modified) (4 diffs)
-
src/collections/psMetadata.c (modified) (14 diffs)
-
src/collections/psMetadata.h (modified) (10 diffs)
-
src/collections/psMetadataIO.c (modified) (24 diffs)
-
src/dataIO/psFits.c (modified) (18 diffs)
-
src/dataManip/psMatrix.c (modified) (7 diffs)
-
src/fileUtils/psFits.c (modified) (18 diffs)
-
src/fits/psFits.c (modified) (18 diffs)
-
src/math/psMatrix.c (modified) (7 diffs)
-
src/sys/psType.h (modified) (2 diffs)
-
src/sysUtils/psType.h (modified) (2 diffs)
-
src/types/psMetadata.c (modified) (14 diffs)
-
src/types/psMetadata.h (modified) (10 diffs)
-
src/types/psMetadataConfig.c (modified) (24 diffs)
-
src/xml/psXML.c (modified) (24 diffs)
-
test/astronomy/tst_psAstrometry.c (modified) (2 diffs)
-
test/astronomy/tst_psMetadataIO.c (modified) (3 diffs)
-
test/astronomy/tst_psMetadata_01.c (modified) (3 diffs)
-
test/astronomy/tst_psMetadata_02.c (modified) (6 diffs)
-
test/astronomy/tst_psMetadata_03.c (modified) (7 diffs)
-
test/astronomy/tst_psMetadata_04.c (modified) (5 diffs)
-
test/astronomy/tst_psMetadata_05.c (modified) (4 diffs)
-
test/astronomy/tst_psMetadata_06.c (modified) (4 diffs)
-
test/astronomy/tst_psMetadata_07.c (modified) (2 diffs)
-
test/astronomy/verified/tst_psMetadataIO.stdout (modified) (3 diffs)
-
test/astronomy/verified/tst_psMetadata_01.stdout (modified) (4 diffs)
-
test/astronomy/verified/tst_psMetadata_02.stderr (modified) (1 diff)
-
test/astronomy/verified/tst_psMetadata_02.stdout (modified) (1 diff)
-
test/astronomy/verified/tst_psMetadata_03.stdout (modified) (1 diff)
-
test/astronomy/verified/tst_psMetadata_04.stdout (modified) (1 diff)
-
test/astronomy/verified/tst_psMetadata_05.stdout (modified) (1 diff)
-
test/astronomy/verified/tst_psMetadata_06.stdout (modified) (1 diff)
-
test/collections/tst_psMetadataIO.c (modified) (3 diffs)
-
test/collections/tst_psMetadata_01.c (modified) (3 diffs)
-
test/collections/tst_psMetadata_02.c (modified) (6 diffs)
-
test/collections/tst_psMetadata_03.c (modified) (7 diffs)
-
test/collections/tst_psMetadata_04.c (modified) (5 diffs)
-
test/collections/tst_psMetadata_05.c (modified) (4 diffs)
-
test/collections/tst_psMetadata_06.c (modified) (4 diffs)
-
test/collections/tst_psMetadata_07.c (modified) (2 diffs)
-
test/dataIO/tst_psFits.c (modified) (4 diffs)
-
test/fileUtils/tst_psFits.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/pslib.kdevelop
r3115 r3341 24 24 <general> 25 25 <activetarget>src/pslib</activetarget> 26 <useconfiguration>de bug</useconfiguration>26 <useconfiguration>default</useconfiguration> 27 27 </general> 28 28 <run> -
trunk/psLib/pslib.kdevses
r3298 r3341 2 2 <!DOCTYPE KDevPrjSession> 3 3 <KDevPrjSession> 4 <DocsAndViews NumberOfDocuments=" 6" >4 <DocsAndViews NumberOfDocuments="5" > 5 5 <Doc0 NumberOfViews="1" URL="file:/home/desonia/panstarrs/psLib/src/astronomy/psMetadata.c" > 6 <View0 line=" 342" Type="Source" />6 <View0 line="129" Type="Source" /> 7 7 </Doc0> 8 <Doc1 NumberOfViews="1" URL="file:/home/desonia/panstarrs/psLib/ test/fileUtils/tst_psFits.c" >9 <View0 line="1 93" Type="Source" />8 <Doc1 NumberOfViews="1" URL="file:/home/desonia/panstarrs/psLib/src/astronomy/psMetadata.h" > 9 <View0 line="164" Type="Source" /> 10 10 </Doc1> 11 <Doc2 NumberOfViews="1" URL="file:/home/desonia/panstarrs/psLib/src/ collections/psHash.c" >12 <View0 line=" 290" Type="Source" />11 <Doc2 NumberOfViews="1" URL="file:/home/desonia/panstarrs/psLib/src/astronomy/astronomy.i" > 12 <View0 line="16" Type="Source" /> 13 13 </Doc2> 14 <Doc3 NumberOfViews="1" URL="file:/home/desonia/panstarrs/psLib/src/ fileUtils/psFits.c" >15 <View0 line=" 1471" Type="Source" />14 <Doc3 NumberOfViews="1" URL="file:/home/desonia/panstarrs/psLib/src/astronomy/psMetadataIO.c" > 15 <View0 line="965" Type="Source" /> 16 16 </Doc3> 17 <Doc4 NumberOfViews="1" URL="file:/home/desonia/panstarrs/psLib/src/sysUtils/ps Memory.h" >18 <View0 line=" 397" Type="Source" />17 <Doc4 NumberOfViews="1" URL="file:/home/desonia/panstarrs/psLib/src/sysUtils/psType.h" > 18 <View0 line="0" Type="Source" /> 19 19 </Doc4> 20 <Doc5 NumberOfViews="1" URL="file:/home/desonia/panstarrs/psLib/src/collections/psArray.c" >21 <View0 line="0" Type="Source" />22 </Doc5>23 20 </DocsAndViews> 24 21 <pluginList> -
trunk/psLib/src/astro/psTime.c
r3264 r3341 10 10 * @author Ross Harman, MHPCC 11 11 * 12 * @version $Revision: 1.5 3$ $Name: not supported by cvs2svn $13 * @date $Date: 2005-02- 17 19:26:23$12 * @version $Revision: 1.54 $ $Name: not supported by cvs2svn $ 13 * @date $Date: 2005-02-28 23:34:10 $ 14 14 * 15 15 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 215 215 char metadataTableNames[4][MAX_STRING_LENGTH] = {"ser7", "eopc", "finals", "tai"}; 216 216 217 218 217 // Read time config file 219 218 timeMetadata = psMetadataParseConfig(timeMetadata, &nFail, fileName, true); … … 313 312 if(metadataNamesPtr != NULL) { 314 313 psMetadataAdd(timeMetadata, PS_LIST_TAIL, strcat(metadataTableNames[j], "Table"), 315 PS_ TYPE_PTR, PS_META_LOOKUPTABLE, NULL, table);314 PS_META_LOOKUPTABLE, NULL, table); 316 315 foundTable = true; 317 316 } else if(foundTable==false && j==numTables-1) { … … 322 321 psFree(fullTableName); 323 322 psFree(tableName); 323 psFree(table); 324 324 i++; 325 325 } -
trunk/psLib/src/astronomy/astronomy.i
r3182 r3341 15 15 } 16 16 17 // add a method to add primitives to metadata18 %inline %{19 psBool psMetadataAddStr(psMetadata* md, psS32 where, const char* name,20 const char* comment, const char* value) {21 return psMetadataAdd(md,where,name,PS_TYPE_PTR, PS_META_STR,comment,value);22 }23 psBool psMetadataAddF32(psMetadata* md,24 psS32 where,25 const char* name,26 const char* comment,27 psF32 value)28 {29 return psMetadataAdd(md,where,name,PS_TYPE_F32, PS_META_PRIMITIVE,comment,value);30 }31 32 psBool psMetadataAddF64(psMetadata* md,33 psS32 where,34 const char* name,35 const char* comment,36 psF64 value)37 {38 return psMetadataAdd(md,where,name,PS_TYPE_F64, PS_META_PRIMITIVE,comment,value);39 }40 41 psBool psMetadataAddS32(psMetadata* md,42 psS32 where,43 const char* name,44 const char* comment,45 psS32 value)46 {47 return psMetadataAdd(md,where,name,PS_TYPE_S32, PS_META_PRIMITIVE,comment,value);48 }49 50 psMetadataItem* psMetadataItemAllocStr(const char* name,51 const char* comment,52 const char* value)53 {54 return psMetadataItemAlloc(name, PS_TYPE_PTR, PS_META_STR, comment, value);55 }56 57 psMetadataItem* psMetadataItemAllocF32(const char* name,58 const char* comment,59 psF32 value)60 {61 return psMetadataItemAlloc(name, PS_TYPE_F32, PS_META_PRIMITIVE, comment, value);62 }63 64 psMetadataItem* psMetadataItemAllocF64(const char* name,65 const char* comment,66 psF64 value)67 {68 return psMetadataItemAlloc(name, PS_TYPE_F64, PS_META_PRIMITIVE, comment, value);69 }70 71 psMetadataItem* psMetadataItemAllocS32(const char* name,72 const char* comment,73 psS32 value)74 {75 return psMetadataItemAlloc(name, PS_TYPE_S32, PS_META_PRIMITIVE, comment, value);76 }77 %}78 79 17 %apply unsigned int *OUTPUT { unsigned int *nFail }; /* for psMetadataParseConfig */ 80 18 %include "psMetadataIO.h" -
trunk/psLib/src/astronomy/psAstronomyErrors.h
r3325 r3341 7 7 * @author Robert DeSonia, MHPCC 8 8 * 9 * @version $Revision: 1.1 1$ $Name: not supported by cvs2svn $10 * @date $Date: 2005-02-2 5 02:49:00 $9 * @version $Revision: 1.12 $ $Name: not supported by cvs2svn $ 10 * @date $Date: 2005-02-28 23:34:10 $ 11 11 * 12 12 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii -
trunk/psLib/src/astronomy/psMetadata.c
r3286 r3341 12 12 * @author Ross Harman, MHPCC 13 13 * 14 * @version $Revision: 1.5 2$ $Name: not supported by cvs2svn $15 * @date $Date: 2005-02- 18 22:17:20 $14 * @version $Revision: 1.53 $ $Name: not supported by cvs2svn $ 15 * @date $Date: 2005-02-28 23:34:10 $ 16 16 * 17 17 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 80 80 psFree(metadataItem->name); 81 81 psFree(metadataItem->comment); 82 if ( type != PS_META_PRIMITIVE) {82 if (! PS_META_IS_PRIMITIVE(type)) { 83 83 psFree(metadataItem->data.V); 84 84 } … … 98 98 /*****************************************************************************/ 99 99 100 psMetadataItem* psMetadataItemAlloc(const char *name, ps ElemType pType, psMetadataType type,100 psMetadataItem* psMetadataItemAlloc(const char *name, psMetadataType type, 101 101 const char *comment, ...) 102 102 { … … 108 108 109 109 // Call metadata item allocation 110 metadataItem = psMetadataItemAllocV(name, pType,type, comment, argPtr);110 metadataItem = psMetadataItemAllocV(name, type, comment, argPtr); 111 111 112 112 // Clean up stack after variable arguement has been used … … 116 116 } 117 117 118 psMetadataItem* psMetadataItemAllocV(const char *name, psElemType pType, psMetadataType type, 118 #define METADATAITEM_ALLOC_TYPE(NAME,TYPE,METATYPE) \ 119 psMetadataItem* psMetadataItemAlloc##NAME(const char* name, \ 120 const char* comment, \ 121 TYPE value) \ 122 { \ 123 return psMetadataItemAlloc(name, METATYPE, comment, value); \ 124 } 125 126 METADATAITEM_ALLOC_TYPE(Str,const char*,PS_META_STR) 127 METADATAITEM_ALLOC_TYPE(F32,psF32,PS_META_F32) 128 METADATAITEM_ALLOC_TYPE(F64,psF64,PS_META_F64) 129 METADATAITEM_ALLOC_TYPE(S32,psS32,PS_META_S32) 130 METADATAITEM_ALLOC_TYPE(Bool,psBool,PS_META_BOOL) 131 132 psMetadataItem* psMetadataItemAllocV(const char *name, psMetadataType type, 119 133 const char *comment, va_list argPtr) 120 134 { … … 145 159 // Set metadata item type 146 160 metadataItem->type = type; 147 metadataItem->pType = pType;148 161 149 162 // Allocate and set metadata item name … … 153 166 // Set metadata item value 154 167 switch(type) { 155 case PS_META_PRIMITIVE: 156 switch(pType) { 157 case PS_TYPE_BOOL: 158 metadataItem->data.B = (psBool)va_arg(argPtr, psS32); 159 break; 160 case PS_TYPE_S32: 161 metadataItem->data.S32 = (psS32)va_arg(argPtr, psS32); 162 break; 163 case PS_TYPE_F32: 164 metadataItem->data.F32 = (psF32)va_arg(argPtr, psF64); 165 break; 166 case PS_TYPE_F64: 167 metadataItem->data.F64 = (psF64)va_arg(argPtr, psF64); 168 break; 169 default: 170 psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psMetadata_METATYPE_INVALID, type); 171 psFree(metadataItem); 172 metadataItem = NULL; 173 } 168 case PS_META_BOOL: 169 metadataItem->data.B = (psBool)va_arg(argPtr, psS32); 170 break; 171 case PS_META_S32: 172 metadataItem->data.S32 = (psS32)va_arg(argPtr, psS32); 173 break; 174 case PS_META_F32: 175 metadataItem->data.F32 = (psF32)va_arg(argPtr, psF64); 176 break; 177 case PS_META_F64: 178 metadataItem->data.F64 = (psF64)va_arg(argPtr, psF64); 174 179 break; 175 180 case PS_META_STR: … … 186 191 case PS_META_UNKNOWN: 187 192 // Copy of input data not performed due to variability of data types 188 metadataItem->data.V = va_arg(argPtr, psPtr);193 metadataItem->data.V = psMemIncrRefCounter(va_arg(argPtr, psPtr)); 189 194 break; 190 195 default: … … 256 261 257 262 // Leaf node replaces another leaf. Make new folder node and add leaves. 258 newFolderEntry = psMetadataItemAlloc(key, PS_ TYPE_PTR, PS_META_LIST, NULL, NULL);263 newFolderEntry = psMetadataItemAlloc(key, PS_META_LIST, NULL, NULL); 259 264 newFolderEntry->data.list = psListAlloc(NULL); 260 265 … … 328 333 } 329 334 330 psBool psMetadataAdd(psMetadata *md, psS32 where, const char *name, psElemType pType,335 psBool psMetadataAdd(psMetadata *md, psS32 where, const char *name, 331 336 psMetadataType type, const char *comment, ...) 332 337 { … … 335 340 336 341 va_start(argPtr, comment); 337 metadataItem = psMetadataItemAllocV(name, pType,type, comment, argPtr);342 metadataItem = psMetadataItemAllocV(name, type, comment, argPtr); 338 343 va_end(argPtr); 339 344 … … 348 353 return true; 349 354 } 355 356 #define METADATA_ADD_TYPE(NAME,TYPE,METATYPE) \ 357 psBool psMetadataAdd##NAME(psMetadata* md, psS32 where, const char* name, \ 358 const char* comment, TYPE value) { \ 359 return psMetadataAdd(md,where,name, METATYPE,comment,value); \ 360 } 361 362 METADATA_ADD_TYPE(S32,psS32,PS_META_S32) 363 METADATA_ADD_TYPE(F32,psF32,PS_META_F32) 364 METADATA_ADD_TYPE(F64,psF64,PS_META_F64) 365 METADATA_ADD_TYPE(List,psList*,PS_META_LIST) 366 METADATA_ADD_TYPE(Str,const char*,PS_META_STR) 367 METADATA_ADD_TYPE(Vector,psVector*,PS_META_VEC) 368 METADATA_ADD_TYPE(Image,psImage*,PS_META_IMG) 369 METADATA_ADD_TYPE(Hash,psHash*,PS_META_HASH) 370 METADATA_ADD_TYPE(LookupTable,psLookupTable*,PS_META_LOOKUPTABLE) 371 METADATA_ADD_TYPE(Unknown,void*,PS_META_UNKNOWN) 350 372 351 373 psBool psMetadataRemove(psMetadata *md, psS32 where, const char *key) … … 435 457 } 436 458 437 if( metadataItem->type == PS_META_PRIMITIVE && metadataItem->pType != PS_TYPE_PTR) {459 if(PS_META_IS_PRIMITIVE(metadataItem->type)) { 438 460 if (status) { 439 461 *status = false; 440 462 } 441 463 psError(PS_ERR_BAD_PARAMETER_VALUE, true, 442 PS_ERRORTEXT_psMetadata_METATYPE_MISMATCH, 443 metadataItem->pType, 444 PS_TYPE_PTR); 464 PS_ERRORTEXT_psMetadata_METATYPE_INVALID, 465 metadataItem->type); 445 466 return NULL; 446 467 } else { … … 467 488 } \ 468 489 \ 469 if (metadataItem->type == PS_META_PRIMITIVE) { \ 470 switch (metadataItem->pType) { \ 471 case PS_TYPE_S32: \ 472 value = (ps##TYPE)metadataItem->data.S32; \ 473 break; \ 474 case PS_TYPE_F32: \ 475 value = (ps##TYPE)metadataItem->data.F32; \ 476 break; \ 477 case PS_TYPE_F64: \ 478 value = (ps##TYPE)metadataItem->data.F64; \ 479 break; \ 480 case PS_TYPE_BOOL: \ 481 if (metadataItem->data.B) { \ 482 value = 1; \ 483 } \ 484 break; \ 485 default: \ 486 /* if you get to this point, the value is not a number. */ \ 487 if (status) { \ 488 *status = false; \ 489 } \ 490 break; \ 490 switch (metadataItem->type) { \ 491 case PS_META_S32: \ 492 value = (ps##TYPE)metadataItem->data.S32; \ 493 break; \ 494 case PS_META_F32: \ 495 value = (ps##TYPE)metadataItem->data.F32; \ 496 break; \ 497 case PS_META_F64: \ 498 value = (ps##TYPE)metadataItem->data.F64; \ 499 break; \ 500 case PS_META_BOOL: \ 501 if (metadataItem->data.B) { \ 502 value = 1; \ 491 503 } \ 492 } else { \ 504 break; \ 505 default: \ 506 /* if you get to this point, the value is not a number. */ \ 493 507 if (status) { \ 494 508 *status = false; \ 495 509 } \ 510 break; \ 496 511 } \ 497 512 \ -
trunk/psLib/src/astronomy/psMetadata.h
r3264 r3341 11 11 * @author Ross Harman, MHPCC 12 12 * 13 * @version $Revision: 1.3 7$ $Name: not supported by cvs2svn $14 * @date $Date: 2005-02- 17 19:26:23$13 * @version $Revision: 1.38 $ $Name: not supported by cvs2svn $ 14 * @date $Date: 2005-02-28 23:34:10 $ 15 15 * 16 16 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 24 24 #include "psHash.h" 25 25 #include "psList.h" 26 #include "psImage.h" 27 #include "psLookupTable.h" 26 28 27 29 /// @addtogroup Metadata … … 33 35 */ 34 36 typedef enum { 35 PS_META_PRIMITIVE, ///< Primitive data. 37 PS_META_S32, ///< Primitive data. 38 PS_META_F32, ///< Primitive data. 39 PS_META_F64, ///< Primitive data. 40 PS_META_BOOL, ///< Primitive data. 36 41 PS_META_LIST, ///< List data (Stored as item.data.list). 37 42 PS_META_STR, ///< String data (Stored as item.data.V). … … 47 52 } psMetadataType; 48 53 54 #define PS_META_IS_PRIMITIVE(TYPE) \ 55 (TYPE == PS_META_S32 || \ 56 TYPE == PS_META_F32 || \ 57 TYPE == PS_META_F64 || \ 58 TYPE == PS_META_BOOL) 59 60 #define PS_META_PRIMITIVE_TYPE(METATYPE) ( \ 61 (METATYPE==PS_META_S32) ? PS_TYPE_S32 : \ 62 (METATYPE==PS_META_F32) ? PS_TYPE_F32 : \ 63 (METATYPE==PS_META_F64) ? PS_TYPE_F64 : \ 64 (METATYPE==PS_META_BOOL) ? PS_TYPE_BOOL : PS_TYPE_PTR ) 65 49 66 /** Option flags for psMetadata functions 50 67 * … … 55 72 typedef enum { 56 73 PS_META_DEFAULT = 0, ///< default behaviour (duplicate entry is an error) 57 PS_META_REPLACE ///< allow entry to be replaced74 PS_META_REPLACE = 0x10000 ///< allow entry to be replaced 58 75 } psMetadataFlags; 59 76 … … 82 99 char *name; ///< Name of metadata item. 83 100 psMetadataType type; ///< Type of metadata item. 84 psElemType pType; ///< Primitive data type85 101 union { 86 102 psBool B; ///< boolean data … … 113 129 psMetadataItem* psMetadataItemAlloc( 114 130 const char *name, ///< Name of metadata item. 115 psElemType pType, ///< Primitive type.116 131 psMetadataType type, ///< Type of metadata item. 117 132 const char *comment, ///< Comment for metadata item. 118 133 ... ///< Arguments for name formatting and metadata item data. 134 ); 135 136 psMetadataItem* psMetadataItemAllocStr( 137 const char* name, 138 const char* comment, 139 const char* value 140 ); 141 142 psMetadataItem* psMetadataItemAllocF32( 143 const char* name, 144 const char* comment, 145 psF32 value 146 ); 147 148 psMetadataItem* psMetadataItemAllocF64( 149 const char* name, 150 const char* comment, 151 psF64 value 152 ); 153 154 psMetadataItem* psMetadataItemAllocS32( 155 const char* name, 156 const char* comment, 157 psS32 value 158 ); 159 160 psMetadataItem* psMetadataItemAllocBool( 161 const char* name, 162 const char* comment, 163 psBool value 119 164 ); 120 165 … … 137 182 psMetadataItem* psMetadataItemAllocV( 138 183 const char *name, ///< Name of metadata item. 139 psElemType pType, ///< Primitive type.140 184 psMetadataType type, ///< Type of metadata item. 141 185 const char *comment, ///< Comment for metadata item. … … 161 205 */ 162 206 psBool psMetadataAddItem( 163 psMetadata* md, ///< Metadata collection to insert metadat item.164 psMetadataItem* item, ///< Metadata item to be added.165 psS32 location ///< Location to be added.207 psMetadata* md, ///< Metadata collection to insert metadat item. 208 psMetadataItem* item, ///< Metadata item to be added. 209 psS32 location ///< Location to be added. 166 210 ); 167 211 … … 173 217 */ 174 218 psBool psMetadataAdd( 175 psMetadata* md, ///< Metadata collection to insert metadat item. 176 psS32 where, ///< Location to be added. 177 const char *name, ///< Name of metadata item. 178 psElemType pType, ///< Primitive type. 179 psMetadataType type, ///< Type of metadata item. 180 const char *comment, ///< Comment for metadata item. 181 ... ///< Arguments for name formatting and metadata item data. 182 ); 219 psMetadata* md, ///< Metadata collection to insert metadat item. 220 psS32 where, ///< Location to be added. 221 const char *name, ///< Name of metadata item. 222 psMetadataType type, ///< Type of metadata item. 223 const char *comment, ///< Comment for metadata item. 224 ... ///< Arguments for name formatting and metadata item data. 225 ); 226 227 psBool psMetadataAddS32(psMetadata* md, psS32 where, const char* name, 228 const char* comment, psS32 value); 229 psBool psMetadataAddF32(psMetadata* md, psS32 where, const char* name, 230 const char* comment, psF32 value); 231 psBool psMetadataAddF64(psMetadata* md, psS32 where, const char* name, 232 const char* comment, psF64 value); 233 psBool psMetadataAddList(psMetadata* md, psS32 where, const char* name, 234 const char* comment, psList* value); 235 psBool psMetadataAddStr(psMetadata* md, psS32 where, const char* name, 236 const char* comment, const char* value); 237 psBool psMetadataAddVector(psMetadata* md, psS32 where, const char* name, 238 const char* comment, psVector* value); 239 psBool psMetadataAddImage(psMetadata* md, psS32 where, const char* name, 240 const char* comment, psImage* value); 241 psBool psMetadataAddHash(psMetadata* md, psS32 where, const char* name, 242 const char* comment, psHash* value); 243 psBool psMetadataAddLookupTable(psMetadata* md, psS32 where, const char* name, 244 const char* comment, psLookupTable* value); 245 psBool psMetadataAddUnknown(psMetadata* md, psS32 where, const char* name, 246 const char* comment, psPtr value); 247 183 248 184 249 /** Remove an item from metadata collection. -
trunk/psLib/src/astronomy/psMetadataIO.c
r3264 r3341 9 9 * @author Ross Harman, MHPCC 10 10 * 11 * @version $Revision: 1.2 0$ $Name: not supported by cvs2svn $12 * @date $Date: 2005-02- 17 19:26:23$11 * @version $Revision: 1.21 $ $Name: not supported by cvs2svn $ 12 * @date $Date: 2005-02-28 23:34:10 $ 13 13 * 14 14 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 101 101 /*****************************************************************************/ 102 102 103 static void p_saxEndElement(void *ctx, const xmlChar *tagName);104 static void p_psInitVectorXml(void *ctx, char *tagName);105 static void p_psInitMetadataItemXml(void *ctx, char *tagName);106 static void p_saxStartElement(void *ctx, const xmlChar *tagName, const xmlChar **atts);103 static void saxEndElement(void *ctx, const xmlChar *tagName); 104 static void initVectorXml(void *ctx, char *tagName); 105 static void initMetadataItemXml(void *ctx, char *tagName); 106 static void saxStartElement(void *ctx, const xmlChar *tagName, const xmlChar **atts); 107 107 108 108 /** Determines if a line is blank (whitespace only) or a commentline. It returns true if so. The input string … … 307 307 { 308 308 psMetadataType type; 309 psElemType pType;310 309 psBool success = true; 311 310 … … 315 314 316 315 type = metadataItem->type; 317 pType = metadataItem->pType;318 316 319 317 switch(type) { 320 case PS_META_PRIMITIVE: 321 switch(pType) { 322 case PS_TYPE_BOOL: 323 fprintf(fd, format, metadataItem->data.B); 324 break; 325 case PS_TYPE_S32: 326 fprintf(fd,format, metadataItem->data.S32); 327 break; 328 case PS_TYPE_F32: 329 fprintf(fd, format, metadataItem->data.F32); 330 break; 331 case PS_TYPE_F64: 332 fprintf(fd, format, metadataItem->data.F64); 333 break; 334 default: 335 psError(PS_ERR_BAD_PARAMETER_TYPE,true, PS_ERRORTEXT_psMetadata_METATYPE_INVALID, (int)pType); 336 success = false; 337 } 318 case PS_META_BOOL: 319 fprintf(fd, format, metadataItem->data.B); 320 break; 321 case PS_META_S32: 322 fprintf(fd,format, metadataItem->data.S32); 323 break; 324 case PS_META_F32: 325 fprintf(fd, format, metadataItem->data.F32); 326 break; 327 case PS_META_F64: 328 fprintf(fd, format, metadataItem->data.F64); 338 329 break; 339 330 case PS_META_STR: … … 419 410 switch (keyType) { 420 411 case 'I': 421 success = psMetadataAdd(output, PS_LIST_TAIL, keyName, PS_ TYPE_S32, PS_META_PRIMITIVE,412 success = psMetadataAdd(output, PS_LIST_TAIL, keyName, PS_META_S32, 422 413 keyComment, atoi(keyValue)); 423 414 break; 424 415 case 'F': 425 success = psMetadataAdd(output, PS_LIST_TAIL, keyName, PS_ TYPE_F64, PS_META_PRIMITIVE,416 success = psMetadataAdd(output, PS_LIST_TAIL, keyName, PS_META_F64, 426 417 keyComment, atof(keyValue)); 427 418 break; 428 419 case 'C': 429 success = psMetadataAdd(output, PS_LIST_TAIL, keyName, PS_ TYPE_PTR, PS_META_STR, keyComment,430 key Value);420 success = psMetadataAdd(output, PS_LIST_TAIL, keyName, PS_META_STR, 421 keyComment, keyValue); 431 422 break; 432 423 case 'L': 433 424 tempBool = (keyValue[0] == 'T') ? 1 : 0; 434 success = psMetadataAdd(output, PS_LIST_TAIL, keyName, PS_ TYPE_BOOL, PS_META_PRIMITIVE, keyComment,435 tempBool);425 success = psMetadataAdd(output, PS_LIST_TAIL, keyName, PS_META_BOOL, 426 keyComment, tempBool); 436 427 break; 437 428 case 'U': … … 460 451 char *strComment = NULL; 461 452 char *linePtr = NULL; 453 psElemType vecType = PS_TYPE_PTR; 462 454 psS32 status = 0; 463 455 psU32 lineCount = 0; … … 467 459 psVector *tempVec = NULL; 468 460 FILE *fp = NULL; 469 psElemType pType;470 461 psMetadataType mdType; 471 462 … … 535 526 } else if(!strncmp(strType, "*", 1)) { 536 527 mdType = PS_META_LIST; 537 pType = PS_TYPE_PTR;538 528 } else if(!strncmp(strType, "STR", 3)) { 539 529 mdType = PS_META_STR; 540 pType = PS_TYPE_PTR; 541 } else if(!strncmp(strType, "BOOL", 3)) { 542 mdType = PS_META_PRIMITIVE; 543 pType = PS_TYPE_BOOL; 530 } else if(!strncmp(strType, "BOOL", 4)) { 531 mdType = PS_META_BOOL; 544 532 } else if(!strncmp(strType, "S32", 3)) { 545 mdType = PS_META_PRIMITIVE; 546 pType = PS_TYPE_S32; 533 mdType = PS_META_S32; 547 534 } else if(!strncmp(strType, "F32", 3)) { 548 mdType = PS_META_PRIMITIVE; 549 pType = PS_TYPE_F32; 535 mdType = PS_META_F32; 550 536 } else if(!strncmp(strType, "F64", 3)) { 551 mdType = PS_META_PRIMITIVE; 552 pType = PS_TYPE_F64; 537 mdType = PS_META_F64; 553 538 } else { 554 539 (*nFail)++; … … 559 544 560 545 if(*strName == '@') { 546 vecType = PS_META_PRIMITIVE_TYPE(mdType); 561 547 mdType = PS_META_VEC; 562 548 } … … 604 590 switch (mdType) { 605 591 case PS_META_LIST: 606 psMetadataAdd(md, PS_LIST_TAIL, strName, pType,mdType, NULL, NULL);592 psMetadataAdd(md, PS_LIST_TAIL, strName, mdType, NULL, NULL); 607 593 break; 608 594 case PS_META_STR: 609 psMetadataAdd(md, PS_LIST_TAIL, strName, pType,mdType, strComment, strValue);595 psMetadataAdd(md, PS_LIST_TAIL, strName, mdType, strComment, strValue); 610 596 break; 611 597 case PS_META_VEC: 612 tempVec = parseVector(strValue, pType, &status);598 tempVec = parseVector(strValue, vecType, &status); 613 599 if(!status) { 614 psMetadataAdd(md, PS_LIST_TAIL, strName+1, pType, mdType, strComment, tempVec); 600 psMetadataAdd(md, PS_LIST_TAIL, strName+1, mdType, strComment, tempVec); 601 } else { 602 status = 0; 603 (*nFail)++; 604 psError(PS_ERR_IO, true, PS_ERRORTEXT_psMetadataIO_PARSE_FAILED, strValue, strName, 605 strType, lineCount, fileName); 606 continue; 607 } 608 psFree(tempVec); 609 break; 610 case PS_META_BOOL: 611 tempBool = parseBool(strValue, &status); 612 if(!status) { 613 psMetadataAdd(md, PS_LIST_TAIL, strName, mdType, strComment, tempBool); 615 614 } else { 616 615 status = 0; … … 621 620 } 622 621 break; 623 case PS_META_PRIMITIVE: 624 switch (pType) { 625 case PS_TYPE_BOOL: 626 tempBool = parseBool(strValue, &status); 627 if(!status) { 628 psMetadataAdd(md, PS_LIST_TAIL, strName, pType, mdType, strComment, tempBool); 629 } else { 630 status = 0; 631 (*nFail)++; 632 psError(PS_ERR_IO, true, PS_ERRORTEXT_psMetadataIO_PARSE_FAILED, strValue, strName, 633 strType, lineCount, fileName); 634 continue; 635 } 636 break; 637 case PS_TYPE_S32: 638 tempInt = (psS32)parseValue(strValue, &status); 639 if(!status) { 640 psMetadataAdd(md, PS_LIST_TAIL, strName, pType, mdType, strComment, tempInt); 641 } else { 642 status = 0; 643 (*nFail)++; 644 psError(PS_ERR_IO, true, PS_ERRORTEXT_psMetadataIO_PARSE_FAILED, strValue, strName, 645 strType, lineCount, fileName); 646 continue; 647 } 648 break; 649 case PS_TYPE_F32: 650 case PS_TYPE_F64: 651 tempDbl = parseValue(strValue, &status); 652 if(!status) { 653 psMetadataAdd(md, PS_LIST_TAIL, strName, pType, mdType, strComment, tempDbl); 654 } else { 655 status = 0; 656 (*nFail)++; 657 psError(PS_ERR_IO, true, 658 PS_ERRORTEXT_psMetadataIO_PARSE_FAILED, strValue, strName, strType, lineCount, 659 fileName); 660 continue; 661 } 662 break; 663 default: 622 case PS_META_S32: 623 tempInt = (psS32)parseValue(strValue, &status); 624 if(!status) { 625 psMetadataAdd(md, PS_LIST_TAIL, strName, mdType, strComment, tempInt); 626 } else { 627 status = 0; 664 628 (*nFail)++; 665 psError(PS_ERR_IO, true, PS_ERRORTEXT_psMetadataIO_FILE_TYPE_INVALID, mdType, lineCount, 629 psError(PS_ERR_IO, true, PS_ERRORTEXT_psMetadataIO_PARSE_FAILED, strValue, strName, 630 strType, lineCount, fileName); 631 continue; 632 } 633 break; 634 case PS_META_F32: 635 case PS_META_F64: 636 tempDbl = parseValue(strValue, &status); 637 if(!status) { 638 psMetadataAdd(md, PS_LIST_TAIL, strName, mdType, strComment, tempDbl); 639 } else { 640 status = 0; 641 (*nFail)++; 642 psError(PS_ERR_IO, true, 643 PS_ERRORTEXT_psMetadataIO_PARSE_FAILED, strValue, strName, strType, lineCount, 666 644 fileName); 667 645 continue; 668 } // switch646 } 669 647 break; 670 648 default: … … 682 660 } 683 661 684 static void p_saxStartElement(void *ctx, const xmlChar *tagName, const xmlChar **atts)662 static void saxStartElement(void *ctx, const xmlChar *tagName, const xmlChar **atts) 685 663 { 686 664 psU64 i = 0; … … 709 687 // Metadata containter for housing element attributes used by other SAX events 710 688 htAtts = psHashAlloc(10); 689 711 690 712 691 // Get tag name … … 745 724 746 725 // Add attributes to metadata 747 psMetadataAdd(md, PS_LIST_TAIL, "htAtts", PS_TYPE_PTR, PS_META_HASH, NULL, htAtts); 726 727 psMetadataAdd(md, PS_LIST_TAIL, "htAtts", PS_META_HASH, NULL, htAtts); 748 728 749 729 psFree(psTagName); 730 psFree(htAtts); 750 731 751 732 return; 752 733 } 753 734 754 static void p_psInitMetadataItemXml(void *ctx, char *tagName)735 static void initMetadataItemXml(void *ctx, char *tagName) 755 736 { 756 737 psBool overwrite = false; … … 760 741 psF64 tempDbl = 0.0; 761 742 psS32 tempInt = 0.0; 762 psElemType pType = PS_TYPE_PTR; 763 psMetadataType mdType = PS_META_PRIMITIVE; 743 psMetadataType mdType = PS_META_UNKNOWN; 764 744 char *fileName = NULL; 765 745 char *strName = NULL; … … 802 782 if(xmlStrEqual(BAD_CAST strType, BAD_CAST "psString")) { 803 783 mdType = PS_META_STR; 804 pType = PS_TYPE_PTR;805 784 } else if(xmlStrEqual(BAD_CAST strType, BAD_CAST "psBool")) { 806 mdType = PS_META_PRIMITIVE; 807 pType = PS_TYPE_U8; 785 mdType = PS_META_BOOL; 808 786 } else if(xmlStrEqual(BAD_CAST strType, BAD_CAST "psS32")) { 809 mdType = PS_META_PRIMITIVE; 810 pType = PS_TYPE_S32; 787 mdType = PS_META_S32; 811 788 } else if(xmlStrEqual(BAD_CAST strType, BAD_CAST "psF32")) { 812 mdType = PS_META_PRIMITIVE; 813 pType = PS_TYPE_F32; 789 mdType = PS_META_F32; 814 790 } else if(xmlStrEqual(BAD_CAST strType, BAD_CAST "psF64")) { 815 mdType = PS_META_PRIMITIVE; 816 pType = PS_TYPE_F64; 791 mdType = PS_META_F64; 817 792 } else { 818 793 psError(PS_ERR_IO, true, PS_ERRORTEXT_psMetadataIO_TYPE_INVALID_LINE_FILE, strType, lineNumber, … … 853 828 switch(mdType) { 854 829 case PS_META_LIST: 855 psMetadataAdd(md, PS_LIST_TAIL, strName, pType,mdType, NULL, NULL);830 psMetadataAdd(md, PS_LIST_TAIL, strName, mdType, NULL, NULL); 856 831 break; 857 832 case PS_META_STR: 858 psMetadataAdd(md, PS_LIST_TAIL, strName, pType,mdType, NULL, strValue);833 psMetadataAdd(md, PS_LIST_TAIL, strName, mdType, NULL, strValue); 859 834 break; 860 case PS_META_PRIMITIVE: 861 switch(pType) { 862 case PS_TYPE_BOOL: 863 tempBool = parseBool((char*)strValue, &status); 864 if(!status) { 865 psMetadataAdd(md, PS_LIST_TAIL, strName, pType, mdType, NULL, tempBool); 866 } else { 867 status = 0; 868 psError(PS_ERR_IO, true, PS_ERRORTEXT_psMetadataIO_PARSE_FAILED, strValue, strName, strType, 869 lineNumber, fileName); 870 } 871 break; 872 case PS_TYPE_S32: 873 tempInt = (psS32)parseValue((char*)strValue, &status); 874 if(!status) { 875 psMetadataAdd(md, PS_LIST_TAIL, strName, pType, mdType, NULL, tempInt); 876 } else { 877 status = 0; 878 psError(PS_ERR_IO, true, PS_ERRORTEXT_psMetadataIO_PARSE_FAILED, strValue, strName, strType, 879 lineNumber, fileName); 880 } 881 break; 882 case PS_TYPE_F32: 883 case PS_TYPE_F64: 884 tempDbl = parseValue((char*)strValue, &status); 885 if(!status) { 886 psMetadataAdd(md, PS_LIST_TAIL, strName, pType, mdType, NULL, tempDbl); 887 } else { 888 status = 0; 889 psError(PS_ERR_IO, true, PS_ERRORTEXT_psMetadataIO_PARSE_FAILED, strValue, strName, strType, 890 lineNumber, fileName); 891 } 892 break; 893 default: 894 psError(PS_ERR_IO, true, PS_ERRORTEXT_psMetadataIO_FILE_TYPE_INVALID, strType, lineNumber, fileName); 895 } // End switch 835 case PS_META_BOOL: 836 tempBool = parseBool((char*)strValue, &status); 837 if(!status) { 838 psMetadataAdd(md, PS_LIST_TAIL, strName, mdType, NULL, tempBool); 839 } else { 840 status = 0; 841 psError(PS_ERR_IO, true, PS_ERRORTEXT_psMetadataIO_PARSE_FAILED, strValue, strName, strType, 842 lineNumber, fileName); 843 } 844 break; 845 case PS_META_S32: 846 tempInt = (psS32)parseValue((char*)strValue, &status); 847 if(!status) { 848 psMetadataAdd(md, PS_LIST_TAIL, strName, mdType, NULL, tempInt); 849 } else { 850 status = 0; 851 psError(PS_ERR_IO, true, PS_ERRORTEXT_psMetadataIO_PARSE_FAILED, strValue, strName, strType, 852 lineNumber, fileName); 853 } 854 break; 855 case PS_META_F32: 856 case PS_META_F64: 857 tempDbl = parseValue((char*)strValue, &status); 858 if(!status) { 859 psMetadataAdd(md, PS_LIST_TAIL, strName, mdType, NULL, tempDbl); 860 } else { 861 status = 0; 862 psError(PS_ERR_IO, true, PS_ERRORTEXT_psMetadataIO_PARSE_FAILED, strValue, strName, strType, 863 lineNumber, fileName); 864 } 896 865 break; 897 866 default: … … 899 868 } // End switch 900 869 901 902 870 return; 903 871 } 904 872 905 873 906 static void p_psInitVectorXml(void *ctx, char *tagName)874 static void initVectorXml(void *ctx, char *tagName) 907 875 { 908 876 bool overwrite = false; … … 910 878 psU32 lineNumber = 0; 911 879 psElemType pType = PS_TYPE_PTR; 912 psMetadataType mdType = PS_META_PRIMITIVE;913 880 char *strName = NULL; 914 881 char *strType = NULL; … … 952 919 strType = psHashLookup(htAtts, "psType"); 953 920 if(strType!= NULL) { 954 if(xmlStrEqual(BAD_CAST strType, BAD_CAST "psString")) { 955 mdType = PS_META_STR; 956 pType = PS_TYPE_PTR; 957 } else if(xmlStrEqual(BAD_CAST strType, BAD_CAST "psBool")) { 958 mdType = PS_META_PRIMITIVE; 921 if(xmlStrEqual(BAD_CAST strType, BAD_CAST "psBool")) { 959 922 pType = PS_TYPE_U8; 960 923 } else if(xmlStrEqual(BAD_CAST strType, BAD_CAST "psS32")) { 961 mdType = PS_META_PRIMITIVE;962 924 pType = PS_TYPE_S32; 963 925 } else if(xmlStrEqual(BAD_CAST strType, BAD_CAST "psF32")) { 964 mdType = PS_META_PRIMITIVE;965 926 pType = PS_TYPE_F32; 966 927 } else if(xmlStrEqual(BAD_CAST strType, BAD_CAST "psF64")) { 967 mdType = PS_META_PRIMITIVE;968 928 pType = PS_TYPE_F64; 969 929 } else { … … 1006 966 vec = parseVector((char*)strValue, pType, &status); 1007 967 if(!status) { 1008 psMetadataAdd(md, PS_LIST_TAIL, strName+1, pType, mdType, NULL, vec);968 psMetadataAdd(md, PS_LIST_TAIL, strName+1, PS_META_VEC, NULL, vec); 1009 969 } else { 1010 970 psError(PS_ERR_IO, true, PS_ERRORTEXT_psMetadataIO_PARSE_FAILED, strValue, strName, strType, … … 1014 974 } 1015 975 1016 static void p_saxEndElement(void *ctx, const xmlChar *tagName)976 static void saxEndElement(void *ctx, const xmlChar *tagName) 1017 977 { 1018 978 char *psStartTagName = NULL; … … 1052 1012 // Initialize psLib structs 1053 1013 if(!strcmp(psEndTagName, "psMetadataItem")) { 1054 p_psInitMetadataItemXml(ctx, psEndTagName);1014 initMetadataItemXml(ctx, psEndTagName); 1055 1015 } else if(!strcmp(psEndTagName, "psVector")) { 1056 p_psInitVectorXml(ctx, psEndTagName);1016 initVectorXml(ctx, psEndTagName); 1057 1017 } else if(strcmp(psEndTagName, "psRoot")) { 1058 1018 psError(PS_ERR_IO, true, PS_ERRORTEXT_psMetadataIO_TAG_UNKNOWN, psEndTagName); … … 1095 1055 saxHandler.startDocument = NULL; 1096 1056 saxHandler.endDocument = NULL; 1097 saxHandler.startElement = p_saxStartElement;1098 saxHandler.endElement = p_saxEndElement;1057 saxHandler.startElement = saxStartElement; 1058 saxHandler.endElement = saxEndElement; 1099 1059 saxHandler.reference = NULL; 1100 1060 saxHandler.characters = NULL; -
trunk/psLib/src/astronomy/psTime.c
r3264 r3341 10 10 * @author Ross Harman, MHPCC 11 11 * 12 * @version $Revision: 1.5 3$ $Name: not supported by cvs2svn $13 * @date $Date: 2005-02- 17 19:26:23$12 * @version $Revision: 1.54 $ $Name: not supported by cvs2svn $ 13 * @date $Date: 2005-02-28 23:34:10 $ 14 14 * 15 15 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 215 215 char metadataTableNames[4][MAX_STRING_LENGTH] = {"ser7", "eopc", "finals", "tai"}; 216 216 217 218 217 // Read time config file 219 218 timeMetadata = psMetadataParseConfig(timeMetadata, &nFail, fileName, true); … … 313 312 if(metadataNamesPtr != NULL) { 314 313 psMetadataAdd(timeMetadata, PS_LIST_TAIL, strcat(metadataTableNames[j], "Table"), 315 PS_ TYPE_PTR, PS_META_LOOKUPTABLE, NULL, table);314 PS_META_LOOKUPTABLE, NULL, table); 316 315 foundTable = true; 317 316 } else if(foundTable==false && j==numTables-1) { … … 322 321 psFree(fullTableName); 323 322 psFree(tableName); 323 psFree(table); 324 324 i++; 325 325 } -
trunk/psLib/src/collections/psMetadata.c
r3286 r3341 12 12 * @author Ross Harman, MHPCC 13 13 * 14 * @version $Revision: 1.5 2$ $Name: not supported by cvs2svn $15 * @date $Date: 2005-02- 18 22:17:20 $14 * @version $Revision: 1.53 $ $Name: not supported by cvs2svn $ 15 * @date $Date: 2005-02-28 23:34:10 $ 16 16 * 17 17 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 80 80 psFree(metadataItem->name); 81 81 psFree(metadataItem->comment); 82 if ( type != PS_META_PRIMITIVE) {82 if (! PS_META_IS_PRIMITIVE(type)) { 83 83 psFree(metadataItem->data.V); 84 84 } … … 98 98 /*****************************************************************************/ 99 99 100 psMetadataItem* psMetadataItemAlloc(const char *name, ps ElemType pType, psMetadataType type,100 psMetadataItem* psMetadataItemAlloc(const char *name, psMetadataType type, 101 101 const char *comment, ...) 102 102 { … … 108 108 109 109 // Call metadata item allocation 110 metadataItem = psMetadataItemAllocV(name, pType,type, comment, argPtr);110 metadataItem = psMetadataItemAllocV(name, type, comment, argPtr); 111 111 112 112 // Clean up stack after variable arguement has been used … … 116 116 } 117 117 118 psMetadataItem* psMetadataItemAllocV(const char *name, psElemType pType, psMetadataType type, 118 #define METADATAITEM_ALLOC_TYPE(NAME,TYPE,METATYPE) \ 119 psMetadataItem* psMetadataItemAlloc##NAME(const char* name, \ 120 const char* comment, \ 121 TYPE value) \ 122 { \ 123 return psMetadataItemAlloc(name, METATYPE, comment, value); \ 124 } 125 126 METADATAITEM_ALLOC_TYPE(Str,const char*,PS_META_STR) 127 METADATAITEM_ALLOC_TYPE(F32,psF32,PS_META_F32) 128 METADATAITEM_ALLOC_TYPE(F64,psF64,PS_META_F64) 129 METADATAITEM_ALLOC_TYPE(S32,psS32,PS_META_S32) 130 METADATAITEM_ALLOC_TYPE(Bool,psBool,PS_META_BOOL) 131 132 psMetadataItem* psMetadataItemAllocV(const char *name, psMetadataType type, 119 133 const char *comment, va_list argPtr) 120 134 { … … 145 159 // Set metadata item type 146 160 metadataItem->type = type; 147 metadataItem->pType = pType;148 161 149 162 // Allocate and set metadata item name … … 153 166 // Set metadata item value 154 167 switch(type) { 155 case PS_META_PRIMITIVE: 156 switch(pType) { 157 case PS_TYPE_BOOL: 158 metadataItem->data.B = (psBool)va_arg(argPtr, psS32); 159 break; 160 case PS_TYPE_S32: 161 metadataItem->data.S32 = (psS32)va_arg(argPtr, psS32); 162 break; 163 case PS_TYPE_F32: 164 metadataItem->data.F32 = (psF32)va_arg(argPtr, psF64); 165 break; 166 case PS_TYPE_F64: 167 metadataItem->data.F64 = (psF64)va_arg(argPtr, psF64); 168 break; 169 default: 170 psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psMetadata_METATYPE_INVALID, type); 171 psFree(metadataItem); 172 metadataItem = NULL; 173 } 168 case PS_META_BOOL: 169 metadataItem->data.B = (psBool)va_arg(argPtr, psS32); 170 break; 171 case PS_META_S32: 172 metadataItem->data.S32 = (psS32)va_arg(argPtr, psS32); 173 break; 174 case PS_META_F32: 175 metadataItem->data.F32 = (psF32)va_arg(argPtr, psF64); 176 break; 177 case PS_META_F64: 178 metadataItem->data.F64 = (psF64)va_arg(argPtr, psF64); 174 179 break; 175 180 case PS_META_STR: … … 186 191 case PS_META_UNKNOWN: 187 192 // Copy of input data not performed due to variability of data types 188 metadataItem->data.V = va_arg(argPtr, psPtr);193 metadataItem->data.V = psMemIncrRefCounter(va_arg(argPtr, psPtr)); 189 194 break; 190 195 default: … … 256 261 257 262 // Leaf node replaces another leaf. Make new folder node and add leaves. 258 newFolderEntry = psMetadataItemAlloc(key, PS_ TYPE_PTR, PS_META_LIST, NULL, NULL);263 newFolderEntry = psMetadataItemAlloc(key, PS_META_LIST, NULL, NULL); 259 264 newFolderEntry->data.list = psListAlloc(NULL); 260 265 … … 328 333 } 329 334 330 psBool psMetadataAdd(psMetadata *md, psS32 where, const char *name, psElemType pType,335 psBool psMetadataAdd(psMetadata *md, psS32 where, const char *name, 331 336 psMetadataType type, const char *comment, ...) 332 337 { … … 335 340 336 341 va_start(argPtr, comment); 337 metadataItem = psMetadataItemAllocV(name, pType,type, comment, argPtr);342 metadataItem = psMetadataItemAllocV(name, type, comment, argPtr); 338 343 va_end(argPtr); 339 344 … … 348 353 return true; 349 354 } 355 356 #define METADATA_ADD_TYPE(NAME,TYPE,METATYPE) \ 357 psBool psMetadataAdd##NAME(psMetadata* md, psS32 where, const char* name, \ 358 const char* comment, TYPE value) { \ 359 return psMetadataAdd(md,where,name, METATYPE,comment,value); \ 360 } 361 362 METADATA_ADD_TYPE(S32,psS32,PS_META_S32) 363 METADATA_ADD_TYPE(F32,psF32,PS_META_F32) 364 METADATA_ADD_TYPE(F64,psF64,PS_META_F64) 365 METADATA_ADD_TYPE(List,psList*,PS_META_LIST) 366 METADATA_ADD_TYPE(Str,const char*,PS_META_STR) 367 METADATA_ADD_TYPE(Vector,psVector*,PS_META_VEC) 368 METADATA_ADD_TYPE(Image,psImage*,PS_META_IMG) 369 METADATA_ADD_TYPE(Hash,psHash*,PS_META_HASH) 370 METADATA_ADD_TYPE(LookupTable,psLookupTable*,PS_META_LOOKUPTABLE) 371 METADATA_ADD_TYPE(Unknown,void*,PS_META_UNKNOWN) 350 372 351 373 psBool psMetadataRemove(psMetadata *md, psS32 where, const char *key) … … 435 457 } 436 458 437 if( metadataItem->type == PS_META_PRIMITIVE && metadataItem->pType != PS_TYPE_PTR) {459 if(PS_META_IS_PRIMITIVE(metadataItem->type)) { 438 460 if (status) { 439 461 *status = false; 440 462 } 441 463 psError(PS_ERR_BAD_PARAMETER_VALUE, true, 442 PS_ERRORTEXT_psMetadata_METATYPE_MISMATCH, 443 metadataItem->pType, 444 PS_TYPE_PTR); 464 PS_ERRORTEXT_psMetadata_METATYPE_INVALID, 465 metadataItem->type); 445 466 return NULL; 446 467 } else { … … 467 488 } \ 468 489 \ 469 if (metadataItem->type == PS_META_PRIMITIVE) { \ 470 switch (metadataItem->pType) { \ 471 case PS_TYPE_S32: \ 472 value = (ps##TYPE)metadataItem->data.S32; \ 473 break; \ 474 case PS_TYPE_F32: \ 475 value = (ps##TYPE)metadataItem->data.F32; \ 476 break; \ 477 case PS_TYPE_F64: \ 478 value = (ps##TYPE)metadataItem->data.F64; \ 479 break; \ 480 case PS_TYPE_BOOL: \ 481 if (metadataItem->data.B) { \ 482 value = 1; \ 483 } \ 484 break; \ 485 default: \ 486 /* if you get to this point, the value is not a number. */ \ 487 if (status) { \ 488 *status = false; \ 489 } \ 490 break; \ 490 switch (metadataItem->type) { \ 491 case PS_META_S32: \ 492 value = (ps##TYPE)metadataItem->data.S32; \ 493 break; \ 494 case PS_META_F32: \ 495 value = (ps##TYPE)metadataItem->data.F32; \ 496 break; \ 497 case PS_META_F64: \ 498 value = (ps##TYPE)metadataItem->data.F64; \ 499 break; \ 500 case PS_META_BOOL: \ 501 if (metadataItem->data.B) { \ 502 value = 1; \ 491 503 } \ 492 } else { \ 504 break; \ 505 default: \ 506 /* if you get to this point, the value is not a number. */ \ 493 507 if (status) { \ 494 508 *status = false; \ 495 509 } \ 510 break; \ 496 511 } \ 497 512 \ -
trunk/psLib/src/collections/psMetadata.h
r3264 r3341 11 11 * @author Ross Harman, MHPCC 12 12 * 13 * @version $Revision: 1.3 7$ $Name: not supported by cvs2svn $14 * @date $Date: 2005-02- 17 19:26:23$13 * @version $Revision: 1.38 $ $Name: not supported by cvs2svn $ 14 * @date $Date: 2005-02-28 23:34:10 $ 15 15 * 16 16 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 24 24 #include "psHash.h" 25 25 #include "psList.h" 26 #include "psImage.h" 27 #include "psLookupTable.h" 26 28 27 29 /// @addtogroup Metadata … … 33 35 */ 34 36 typedef enum { 35 PS_META_PRIMITIVE, ///< Primitive data. 37 PS_META_S32, ///< Primitive data. 38 PS_META_F32, ///< Primitive data. 39 PS_META_F64, ///< Primitive data. 40 PS_META_BOOL, ///< Primitive data. 36 41 PS_META_LIST, ///< List data (Stored as item.data.list). 37 42 PS_META_STR, ///< String data (Stored as item.data.V). … … 47 52 } psMetadataType; 48 53 54 #define PS_META_IS_PRIMITIVE(TYPE) \ 55 (TYPE == PS_META_S32 || \ 56 TYPE == PS_META_F32 || \ 57 TYPE == PS_META_F64 || \ 58 TYPE == PS_META_BOOL) 59 60 #define PS_META_PRIMITIVE_TYPE(METATYPE) ( \ 61 (METATYPE==PS_META_S32) ? PS_TYPE_S32 : \ 62 (METATYPE==PS_META_F32) ? PS_TYPE_F32 : \ 63 (METATYPE==PS_META_F64) ? PS_TYPE_F64 : \ 64 (METATYPE==PS_META_BOOL) ? PS_TYPE_BOOL : PS_TYPE_PTR ) 65 49 66 /** Option flags for psMetadata functions 50 67 * … … 55 72 typedef enum { 56 73 PS_META_DEFAULT = 0, ///< default behaviour (duplicate entry is an error) 57 PS_META_REPLACE ///< allow entry to be replaced74 PS_META_REPLACE = 0x10000 ///< allow entry to be replaced 58 75 } psMetadataFlags; 59 76 … … 82 99 char *name; ///< Name of metadata item. 83 100 psMetadataType type; ///< Type of metadata item. 84 psElemType pType; ///< Primitive data type85 101 union { 86 102 psBool B; ///< boolean data … … 113 129 psMetadataItem* psMetadataItemAlloc( 114 130 const char *name, ///< Name of metadata item. 115 psElemType pType, ///< Primitive type.116 131 psMetadataType type, ///< Type of metadata item. 117 132 const char *comment, ///< Comment for metadata item. 118 133 ... ///< Arguments for name formatting and metadata item data. 134 ); 135 136 psMetadataItem* psMetadataItemAllocStr( 137 const char* name, 138 const char* comment, 139 const char* value 140 ); 141 142 psMetadataItem* psMetadataItemAllocF32( 143 const char* name, 144 const char* comment, 145 psF32 value 146 ); 147 148 psMetadataItem* psMetadataItemAllocF64( 149 const char* name, 150 const char* comment, 151 psF64 value 152 ); 153 154 psMetadataItem* psMetadataItemAllocS32( 155 const char* name, 156 const char* comment, 157 psS32 value 158 ); 159 160 psMetadataItem* psMetadataItemAllocBool( 161 const char* name, 162 const char* comment, 163 psBool value 119 164 ); 120 165 … … 137 182 psMetadataItem* psMetadataItemAllocV( 138 183 const char *name, ///< Name of metadata item. 139 psElemType pType, ///< Primitive type.140 184 psMetadataType type, ///< Type of metadata item. 141 185 const char *comment, ///< Comment for metadata item. … … 161 205 */ 162 206 psBool psMetadataAddItem( 163 psMetadata* md, ///< Metadata collection to insert metadat item.164 psMetadataItem* item, ///< Metadata item to be added.165 psS32 location ///< Location to be added.207 psMetadata* md, ///< Metadata collection to insert metadat item. 208 psMetadataItem* item, ///< Metadata item to be added. 209 psS32 location ///< Location to be added. 166 210 ); 167 211 … … 173 217 */ 174 218 psBool psMetadataAdd( 175 psMetadata* md, ///< Metadata collection to insert metadat item. 176 psS32 where, ///< Location to be added. 177 const char *name, ///< Name of metadata item. 178 psElemType pType, ///< Primitive type. 179 psMetadataType type, ///< Type of metadata item. 180 const char *comment, ///< Comment for metadata item. 181 ... ///< Arguments for name formatting and metadata item data. 182 ); 219 psMetadata* md, ///< Metadata collection to insert metadat item. 220 psS32 where, ///< Location to be added. 221 const char *name, ///< Name of metadata item. 222 psMetadataType type, ///< Type of metadata item. 223 const char *comment, ///< Comment for metadata item. 224 ... ///< Arguments for name formatting and metadata item data. 225 ); 226 227 psBool psMetadataAddS32(psMetadata* md, psS32 where, const char* name, 228 const char* comment, psS32 value); 229 psBool psMetadataAddF32(psMetadata* md, psS32 where, const char* name, 230 const char* comment, psF32 value); 231 psBool psMetadataAddF64(psMetadata* md, psS32 where, const char* name, 232 const char* comment, psF64 value); 233 psBool psMetadataAddList(psMetadata* md, psS32 where, const char* name, 234 const char* comment, psList* value); 235 psBool psMetadataAddStr(psMetadata* md, psS32 where, const char* name, 236 const char* comment, const char* value); 237 psBool psMetadataAddVector(psMetadata* md, psS32 where, const char* name, 238 const char* comment, psVector* value); 239 psBool psMetadataAddImage(psMetadata* md, psS32 where, const char* name, 240 const char* comment, psImage* value); 241 psBool psMetadataAddHash(psMetadata* md, psS32 where, const char* name, 242 const char* comment, psHash* value); 243 psBool psMetadataAddLookupTable(psMetadata* md, psS32 where, const char* name, 244 const char* comment, psLookupTable* value); 245 psBool psMetadataAddUnknown(psMetadata* md, psS32 where, const char* name, 246 const char* comment, psPtr value); 247 183 248 184 249 /** Remove an item from metadata collection. -
trunk/psLib/src/collections/psMetadataIO.c
r3264 r3341 9 9 * @author Ross Harman, MHPCC 10 10 * 11 * @version $Revision: 1.2 0$ $Name: not supported by cvs2svn $12 * @date $Date: 2005-02- 17 19:26:23$11 * @version $Revision: 1.21 $ $Name: not supported by cvs2svn $ 12 * @date $Date: 2005-02-28 23:34:10 $ 13 13 * 14 14 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 101 101 /*****************************************************************************/ 102 102 103 static void p_saxEndElement(void *ctx, const xmlChar *tagName);104 static void p_psInitVectorXml(void *ctx, char *tagName);105 static void p_psInitMetadataItemXml(void *ctx, char *tagName);106 static void p_saxStartElement(void *ctx, const xmlChar *tagName, const xmlChar **atts);103 static void saxEndElement(void *ctx, const xmlChar *tagName); 104 static void initVectorXml(void *ctx, char *tagName); 105 static void initMetadataItemXml(void *ctx, char *tagName); 106 static void saxStartElement(void *ctx, const xmlChar *tagName, const xmlChar **atts); 107 107 108 108 /** Determines if a line is blank (whitespace only) or a commentline. It returns true if so. The input string … … 307 307 { 308 308 psMetadataType type; 309 psElemType pType;310 309 psBool success = true; 311 310 … … 315 314 316 315 type = metadataItem->type; 317 pType = metadataItem->pType;318 316 319 317 switch(type) { 320 case PS_META_PRIMITIVE: 321 switch(pType) { 322 case PS_TYPE_BOOL: 323 fprintf(fd, format, metadataItem->data.B); 324 break; 325 case PS_TYPE_S32: 326 fprintf(fd,format, metadataItem->data.S32); 327 break; 328 case PS_TYPE_F32: 329 fprintf(fd, format, metadataItem->data.F32); 330 break; 331 case PS_TYPE_F64: 332 fprintf(fd, format, metadataItem->data.F64); 333 break; 334 default: 335 psError(PS_ERR_BAD_PARAMETER_TYPE,true, PS_ERRORTEXT_psMetadata_METATYPE_INVALID, (int)pType); 336 success = false; 337 } 318 case PS_META_BOOL: 319 fprintf(fd, format, metadataItem->data.B); 320 break; 321 case PS_META_S32: 322 fprintf(fd,format, metadataItem->data.S32); 323 break; 324 case PS_META_F32: 325 fprintf(fd, format, metadataItem->data.F32); 326 break; 327 case PS_META_F64: 328 fprintf(fd, format, metadataItem->data.F64); 338 329 break; 339 330 case PS_META_STR: … … 419 410 switch (keyType) { 420 411 case 'I': 421 success = psMetadataAdd(output, PS_LIST_TAIL, keyName, PS_ TYPE_S32, PS_META_PRIMITIVE,412 success = psMetadataAdd(output, PS_LIST_TAIL, keyName, PS_META_S32, 422 413 keyComment, atoi(keyValue)); 423 414 break; 424 415 case 'F': 425 success = psMetadataAdd(output, PS_LIST_TAIL, keyName, PS_ TYPE_F64, PS_META_PRIMITIVE,416 success = psMetadataAdd(output, PS_LIST_TAIL, keyName, PS_META_F64, 426 417 keyComment, atof(keyValue)); 427 418 break; 428 419 case 'C': 429 success = psMetadataAdd(output, PS_LIST_TAIL, keyName, PS_ TYPE_PTR, PS_META_STR, keyComment,430 key Value);420 success = psMetadataAdd(output, PS_LIST_TAIL, keyName, PS_META_STR, 421 keyComment, keyValue); 431 422 break; 432 423 case 'L': 433 424 tempBool = (keyValue[0] == 'T') ? 1 : 0; 434 success = psMetadataAdd(output, PS_LIST_TAIL, keyName, PS_ TYPE_BOOL, PS_META_PRIMITIVE, keyComment,435 tempBool);425 success = psMetadataAdd(output, PS_LIST_TAIL, keyName, PS_META_BOOL, 426 keyComment, tempBool); 436 427 break; 437 428 case 'U': … … 460 451 char *strComment = NULL; 461 452 char *linePtr = NULL; 453 psElemType vecType = PS_TYPE_PTR; 462 454 psS32 status = 0; 463 455 psU32 lineCount = 0; … … 467 459 psVector *tempVec = NULL; 468 460 FILE *fp = NULL; 469 psElemType pType;470 461 psMetadataType mdType; 471 462 … … 535 526 } else if(!strncmp(strType, "*", 1)) { 536 527 mdType = PS_META_LIST; 537 pType = PS_TYPE_PTR;538 528 } else if(!strncmp(strType, "STR", 3)) { 539 529 mdType = PS_META_STR; 540 pType = PS_TYPE_PTR; 541 } else if(!strncmp(strType, "BOOL", 3)) { 542 mdType = PS_META_PRIMITIVE; 543 pType = PS_TYPE_BOOL; 530 } else if(!strncmp(strType, "BOOL", 4)) { 531 mdType = PS_META_BOOL; 544 532 } else if(!strncmp(strType, "S32", 3)) { 545 mdType = PS_META_PRIMITIVE; 546 pType = PS_TYPE_S32; 533 mdType = PS_META_S32; 547 534 } else if(!strncmp(strType, "F32", 3)) { 548 mdType = PS_META_PRIMITIVE; 549 pType = PS_TYPE_F32; 535 mdType = PS_META_F32; 550 536 } else if(!strncmp(strType, "F64", 3)) { 551 mdType = PS_META_PRIMITIVE; 552 pType = PS_TYPE_F64; 537 mdType = PS_META_F64; 553 538 } else { 554 539 (*nFail)++; … … 559 544 560 545 if(*strName == '@') { 546 vecType = PS_META_PRIMITIVE_TYPE(mdType); 561 547 mdType = PS_META_VEC; 562 548 } … … 604 590 switch (mdType) { 605 591 case PS_META_LIST: 606 psMetadataAdd(md, PS_LIST_TAIL, strName, pType,mdType, NULL, NULL);592 psMetadataAdd(md, PS_LIST_TAIL, strName, mdType, NULL, NULL); 607 593 break; 608 594 case PS_META_STR: 609 psMetadataAdd(md, PS_LIST_TAIL, strName, pType,mdType, strComment, strValue);595 psMetadataAdd(md, PS_LIST_TAIL, strName, mdType, strComment, strValue); 610 596 break; 611 597 case PS_META_VEC: 612 tempVec = parseVector(strValue, pType, &status);598 tempVec = parseVector(strValue, vecType, &status); 613 599 if(!status) { 614 psMetadataAdd(md, PS_LIST_TAIL, strName+1, pType, mdType, strComment, tempVec); 600 psMetadataAdd(md, PS_LIST_TAIL, strName+1, mdType, strComment, tempVec); 601 } else { 602 status = 0; 603 (*nFail)++; 604 psError(PS_ERR_IO, true, PS_ERRORTEXT_psMetadataIO_PARSE_FAILED, strValue, strName, 605 strType, lineCount, fileName); 606 continue; 607 } 608 psFree(tempVec); 609 break; 610 case PS_META_BOOL: 611 tempBool = parseBool(strValue, &status); 612 if(!status) { 613 psMetadataAdd(md, PS_LIST_TAIL, strName, mdType, strComment, tempBool); 615 614 } else { 616 615 status = 0; … … 621 620 } 622 621 break; 623 case PS_META_PRIMITIVE: 624 switch (pType) { 625 case PS_TYPE_BOOL: 626 tempBool = parseBool(strValue, &status); 627 if(!status) { 628 psMetadataAdd(md, PS_LIST_TAIL, strName, pType, mdType, strComment, tempBool); 629 } else { 630 status = 0; 631 (*nFail)++; 632 psError(PS_ERR_IO, true, PS_ERRORTEXT_psMetadataIO_PARSE_FAILED, strValue, strName, 633 strType, lineCount, fileName); 634 continue; 635 } 636 break; 637 case PS_TYPE_S32: 638 tempInt = (psS32)parseValue(strValue, &status); 639 if(!status) { 640 psMetadataAdd(md, PS_LIST_TAIL, strName, pType, mdType, strComment, tempInt); 641 } else { 642 status = 0; 643 (*nFail)++; 644 psError(PS_ERR_IO, true, PS_ERRORTEXT_psMetadataIO_PARSE_FAILED, strValue, strName, 645 strType, lineCount, fileName); 646 continue; 647 } 648 break; 649 case PS_TYPE_F32: 650 case PS_TYPE_F64: 651 tempDbl = parseValue(strValue, &status); 652 if(!status) { 653 psMetadataAdd(md, PS_LIST_TAIL, strName, pType, mdType, strComment, tempDbl); 654 } else { 655 status = 0; 656 (*nFail)++; 657 psError(PS_ERR_IO, true, 658 PS_ERRORTEXT_psMetadataIO_PARSE_FAILED, strValue, strName, strType, lineCount, 659 fileName); 660 continue; 661 } 662 break; 663 default: 622 case PS_META_S32: 623 tempInt = (psS32)parseValue(strValue, &status); 624 if(!status) { 625 psMetadataAdd(md, PS_LIST_TAIL, strName, mdType, strComment, tempInt); 626 } else { 627 status = 0; 664 628 (*nFail)++; 665 psError(PS_ERR_IO, true, PS_ERRORTEXT_psMetadataIO_FILE_TYPE_INVALID, mdType, lineCount, 629 psError(PS_ERR_IO, true, PS_ERRORTEXT_psMetadataIO_PARSE_FAILED, strValue, strName, 630 strType, lineCount, fileName); 631 continue; 632 } 633 break; 634 case PS_META_F32: 635 case PS_META_F64: 636 tempDbl = parseValue(strValue, &status); 637 if(!status) { 638 psMetadataAdd(md, PS_LIST_TAIL, strName, mdType, strComment, tempDbl); 639 } else { 640 status = 0; 641 (*nFail)++; 642 psError(PS_ERR_IO, true, 643 PS_ERRORTEXT_psMetadataIO_PARSE_FAILED, strValue, strName, strType, lineCount, 666 644 fileName); 667 645 continue; 668 } // switch646 } 669 647 break; 670 648 default: … … 682 660 } 683 661 684 static void p_saxStartElement(void *ctx, const xmlChar *tagName, const xmlChar **atts)662 static void saxStartElement(void *ctx, const xmlChar *tagName, const xmlChar **atts) 685 663 { 686 664 psU64 i = 0; … … 709 687 // Metadata containter for housing element attributes used by other SAX events 710 688 htAtts = psHashAlloc(10); 689 711 690 712 691 // Get tag name … … 745 724 746 725 // Add attributes to metadata 747 psMetadataAdd(md, PS_LIST_TAIL, "htAtts", PS_TYPE_PTR, PS_META_HASH, NULL, htAtts); 726 727 psMetadataAdd(md, PS_LIST_TAIL, "htAtts", PS_META_HASH, NULL, htAtts); 748 728 749 729 psFree(psTagName); 730 psFree(htAtts); 750 731 751 732 return; 752 733 } 753 734 754 static void p_psInitMetadataItemXml(void *ctx, char *tagName)735 static void initMetadataItemXml(void *ctx, char *tagName) 755 736 { 756 737 psBool overwrite = false; … … 760 741 psF64 tempDbl = 0.0; 761 742 psS32 tempInt = 0.0; 762 psElemType pType = PS_TYPE_PTR; 763 psMetadataType mdType = PS_META_PRIMITIVE; 743 psMetadataType mdType = PS_META_UNKNOWN; 764 744 char *fileName = NULL; 765 745 char *strName = NULL; … … 802 782 if(xmlStrEqual(BAD_CAST strType, BAD_CAST "psString")) { 803 783 mdType = PS_META_STR; 804 pType = PS_TYPE_PTR;805 784 } else if(xmlStrEqual(BAD_CAST strType, BAD_CAST "psBool")) { 806 mdType = PS_META_PRIMITIVE; 807 pType = PS_TYPE_U8; 785 mdType = PS_META_BOOL; 808 786 } else if(xmlStrEqual(BAD_CAST strType, BAD_CAST "psS32")) { 809 mdType = PS_META_PRIMITIVE; 810 pType = PS_TYPE_S32; 787 mdType = PS_META_S32; 811 788 } else if(xmlStrEqual(BAD_CAST strType, BAD_CAST "psF32")) { 812 mdType = PS_META_PRIMITIVE; 813 pType = PS_TYPE_F32; 789 mdType = PS_META_F32; 814 790 } else if(xmlStrEqual(BAD_CAST strType, BAD_CAST "psF64")) { 815 mdType = PS_META_PRIMITIVE; 816 pType = PS_TYPE_F64; 791 mdType = PS_META_F64; 817 792 } else { 818 793 psError(PS_ERR_IO, true, PS_ERRORTEXT_psMetadataIO_TYPE_INVALID_LINE_FILE, strType, lineNumber, … … 853 828 switch(mdType) { 854 829 case PS_META_LIST: 855 psMetadataAdd(md, PS_LIST_TAIL, strName, pType,mdType, NULL, NULL);830 psMetadataAdd(md, PS_LIST_TAIL, strName, mdType, NULL, NULL); 856 831 break; 857 832 case PS_META_STR: 858 psMetadataAdd(md, PS_LIST_TAIL, strName, pType,mdType, NULL, strValue);833 psMetadataAdd(md, PS_LIST_TAIL, strName, mdType, NULL, strValue); 859 834 break; 860 case PS_META_PRIMITIVE: 861 switch(pType) { 862 case PS_TYPE_BOOL: 863 tempBool = parseBool((char*)strValue, &status); 864 if(!status) { 865 psMetadataAdd(md, PS_LIST_TAIL, strName, pType, mdType, NULL, tempBool); 866 } else { 867 status = 0; 868 psError(PS_ERR_IO, true, PS_ERRORTEXT_psMetadataIO_PARSE_FAILED, strValue, strName, strType, 869 lineNumber, fileName); 870 } 871 break; 872 case PS_TYPE_S32: 873 tempInt = (psS32)parseValue((char*)strValue, &status); 874 if(!status) { 875 psMetadataAdd(md, PS_LIST_TAIL, strName, pType, mdType, NULL, tempInt); 876 } else { 877 status = 0; 878 psError(PS_ERR_IO, true, PS_ERRORTEXT_psMetadataIO_PARSE_FAILED, strValue, strName, strType, 879 lineNumber, fileName); 880 } 881 break; 882 case PS_TYPE_F32: 883 case PS_TYPE_F64: 884 tempDbl = parseValue((char*)strValue, &status); 885 if(!status) { 886 psMetadataAdd(md, PS_LIST_TAIL, strName, pType, mdType, NULL, tempDbl); 887 } else { 888 status = 0; 889 psError(PS_ERR_IO, true, PS_ERRORTEXT_psMetadataIO_PARSE_FAILED, strValue, strName, strType, 890 lineNumber, fileName); 891 } 892 break; 893 default: 894 psError(PS_ERR_IO, true, PS_ERRORTEXT_psMetadataIO_FILE_TYPE_INVALID, strType, lineNumber, fileName); 895 } // End switch 835 case PS_META_BOOL: 836 tempBool = parseBool((char*)strValue, &status); 837 if(!status) { 838 psMetadataAdd(md, PS_LIST_TAIL, strName, mdType, NULL, tempBool); 839 } else { 840 status = 0; 841 psError(PS_ERR_IO, true, PS_ERRORTEXT_psMetadataIO_PARSE_FAILED, strValue, strName, strType, 842 lineNumber, fileName); 843 } 844 break; 845 case PS_META_S32: 846 tempInt = (psS32)parseValue((char*)strValue, &status); 847 if(!status) { 848 psMetadataAdd(md, PS_LIST_TAIL, strName, mdType, NULL, tempInt); 849 } else { 850 status = 0; 851 psError(PS_ERR_IO, true, PS_ERRORTEXT_psMetadataIO_PARSE_FAILED, strValue, strName, strType, 852 lineNumber, fileName); 853 } 854 break; 855 case PS_META_F32: 856 case PS_META_F64: 857 tempDbl = parseValue((char*)strValue, &status); 858 if(!status) { 859 psMetadataAdd(md, PS_LIST_TAIL, strName, mdType, NULL, tempDbl); 860 } else { 861 status = 0; 862 psError(PS_ERR_IO, true, PS_ERRORTEXT_psMetadataIO_PARSE_FAILED, strValue, strName, strType, 863 lineNumber, fileName); 864 } 896 865 break; 897 866 default: … … 899 868 } // End switch 900 869 901 902 870 return; 903 871 } 904 872 905 873 906 static void p_psInitVectorXml(void *ctx, char *tagName)874 static void initVectorXml(void *ctx, char *tagName) 907 875 { 908 876 bool overwrite = false; … … 910 878 psU32 lineNumber = 0; 911 879 psElemType pType = PS_TYPE_PTR; 912 psMetadataType mdType = PS_META_PRIMITIVE;913 880 char *strName = NULL; 914 881 char *strType = NULL; … … 952 919 strType = psHashLookup(htAtts, "psType"); 953 920 if(strType!= NULL) { 954 if(xmlStrEqual(BAD_CAST strType, BAD_CAST "psString")) { 955 mdType = PS_META_STR; 956 pType = PS_TYPE_PTR; 957 } else if(xmlStrEqual(BAD_CAST strType, BAD_CAST "psBool")) { 958 mdType = PS_META_PRIMITIVE; 921 if(xmlStrEqual(BAD_CAST strType, BAD_CAST "psBool")) { 959 922 pType = PS_TYPE_U8; 960 923 } else if(xmlStrEqual(BAD_CAST strType, BAD_CAST "psS32")) { 961 mdType = PS_META_PRIMITIVE;962 924 pType = PS_TYPE_S32; 963 925 } else if(xmlStrEqual(BAD_CAST strType, BAD_CAST "psF32")) { 964 mdType = PS_META_PRIMITIVE;965 926 pType = PS_TYPE_F32; 966 927 } else if(xmlStrEqual(BAD_CAST strType, BAD_CAST "psF64")) { 967 mdType = PS_META_PRIMITIVE;968 928 pType = PS_TYPE_F64; 969 929 } else { … … 1006 966 vec = parseVector((char*)strValue, pType, &status); 1007 967 if(!status) { 1008 psMetadataAdd(md, PS_LIST_TAIL, strName+1, pType, mdType, NULL, vec);968 psMetadataAdd(md, PS_LIST_TAIL, strName+1, PS_META_VEC, NULL, vec); 1009 969 } else { 1010 970 psError(PS_ERR_IO, true, PS_ERRORTEXT_psMetadataIO_PARSE_FAILED, strValue, strName, strType, … … 1014 974 } 1015 975 1016 static void p_saxEndElement(void *ctx, const xmlChar *tagName)976 static void saxEndElement(void *ctx, const xmlChar *tagName) 1017 977 { 1018 978 char *psStartTagName = NULL; … … 1052 1012 // Initialize psLib structs 1053 1013 if(!strcmp(psEndTagName, "psMetadataItem")) { 1054 p_psInitMetadataItemXml(ctx, psEndTagName);1014 initMetadataItemXml(ctx, psEndTagName); 1055 1015 } else if(!strcmp(psEndTagName, "psVector")) { 1056 p_psInitVectorXml(ctx, psEndTagName);1016 initVectorXml(ctx, psEndTagName); 1057 1017 } else if(strcmp(psEndTagName, "psRoot")) { 1058 1018 psError(PS_ERR_IO, true, PS_ERRORTEXT_psMetadataIO_TAG_UNKNOWN, psEndTagName); … … 1095 1055 saxHandler.startDocument = NULL; 1096 1056 saxHandler.endDocument = NULL; 1097 saxHandler.startElement = p_saxStartElement;1098 saxHandler.endElement = p_saxEndElement;1057 saxHandler.startElement = saxStartElement; 1058 saxHandler.endElement = saxEndElement; 1099 1059 saxHandler.reference = NULL; 1100 1060 saxHandler.characters = NULL; -
trunk/psLib/src/dataIO/psFits.c
r3298 r3341 7 7 * @author Robert DeSonia, MHPCC 8 8 * 9 * @version $Revision: 1. 19$ $Name: not supported by cvs2svn $10 * @date $Date: 2005-02-2 2 19:25:52$9 * @version $Revision: 1.20 $ $Name: not supported by cvs2svn $ 10 * @date $Date: 2005-02-28 23:34:10 $ 11 11 * 12 12 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 162 162 } 163 163 164 static bool convert PsTypeToBinaryTForm(psElemType type, char** fitsType)164 static bool convertMetadataTypeToBinaryTForm(psMetadataType type, char** fitsType) 165 165 { 166 166 switch (type) { 167 case PS_ TYPE_BOOL:167 case PS_META_BOOL: 168 168 *fitsType = psStringCopy("1L"); 169 169 break; 170 case PS_ TYPE_S32:170 case PS_META_S32: 171 171 *fitsType = psStringCopy("1J"); 172 172 break; 173 case PS_ TYPE_F32:173 case PS_META_F32: 174 174 *fitsType = psStringCopy("1E"); 175 175 break; 176 case PS_ TYPE_F64:176 case PS_META_F64: 177 177 *fitsType = psStringCopy("1D"); 178 178 break; … … 506 506 PS_LIST_TAIL, 507 507 keyName, 508 PS_TYPE_S32, 509 PS_META_PRIMITIVE, 508 PS_META_S32, 510 509 keyComment, 511 510 atoi(keyValue)); … … 517 516 PS_LIST_TAIL, 518 517 keyName, 519 PS_TYPE_F64, 520 PS_META_PRIMITIVE, 518 PS_META_F64, 521 519 keyComment, 522 520 atof(keyValue)); … … 529 527 PS_LIST_TAIL, 530 528 keyName, 531 PS_TYPE_PTR,532 529 PS_META_STR, 533 530 keyComment, … … 537 534 PS_LIST_TAIL, 538 535 keyName, 539 PS_TYPE_PTR,540 536 PS_META_STR, 541 537 keyComment, … … 548 544 PS_LIST_TAIL, 549 545 keyName, 550 PS_TYPE_BOOL, 551 PS_META_PRIMITIVE, 546 PS_META_BOOL, 552 547 keyComment, 553 548 tempBool); … … 1072 1067 psMetadataItem* item; 1073 1068 while ( (item=psListGetAndIncrement(iter)) != NULL ) { 1074 if (item->type == PS_META_PRIMITIVE) { // we only write primitive data types. 1075 switch (item->pType) { 1076 case PS_TYPE_BOOL: { 1077 int value = item->data.B; 1078 fits_update_key(fits->p_fd, 1079 TLOGICAL, 1080 item->name, 1081 &value, 1082 item->comment, 1083 &status); 1084 break; 1085 } 1086 case PS_TYPE_S32: 1069 switch (item->type) { 1070 case PS_META_BOOL: { 1071 int value = item->data.B; 1087 1072 fits_update_key(fits->p_fd, 1088 T INT,1073 TLOGICAL, 1089 1074 item->name, 1090 & item->data.S32,1075 &value, 1091 1076 item->comment, 1092 1077 &status); 1093 1078 break; 1094 case PS_TYPE_F32:1095 fits_update_key(fits->p_fd,1096 TFLOAT,1097 item->name,1098 &item->data.F32,1099 item->comment,1100 &status);1101 break;1102 case PS_TYPE_F64:1103 fits_update_key(fits->p_fd,1104 TDOUBLE,1105 item->name,1106 &item->data.F64,1107 item->comment,1108 &status);1109 break;1110 default:1111 psError(PS_ERR_BAD_PARAMETER_TYPE, true,1112 PS_ERRORTEXT_psFits_METADATA_PTYPE_UNSUPPORTED,1113 item->pType);1114 break;1115 1079 } 1116 } else if (item->type == PS_META_STR) { 1080 case PS_META_S32: 1081 fits_update_key(fits->p_fd, 1082 TINT, 1083 item->name, 1084 &item->data.S32, 1085 item->comment, 1086 &status); 1087 break; 1088 case PS_META_F32: 1089 fits_update_key(fits->p_fd, 1090 TFLOAT, 1091 item->name, 1092 &item->data.F32, 1093 item->comment, 1094 &status); 1095 break; 1096 case PS_META_F64: 1097 fits_update_key(fits->p_fd, 1098 TDOUBLE, 1099 item->name, 1100 &item->data.F64, 1101 item->comment, 1102 &status); 1103 break; 1104 case PS_META_STR: 1117 1105 fits_update_key(fits->p_fd, 1118 1106 TSTRING, … … 1121 1109 item->comment, 1122 1110 &status); 1111 break; 1112 default: // all other META types are ignored 1113 break; 1123 1114 } 1124 1115 … … 1214 1205 1, 1, NULL, &value, &anynul, &status); \ 1215 1206 psMetadataAdd(data,PS_LIST_TAIL, name, \ 1216 PS_ TYPE_##TYPE, PS_META_PRIMITIVE, \1207 PS_META_##TYPE, \ 1217 1208 "", (ps##TYPE)value); \ 1218 1209 break; \ … … 1234 1225 if (anynul == 0) { 1235 1226 psMetadataAdd(data,PS_LIST_TAIL, name, 1236 PS_ TYPE_PTR, PS_META_STR,1227 PS_META_STR, 1237 1228 "", value); 1238 1229 } … … 1487 1478 PS_LIST_HEAD,true); 1488 1479 while ( (item=psListGetAndIncrement(iter)) != NULL) { 1489 if ( item->type == PS_META_PRIMITIVE) {1480 if (PS_META_IS_PRIMITIVE(item->type)) { 1490 1481 bool found = false; 1491 1482 for (int n=0; n < columns->n && ! found; n++) { … … 1515 1506 char* fitsType; 1516 1507 columnNames->data[n] = psMemIncrRefCounter(((psMetadataItem*)columns->data[n])->name); 1517 if ( ! convert PsTypeToBinaryTForm(((psMetadataItem*)columns->data[n])->pType,1518 &fitsType)) {1508 if ( ! convertMetadataTypeToBinaryTForm(((psMetadataItem*)columns->data[n])->type, 1509 &fitsType)) { 1519 1510 // XXX: error message 1520 1511 return false; … … 1540 1531 int row; 1541 1532 item = columns->data[n]; 1542 1543 if (item->type == PS_META_PRIMITIVE) {1544 psVector* col = psVectorAlloc(table->n, item->pType);1545 switch (item->pType) {1546 case PS_TYPE_S32:1533 if (PS_META_IS_PRIMITIVE(item->type)) { 1534 psVector* col = NULL; 1535 switch (item->type) { 1536 case PS_META_S32: 1537 col = psVectorAlloc(table->n, PS_TYPE_S32); 1547 1538 for (row = 0; row < table->n; row++) { 1548 1539 col->data.S32[row] = psMetadataLookupS32(NULL, … … 1558 1549 &status); 1559 1550 break; 1560 case PS_TYPE_F32: 1551 case PS_META_F32: 1552 col = psVectorAlloc(table->n, PS_TYPE_F32); 1561 1553 for (row = 0; row < table->n; row++) { 1562 1554 col->data.F32[row] = psMetadataLookupF32(NULL, … … 1572 1564 &status); 1573 1565 break; 1574 case PS_TYPE_F64: 1566 case PS_META_F64: 1567 col = psVectorAlloc(table->n, PS_TYPE_F64); 1575 1568 for (row = 0; row < table->n; row++) { 1576 1569 col->data.F64[row] = psMetadataLookupF64(NULL, … … 1586 1579 &status); 1587 1580 break; 1588 case PS_TYPE_BOOL: 1581 case PS_META_BOOL: 1582 col = psVectorAlloc(table->n, PS_TYPE_BOOL); 1589 1583 for (row = 0; row < table->n; row++) { 1590 1584 col->data.S8[row] = psMetadataLookupBool(NULL, … … 1601 1595 break; 1602 1596 default: 1603 // XXX: error message 1597 // XXX: error message? 1604 1598 break; 1605 1599 } -
trunk/psLib/src/dataManip/psMatrix.c
r3313 r3341 21 21 * @author Robert DeSonia, MHPCC 22 22 * 23 * @version $Revision: 1.2 5$ $Name: not supported by cvs2svn $24 * @date $Date: 2005-02-2 4 00:19:51$23 * @version $Revision: 1.26 $ $Name: not supported by cvs2svn $ 24 * @date $Date: 2005-02-28 23:34:10 $ 25 25 * 26 26 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 452 452 if(numRowsIn!=numColsOut && numRowsOut!=numColsIn) { 453 453 psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psMatrix_TRANSPOSE_MISMATCH); 454 TRANSPOSE_CLEANUP; 454 455 } 455 456 … … 542 543 "Image does not have dim with 1 col or 1 row: (%d x %d).", 543 544 inImage->numRows, inImage->numCols); 544 return outVector;545 psMatrixToVector_EXIT; 545 546 } 546 547 … … 557 558 "Image and vector sizes differ: (%d vs %d).", 558 559 inImage->numRows, outVector->n); 559 return outVector;560 psMatrixToVector_EXIT; 560 561 } 561 562 … … 573 574 "Image and vector sizes differ: (%d vs %d).", 574 575 inImage->numCols, outVector->n); 575 return outVector;576 psMatrixToVector_EXIT; 576 577 } 577 578 … … 603 604 "Image has more than 1 column: numCols = %d.", 604 605 outImage->numCols); 605 return outImage;606 VECTORTOMATRIX_CLEANUP; 606 607 } else if (outImage->numRows != inVector->n) { 607 608 psError(PS_ERR_BAD_PARAMETER_SIZE, true, 608 609 "Image and vector sizes differ: (%d vs %d).", 609 610 outImage->numRows, inVector->n); 610 return outImage;611 VECTORTOMATRIX_CLEANUP; 611 612 } 612 613 … … 622 623 "Image has more than 1 row: numRows = %d.", 623 624 outImage->numRows); 624 return outImage;625 VECTORTOMATRIX_CLEANUP; 625 626 } else if (outImage->numCols != inVector->n) { 626 627 psError(PS_ERR_BAD_PARAMETER_SIZE, true, 627 628 "Image and vector sizes differ: (%d vs %d).", 628 629 outImage->numCols, inVector->n); 629 return outImage;630 VECTORTOMATRIX_CLEANUP; 630 631 } 631 632 -
trunk/psLib/src/fileUtils/psFits.c
r3298 r3341 7 7 * @author Robert DeSonia, MHPCC 8 8 * 9 * @version $Revision: 1. 19$ $Name: not supported by cvs2svn $10 * @date $Date: 2005-02-2 2 19:25:52$9 * @version $Revision: 1.20 $ $Name: not supported by cvs2svn $ 10 * @date $Date: 2005-02-28 23:34:10 $ 11 11 * 12 12 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 162 162 } 163 163 164 static bool convert PsTypeToBinaryTForm(psElemType type, char** fitsType)164 static bool convertMetadataTypeToBinaryTForm(psMetadataType type, char** fitsType) 165 165 { 166 166 switch (type) { 167 case PS_ TYPE_BOOL:167 case PS_META_BOOL: 168 168 *fitsType = psStringCopy("1L"); 169 169 break; 170 case PS_ TYPE_S32:170 case PS_META_S32: 171 171 *fitsType = psStringCopy("1J"); 172 172 break; 173 case PS_ TYPE_F32:173 case PS_META_F32: 174 174 *fitsType = psStringCopy("1E"); 175 175 break; 176 case PS_ TYPE_F64:176 case PS_META_F64: 177 177 *fitsType = psStringCopy("1D"); 178 178 break; … … 506 506 PS_LIST_TAIL, 507 507 keyName, 508 PS_TYPE_S32, 509 PS_META_PRIMITIVE, 508 PS_META_S32, 510 509 keyComment, 511 510 atoi(keyValue)); … … 517 516 PS_LIST_TAIL, 518 517 keyName, 519 PS_TYPE_F64, 520 PS_META_PRIMITIVE, 518 PS_META_F64, 521 519 keyComment, 522 520 atof(keyValue)); … … 529 527 PS_LIST_TAIL, 530 528 keyName, 531 PS_TYPE_PTR,532 529 PS_META_STR, 533 530 keyComment, … … 537 534 PS_LIST_TAIL, 538 535 keyName, 539 PS_TYPE_PTR,540 536 PS_META_STR, 541 537 keyComment, … … 548 544 PS_LIST_TAIL, 549 545 keyName, 550 PS_TYPE_BOOL, 551 PS_META_PRIMITIVE, 546 PS_META_BOOL, 552 547 keyComment, 553 548 tempBool); … … 1072 1067 psMetadataItem* item; 1073 1068 while ( (item=psListGetAndIncrement(iter)) != NULL ) { 1074 if (item->type == PS_META_PRIMITIVE) { // we only write primitive data types. 1075 switch (item->pType) { 1076 case PS_TYPE_BOOL: { 1077 int value = item->data.B; 1078 fits_update_key(fits->p_fd, 1079 TLOGICAL, 1080 item->name, 1081 &value, 1082 item->comment, 1083 &status); 1084 break; 1085 } 1086 case PS_TYPE_S32: 1069 switch (item->type) { 1070 case PS_META_BOOL: { 1071 int value = item->data.B; 1087 1072 fits_update_key(fits->p_fd, 1088 T INT,1073 TLOGICAL, 1089 1074 item->name, 1090 & item->data.S32,1075 &value, 1091 1076 item->comment, 1092 1077 &status); 1093 1078 break; 1094 case PS_TYPE_F32:1095 fits_update_key(fits->p_fd,1096 TFLOAT,1097 item->name,1098 &item->data.F32,1099 item->comment,1100 &status);1101 break;1102 case PS_TYPE_F64:1103 fits_update_key(fits->p_fd,1104 TDOUBLE,1105 item->name,1106 &item->data.F64,1107 item->comment,1108 &status);1109 break;1110 default:1111 psError(PS_ERR_BAD_PARAMETER_TYPE, true,1112 PS_ERRORTEXT_psFits_METADATA_PTYPE_UNSUPPORTED,1113 item->pType);1114 break;1115 1079 } 1116 } else if (item->type == PS_META_STR) { 1080 case PS_META_S32: 1081 fits_update_key(fits->p_fd, 1082 TINT, 1083 item->name, 1084 &item->data.S32, 1085 item->comment, 1086 &status); 1087 break; 1088 case PS_META_F32: 1089 fits_update_key(fits->p_fd, 1090 TFLOAT, 1091 item->name, 1092 &item->data.F32, 1093 item->comment, 1094 &status); 1095 break; 1096 case PS_META_F64: 1097 fits_update_key(fits->p_fd, 1098 TDOUBLE, 1099 item->name, 1100 &item->data.F64, 1101 item->comment, 1102 &status); 1103 break; 1104 case PS_META_STR: 1117 1105 fits_update_key(fits->p_fd, 1118 1106 TSTRING, … … 1121 1109 item->comment, 1122 1110 &status); 1111 break; 1112 default: // all other META types are ignored 1113 break; 1123 1114 } 1124 1115 … … 1214 1205 1, 1, NULL, &value, &anynul, &status); \ 1215 1206 psMetadataAdd(data,PS_LIST_TAIL, name, \ 1216 PS_ TYPE_##TYPE, PS_META_PRIMITIVE, \1207 PS_META_##TYPE, \ 1217 1208 "", (ps##TYPE)value); \ 1218 1209 break; \ … … 1234 1225 if (anynul == 0) { 1235 1226 psMetadataAdd(data,PS_LIST_TAIL, name, 1236 PS_ TYPE_PTR, PS_META_STR,1227 PS_META_STR, 1237 1228 "", value); 1238 1229 } … … 1487 1478 PS_LIST_HEAD,true); 1488 1479 while ( (item=psListGetAndIncrement(iter)) != NULL) { 1489 if ( item->type == PS_META_PRIMITIVE) {1480 if (PS_META_IS_PRIMITIVE(item->type)) { 1490 1481 bool found = false; 1491 1482 for (int n=0; n < columns->n && ! found; n++) { … … 1515 1506 char* fitsType; 1516 1507 columnNames->data[n] = psMemIncrRefCounter(((psMetadataItem*)columns->data[n])->name); 1517 if ( ! convert PsTypeToBinaryTForm(((psMetadataItem*)columns->data[n])->pType,1518 &fitsType)) {1508 if ( ! convertMetadataTypeToBinaryTForm(((psMetadataItem*)columns->data[n])->type, 1509 &fitsType)) { 1519 1510 // XXX: error message 1520 1511 return false; … … 1540 1531 int row; 1541 1532 item = columns->data[n]; 1542 1543 if (item->type == PS_META_PRIMITIVE) {1544 psVector* col = psVectorAlloc(table->n, item->pType);1545 switch (item->pType) {1546 case PS_TYPE_S32:1533 if (PS_META_IS_PRIMITIVE(item->type)) { 1534 psVector* col = NULL; 1535 switch (item->type) { 1536 case PS_META_S32: 1537 col = psVectorAlloc(table->n, PS_TYPE_S32); 1547 1538 for (row = 0; row < table->n; row++) { 1548 1539 col->data.S32[row] = psMetadataLookupS32(NULL, … … 1558 1549 &status); 1559 1550 break; 1560 case PS_TYPE_F32: 1551 case PS_META_F32: 1552 col = psVectorAlloc(table->n, PS_TYPE_F32); 1561 1553 for (row = 0; row < table->n; row++) { 1562 1554 col->data.F32[row] = psMetadataLookupF32(NULL, … … 1572 1564 &status); 1573 1565 break; 1574 case PS_TYPE_F64: 1566 case PS_META_F64: 1567 col = psVectorAlloc(table->n, PS_TYPE_F64); 1575 1568 for (row = 0; row < table->n; row++) { 1576 1569 col->data.F64[row] = psMetadataLookupF64(NULL, … … 1586 1579 &status); 1587 1580 break; 1588 case PS_TYPE_BOOL: 1581 case PS_META_BOOL: 1582 col = psVectorAlloc(table->n, PS_TYPE_BOOL); 1589 1583 for (row = 0; row < table->n; row++) { 1590 1584 col->data.S8[row] = psMetadataLookupBool(NULL, … … 1601 1595 break; 1602 1596 default: 1603 // XXX: error message 1597 // XXX: error message? 1604 1598 break; 1605 1599 } -
trunk/psLib/src/fits/psFits.c
r3298 r3341 7 7 * @author Robert DeSonia, MHPCC 8 8 * 9 * @version $Revision: 1. 19$ $Name: not supported by cvs2svn $10 * @date $Date: 2005-02-2 2 19:25:52$9 * @version $Revision: 1.20 $ $Name: not supported by cvs2svn $ 10 * @date $Date: 2005-02-28 23:34:10 $ 11 11 * 12 12 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 162 162 } 163 163 164 static bool convert PsTypeToBinaryTForm(psElemType type, char** fitsType)164 static bool convertMetadataTypeToBinaryTForm(psMetadataType type, char** fitsType) 165 165 { 166 166 switch (type) { 167 case PS_ TYPE_BOOL:167 case PS_META_BOOL: 168 168 *fitsType = psStringCopy("1L"); 169 169 break; 170 case PS_ TYPE_S32:170 case PS_META_S32: 171 171 *fitsType = psStringCopy("1J"); 172 172 break; 173 case PS_ TYPE_F32:173 case PS_META_F32: 174 174 *fitsType = psStringCopy("1E"); 175 175 break; 176 case PS_ TYPE_F64:176 case PS_META_F64: 177 177 *fitsType = psStringCopy("1D"); 178 178 break; … … 506 506 PS_LIST_TAIL, 507 507 keyName, 508 PS_TYPE_S32, 509 PS_META_PRIMITIVE, 508 PS_META_S32, 510 509 keyComment, 511 510 atoi(keyValue)); … … 517 516 PS_LIST_TAIL, 518 517 keyName, 519 PS_TYPE_F64, 520 PS_META_PRIMITIVE, 518 PS_META_F64, 521 519 keyComment, 522 520 atof(keyValue)); … … 529 527 PS_LIST_TAIL, 530 528 keyName, 531 PS_TYPE_PTR,532 529 PS_META_STR, 533 530 keyComment, … … 537 534 PS_LIST_TAIL, 538 535 keyName, 539 PS_TYPE_PTR,540 536 PS_META_STR, 541 537 keyComment, … … 548 544 PS_LIST_TAIL, 549 545 keyName, 550 PS_TYPE_BOOL, 551 PS_META_PRIMITIVE, 546 PS_META_BOOL, 552 547 keyComment, 553 548 tempBool); … … 1072 1067 psMetadataItem* item; 1073 1068 while ( (item=psListGetAndIncrement(iter)) != NULL ) { 1074 if (item->type == PS_META_PRIMITIVE) { // we only write primitive data types. 1075 switch (item->pType) { 1076 case PS_TYPE_BOOL: { 1077 int value = item->data.B; 1078 fits_update_key(fits->p_fd, 1079 TLOGICAL, 1080 item->name, 1081 &value, 1082 item->comment, 1083 &status); 1084 break; 1085 } 1086 case PS_TYPE_S32: 1069 switch (item->type) { 1070 case PS_META_BOOL: { 1071 int value = item->data.B; 1087 1072 fits_update_key(fits->p_fd, 1088 T INT,1073 TLOGICAL, 1089 1074 item->name, 1090 & item->data.S32,1075 &value, 1091 1076 item->comment, 1092 1077 &status); 1093 1078 break; 1094 case PS_TYPE_F32:1095 fits_update_key(fits->p_fd,1096 TFLOAT,1097 item->name,1098 &item->data.F32,1099 item->comment,1100 &status);1101 break;1102 case PS_TYPE_F64:1103 fits_update_key(fits->p_fd,1104 TDOUBLE,1105 item->name,1106 &item->data.F64,1107 item->comment,1108 &status);1109 break;1110 default:1111 psError(PS_ERR_BAD_PARAMETER_TYPE, true,1112 PS_ERRORTEXT_psFits_METADATA_PTYPE_UNSUPPORTED,1113 item->pType);1114 break;1115 1079 } 1116 } else if (item->type == PS_META_STR) { 1080 case PS_META_S32: 1081 fits_update_key(fits->p_fd, 1082 TINT, 1083 item->name, 1084 &item->data.S32, 1085 item->comment, 1086 &status); 1087 break; 1088 case PS_META_F32: 1089 fits_update_key(fits->p_fd, 1090 TFLOAT, 1091 item->name, 1092 &item->data.F32, 1093 item->comment, 1094 &status); 1095 break; 1096 case PS_META_F64: 1097 fits_update_key(fits->p_fd, 1098 TDOUBLE, 1099 item->name, 1100 &item->data.F64, 1101 item->comment, 1102 &status); 1103 break; 1104 case PS_META_STR: 1117 1105 fits_update_key(fits->p_fd, 1118 1106 TSTRING, … … 1121 1109 item->comment, 1122 1110 &status); 1111 break; 1112 default: // all other META types are ignored 1113 break; 1123 1114 } 1124 1115 … … 1214 1205 1, 1, NULL, &value, &anynul, &status); \ 1215 1206 psMetadataAdd(data,PS_LIST_TAIL, name, \ 1216 PS_ TYPE_##TYPE, PS_META_PRIMITIVE, \1207 PS_META_##TYPE, \ 1217 1208 "", (ps##TYPE)value); \ 1218 1209 break; \ … … 1234 1225 if (anynul == 0) { 1235 1226 psMetadataAdd(data,PS_LIST_TAIL, name, 1236 PS_ TYPE_PTR, PS_META_STR,1227 PS_META_STR, 1237 1228 "", value); 1238 1229 } … … 1487 1478 PS_LIST_HEAD,true); 1488 1479 while ( (item=psListGetAndIncrement(iter)) != NULL) { 1489 if ( item->type == PS_META_PRIMITIVE) {1480 if (PS_META_IS_PRIMITIVE(item->type)) { 1490 1481 bool found = false; 1491 1482 for (int n=0; n < columns->n && ! found; n++) { … … 1515 1506 char* fitsType; 1516 1507 columnNames->data[n] = psMemIncrRefCounter(((psMetadataItem*)columns->data[n])->name); 1517 if ( ! convert PsTypeToBinaryTForm(((psMetadataItem*)columns->data[n])->pType,1518 &fitsType)) {1508 if ( ! convertMetadataTypeToBinaryTForm(((psMetadataItem*)columns->data[n])->type, 1509 &fitsType)) { 1519 1510 // XXX: error message 1520 1511 return false; … … 1540 1531 int row; 1541 1532 item = columns->data[n]; 1542 1543 if (item->type == PS_META_PRIMITIVE) {1544 psVector* col = psVectorAlloc(table->n, item->pType);1545 switch (item->pType) {1546 case PS_TYPE_S32:1533 if (PS_META_IS_PRIMITIVE(item->type)) { 1534 psVector* col = NULL; 1535 switch (item->type) { 1536 case PS_META_S32: 1537 col = psVectorAlloc(table->n, PS_TYPE_S32); 1547 1538 for (row = 0; row < table->n; row++) { 1548 1539 col->data.S32[row] = psMetadataLookupS32(NULL, … … 1558 1549 &status); 1559 1550 break; 1560 case PS_TYPE_F32: 1551 case PS_META_F32: 1552 col = psVectorAlloc(table->n, PS_TYPE_F32); 1561 1553 for (row = 0; row < table->n; row++) { 1562 1554 col->data.F32[row] = psMetadataLookupF32(NULL, … … 1572 1564 &status); 1573 1565 break; 1574 case PS_TYPE_F64: 1566 case PS_META_F64: 1567 col = psVectorAlloc(table->n, PS_TYPE_F64); 1575 1568 for (row = 0; row < table->n; row++) { 1576 1569 col->data.F64[row] = psMetadataLookupF64(NULL, … … 1586 1579 &status); 1587 1580 break; 1588 case PS_TYPE_BOOL: 1581 case PS_META_BOOL: 1582 col = psVectorAlloc(table->n, PS_TYPE_BOOL); 1589 1583 for (row = 0; row < table->n; row++) { 1590 1584 col->data.S8[row] = psMetadataLookupBool(NULL, … … 1601 1595 break; 1602 1596 default: 1603 // XXX: error message 1597 // XXX: error message? 1604 1598 break; 1605 1599 } -
trunk/psLib/src/math/psMatrix.c
r3313 r3341 21 21 * @author Robert DeSonia, MHPCC 22 22 * 23 * @version $Revision: 1.2 5$ $Name: not supported by cvs2svn $24 * @date $Date: 2005-02-2 4 00:19:51$23 * @version $Revision: 1.26 $ $Name: not supported by cvs2svn $ 24 * @date $Date: 2005-02-28 23:34:10 $ 25 25 * 26 26 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 452 452 if(numRowsIn!=numColsOut && numRowsOut!=numColsIn) { 453 453 psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psMatrix_TRANSPOSE_MISMATCH); 454 TRANSPOSE_CLEANUP; 454 455 } 455 456 … … 542 543 "Image does not have dim with 1 col or 1 row: (%d x %d).", 543 544 inImage->numRows, inImage->numCols); 544 return outVector;545 psMatrixToVector_EXIT; 545 546 } 546 547 … … 557 558 "Image and vector sizes differ: (%d vs %d).", 558 559 inImage->numRows, outVector->n); 559 return outVector;560 psMatrixToVector_EXIT; 560 561 } 561 562 … … 573 574 "Image and vector sizes differ: (%d vs %d).", 574 575 inImage->numCols, outVector->n); 575 return outVector;576 psMatrixToVector_EXIT; 576 577 } 577 578 … … 603 604 "Image has more than 1 column: numCols = %d.", 604 605 outImage->numCols); 605 return outImage;606 VECTORTOMATRIX_CLEANUP; 606 607 } else if (outImage->numRows != inVector->n) { 607 608 psError(PS_ERR_BAD_PARAMETER_SIZE, true, 608 609 "Image and vector sizes differ: (%d vs %d).", 609 610 outImage->numRows, inVector->n); 610 return outImage;611 VECTORTOMATRIX_CLEANUP; 611 612 } 612 613 … … 622 623 "Image has more than 1 row: numRows = %d.", 623 624 outImage->numRows); 624 return outImage;625 VECTORTOMATRIX_CLEANUP; 625 626 } else if (outImage->numCols != inVector->n) { 626 627 psError(PS_ERR_BAD_PARAMETER_SIZE, true, 627 628 "Image and vector sizes differ: (%d vs %d).", 628 629 outImage->numCols, inVector->n); 629 return outImage;630 VECTORTOMATRIX_CLEANUP; 630 631 } 631 632 -
trunk/psLib/src/sys/psType.h
r3264 r3341 1 2 1 /** @file psType.h 3 2 * … … 11 10 * @author Ross Harman, MHPCC 12 11 * 13 * @version $Revision: 1. 29$ $Name: not supported by cvs2svn $14 * @date $Date: 2005-02- 17 19:26:24$12 * @version $Revision: 1.30 $ $Name: not supported by cvs2svn $ 13 * @date $Date: 2005-02-28 23:34:10 $ 15 14 * 16 15 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii -
trunk/psLib/src/sysUtils/psType.h
r3264 r3341 1 2 1 /** @file psType.h 3 2 * … … 11 10 * @author Ross Harman, MHPCC 12 11 * 13 * @version $Revision: 1. 29$ $Name: not supported by cvs2svn $14 * @date $Date: 2005-02- 17 19:26:24$12 * @version $Revision: 1.30 $ $Name: not supported by cvs2svn $ 13 * @date $Date: 2005-02-28 23:34:10 $ 15 14 * 16 15 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii -
trunk/psLib/src/types/psMetadata.c
r3286 r3341 12 12 * @author Ross Harman, MHPCC 13 13 * 14 * @version $Revision: 1.5 2$ $Name: not supported by cvs2svn $15 * @date $Date: 2005-02- 18 22:17:20 $14 * @version $Revision: 1.53 $ $Name: not supported by cvs2svn $ 15 * @date $Date: 2005-02-28 23:34:10 $ 16 16 * 17 17 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 80 80 psFree(metadataItem->name); 81 81 psFree(metadataItem->comment); 82 if ( type != PS_META_PRIMITIVE) {82 if (! PS_META_IS_PRIMITIVE(type)) { 83 83 psFree(metadataItem->data.V); 84 84 } … … 98 98 /*****************************************************************************/ 99 99 100 psMetadataItem* psMetadataItemAlloc(const char *name, ps ElemType pType, psMetadataType type,100 psMetadataItem* psMetadataItemAlloc(const char *name, psMetadataType type, 101 101 const char *comment, ...) 102 102 { … … 108 108 109 109 // Call metadata item allocation 110 metadataItem = psMetadataItemAllocV(name, pType,type, comment, argPtr);110 metadataItem = psMetadataItemAllocV(name, type, comment, argPtr); 111 111 112 112 // Clean up stack after variable arguement has been used … … 116 116 } 117 117 118 psMetadataItem* psMetadataItemAllocV(const char *name, psElemType pType, psMetadataType type, 118 #define METADATAITEM_ALLOC_TYPE(NAME,TYPE,METATYPE) \ 119 psMetadataItem* psMetadataItemAlloc##NAME(const char* name, \ 120 const char* comment, \ 121 TYPE value) \ 122 { \ 123 return psMetadataItemAlloc(name, METATYPE, comment, value); \ 124 } 125 126 METADATAITEM_ALLOC_TYPE(Str,const char*,PS_META_STR) 127 METADATAITEM_ALLOC_TYPE(F32,psF32,PS_META_F32) 128 METADATAITEM_ALLOC_TYPE(F64,psF64,PS_META_F64) 129 METADATAITEM_ALLOC_TYPE(S32,psS32,PS_META_S32) 130 METADATAITEM_ALLOC_TYPE(Bool,psBool,PS_META_BOOL) 131 132 psMetadataItem* psMetadataItemAllocV(const char *name, psMetadataType type, 119 133 const char *comment, va_list argPtr) 120 134 { … … 145 159 // Set metadata item type 146 160 metadataItem->type = type; 147 metadataItem->pType = pType;148 161 149 162 // Allocate and set metadata item name … … 153 166 // Set metadata item value 154 167 switch(type) { 155 case PS_META_PRIMITIVE: 156 switch(pType) { 157 case PS_TYPE_BOOL: 158 metadataItem->data.B = (psBool)va_arg(argPtr, psS32); 159 break; 160 case PS_TYPE_S32: 161 metadataItem->data.S32 = (psS32)va_arg(argPtr, psS32); 162 break; 163 case PS_TYPE_F32: 164 metadataItem->data.F32 = (psF32)va_arg(argPtr, psF64); 165 break; 166 case PS_TYPE_F64: 167 metadataItem->data.F64 = (psF64)va_arg(argPtr, psF64); 168 break; 169 default: 170 psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psMetadata_METATYPE_INVALID, type); 171 psFree(metadataItem); 172 metadataItem = NULL; 173 } 168 case PS_META_BOOL: 169 metadataItem->data.B = (psBool)va_arg(argPtr, psS32); 170 break; 171 case PS_META_S32: 172 metadataItem->data.S32 = (psS32)va_arg(argPtr, psS32); 173 break; 174 case PS_META_F32: 175 metadataItem->data.F32 = (psF32)va_arg(argPtr, psF64); 176 break; 177 case PS_META_F64: 178 metadataItem->data.F64 = (psF64)va_arg(argPtr, psF64); 174 179 break; 175 180 case PS_META_STR: … … 186 191 case PS_META_UNKNOWN: 187 192 // Copy of input data not performed due to variability of data types 188 metadataItem->data.V = va_arg(argPtr, psPtr);193 metadataItem->data.V = psMemIncrRefCounter(va_arg(argPtr, psPtr)); 189 194 break; 190 195 default: … … 256 261 257 262 // Leaf node replaces another leaf. Make new folder node and add leaves. 258 newFolderEntry = psMetadataItemAlloc(key, PS_ TYPE_PTR, PS_META_LIST, NULL, NULL);263 newFolderEntry = psMetadataItemAlloc(key, PS_META_LIST, NULL, NULL); 259 264 newFolderEntry->data.list = psListAlloc(NULL); 260 265 … … 328 333 } 329 334 330 psBool psMetadataAdd(psMetadata *md, psS32 where, const char *name, psElemType pType,335 psBool psMetadataAdd(psMetadata *md, psS32 where, const char *name, 331 336 psMetadataType type, const char *comment, ...) 332 337 { … … 335 340 336 341 va_start(argPtr, comment); 337 metadataItem = psMetadataItemAllocV(name, pType,type, comment, argPtr);342 metadataItem = psMetadataItemAllocV(name, type, comment, argPtr); 338 343 va_end(argPtr); 339 344 … … 348 353 return true; 349 354 } 355 356 #define METADATA_ADD_TYPE(NAME,TYPE,METATYPE) \ 357 psBool psMetadataAdd##NAME(psMetadata* md, psS32 where, const char* name, \ 358 const char* comment, TYPE value) { \ 359 return psMetadataAdd(md,where,name, METATYPE,comment,value); \ 360 } 361 362 METADATA_ADD_TYPE(S32,psS32,PS_META_S32) 363 METADATA_ADD_TYPE(F32,psF32,PS_META_F32) 364 METADATA_ADD_TYPE(F64,psF64,PS_META_F64) 365 METADATA_ADD_TYPE(List,psList*,PS_META_LIST) 366 METADATA_ADD_TYPE(Str,const char*,PS_META_STR) 367 METADATA_ADD_TYPE(Vector,psVector*,PS_META_VEC) 368 METADATA_ADD_TYPE(Image,psImage*,PS_META_IMG) 369 METADATA_ADD_TYPE(Hash,psHash*,PS_META_HASH) 370 METADATA_ADD_TYPE(LookupTable,psLookupTable*,PS_META_LOOKUPTABLE) 371 METADATA_ADD_TYPE(Unknown,void*,PS_META_UNKNOWN) 350 372 351 373 psBool psMetadataRemove(psMetadata *md, psS32 where, const char *key) … … 435 457 } 436 458 437 if( metadataItem->type == PS_META_PRIMITIVE && metadataItem->pType != PS_TYPE_PTR) {459 if(PS_META_IS_PRIMITIVE(metadataItem->type)) { 438 460 if (status) { 439 461 *status = false; 440 462 } 441 463 psError(PS_ERR_BAD_PARAMETER_VALUE, true, 442 PS_ERRORTEXT_psMetadata_METATYPE_MISMATCH, 443 metadataItem->pType, 444 PS_TYPE_PTR); 464 PS_ERRORTEXT_psMetadata_METATYPE_INVALID, 465 metadataItem->type); 445 466 return NULL; 446 467 } else { … … 467 488 } \ 468 489 \ 469 if (metadataItem->type == PS_META_PRIMITIVE) { \ 470 switch (metadataItem->pType) { \ 471 case PS_TYPE_S32: \ 472 value = (ps##TYPE)metadataItem->data.S32; \ 473 break; \ 474 case PS_TYPE_F32: \ 475 value = (ps##TYPE)metadataItem->data.F32; \ 476 break; \ 477 case PS_TYPE_F64: \ 478 value = (ps##TYPE)metadataItem->data.F64; \ 479 break; \ 480 case PS_TYPE_BOOL: \ 481 if (metadataItem->data.B) { \ 482 value = 1; \ 483 } \ 484 break; \ 485 default: \ 486 /* if you get to this point, the value is not a number. */ \ 487 if (status) { \ 488 *status = false; \ 489 } \ 490 break; \ 490 switch (metadataItem->type) { \ 491 case PS_META_S32: \ 492 value = (ps##TYPE)metadataItem->data.S32; \ 493 break; \ 494 case PS_META_F32: \ 495 value = (ps##TYPE)metadataItem->data.F32; \ 496 break; \ 497 case PS_META_F64: \ 498 value = (ps##TYPE)metadataItem->data.F64; \ 499 break; \ 500 case PS_META_BOOL: \ 501 if (metadataItem->data.B) { \ 502 value = 1; \ 491 503 } \ 492 } else { \ 504 break; \ 505 default: \ 506 /* if you get to this point, the value is not a number. */ \ 493 507 if (status) { \ 494 508 *status = false; \ 495 509 } \ 510 break; \ 496 511 } \ 497 512 \ -
trunk/psLib/src/types/psMetadata.h
r3264 r3341 11 11 * @author Ross Harman, MHPCC 12 12 * 13 * @version $Revision: 1.3 7$ $Name: not supported by cvs2svn $14 * @date $Date: 2005-02- 17 19:26:23$13 * @version $Revision: 1.38 $ $Name: not supported by cvs2svn $ 14 * @date $Date: 2005-02-28 23:34:10 $ 15 15 * 16 16 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 24 24 #include "psHash.h" 25 25 #include "psList.h" 26 #include "psImage.h" 27 #include "psLookupTable.h" 26 28 27 29 /// @addtogroup Metadata … … 33 35 */ 34 36 typedef enum { 35 PS_META_PRIMITIVE, ///< Primitive data. 37 PS_META_S32, ///< Primitive data. 38 PS_META_F32, ///< Primitive data. 39 PS_META_F64, ///< Primitive data. 40 PS_META_BOOL, ///< Primitive data. 36 41 PS_META_LIST, ///< List data (Stored as item.data.list). 37 42 PS_META_STR, ///< String data (Stored as item.data.V). … … 47 52 } psMetadataType; 48 53 54 #define PS_META_IS_PRIMITIVE(TYPE) \ 55 (TYPE == PS_META_S32 || \ 56 TYPE == PS_META_F32 || \ 57 TYPE == PS_META_F64 || \ 58 TYPE == PS_META_BOOL) 59 60 #define PS_META_PRIMITIVE_TYPE(METATYPE) ( \ 61 (METATYPE==PS_META_S32) ? PS_TYPE_S32 : \ 62 (METATYPE==PS_META_F32) ? PS_TYPE_F32 : \ 63 (METATYPE==PS_META_F64) ? PS_TYPE_F64 : \ 64 (METATYPE==PS_META_BOOL) ? PS_TYPE_BOOL : PS_TYPE_PTR ) 65 49 66 /** Option flags for psMetadata functions 50 67 * … … 55 72 typedef enum { 56 73 PS_META_DEFAULT = 0, ///< default behaviour (duplicate entry is an error) 57 PS_META_REPLACE ///< allow entry to be replaced74 PS_META_REPLACE = 0x10000 ///< allow entry to be replaced 58 75 } psMetadataFlags; 59 76 … … 82 99 char *name; ///< Name of metadata item. 83 100 psMetadataType type; ///< Type of metadata item. 84 psElemType pType; ///< Primitive data type85 101 union { 86 102 psBool B; ///< boolean data … … 113 129 psMetadataItem* psMetadataItemAlloc( 114 130 const char *name, ///< Name of metadata item. 115 psElemType pType, ///< Primitive type.116 131 psMetadataType type, ///< Type of metadata item. 117 132 const char *comment, ///< Comment for metadata item. 118 133 ... ///< Arguments for name formatting and metadata item data. 134 ); 135 136 psMetadataItem* psMetadataItemAllocStr( 137 const char* name, 138 const char* comment, 139 const char* value 140 ); 141 142 psMetadataItem* psMetadataItemAllocF32( 143 const char* name, 144 const char* comment, 145 psF32 value 146 ); 147 148 psMetadataItem* psMetadataItemAllocF64( 149 const char* name, 150 const char* comment, 151 psF64 value 152 ); 153 154 psMetadataItem* psMetadataItemAllocS32( 155 const char* name, 156 const char* comment, 157 psS32 value 158 ); 159 160 psMetadataItem* psMetadataItemAllocBool( 161 const char* name, 162 const char* comment, 163 psBool value 119 164 ); 120 165 … … 137 182 psMetadataItem* psMetadataItemAllocV( 138 183 const char *name, ///< Name of metadata item. 139 psElemType pType, ///< Primitive type.140 184 psMetadataType type, ///< Type of metadata item. 141 185 const char *comment, ///< Comment for metadata item. … … 161 205 */ 162 206 psBool psMetadataAddItem( 163 psMetadata* md, ///< Metadata collection to insert metadat item.164 psMetadataItem* item, ///< Metadata item to be added.165 psS32 location ///< Location to be added.207 psMetadata* md, ///< Metadata collection to insert metadat item. 208 psMetadataItem* item, ///< Metadata item to be added. 209 psS32 location ///< Location to be added. 166 210 ); 167 211 … … 173 217 */ 174 218 psBool psMetadataAdd( 175 psMetadata* md, ///< Metadata collection to insert metadat item. 176 psS32 where, ///< Location to be added. 177 const char *name, ///< Name of metadata item. 178 psElemType pType, ///< Primitive type. 179 psMetadataType type, ///< Type of metadata item. 180 const char *comment, ///< Comment for metadata item. 181 ... ///< Arguments for name formatting and metadata item data. 182 ); 219 psMetadata* md, ///< Metadata collection to insert metadat item. 220 psS32 where, ///< Location to be added. 221 const char *name, ///< Name of metadata item. 222 psMetadataType type, ///< Type of metadata item. 223 const char *comment, ///< Comment for metadata item. 224 ... ///< Arguments for name formatting and metadata item data. 225 ); 226 227 psBool psMetadataAddS32(psMetadata* md, psS32 where, const char* name, 228 const char* comment, psS32 value); 229 psBool psMetadataAddF32(psMetadata* md, psS32 where, const char* name, 230 const char* comment, psF32 value); 231 psBool psMetadataAddF64(psMetadata* md, psS32 where, const char* name, 232 const char* comment, psF64 value); 233 psBool psMetadataAddList(psMetadata* md, psS32 where, const char* name, 234 const char* comment, psList* value); 235 psBool psMetadataAddStr(psMetadata* md, psS32 where, const char* name, 236 const char* comment, const char* value); 237 psBool psMetadataAddVector(psMetadata* md, psS32 where, const char* name, 238 const char* comment, psVector* value); 239 psBool psMetadataAddImage(psMetadata* md, psS32 where, const char* name, 240 const char* comment, psImage* value); 241 psBool psMetadataAddHash(psMetadata* md, psS32 where, const char* name, 242 const char* comment, psHash* value); 243 psBool psMetadataAddLookupTable(psMetadata* md, psS32 where, const char* name, 244 const char* comment, psLookupTable* value); 245 psBool psMetadataAddUnknown(psMetadata* md, psS32 where, const char* name, 246 const char* comment, psPtr value); 247 183 248 184 249 /** Remove an item from metadata collection. -
trunk/psLib/src/types/psMetadataConfig.c
r3264 r3341 9 9 * @author Ross Harman, MHPCC 10 10 * 11 * @version $Revision: 1.2 0$ $Name: not supported by cvs2svn $12 * @date $Date: 2005-02- 17 19:26:23$11 * @version $Revision: 1.21 $ $Name: not supported by cvs2svn $ 12 * @date $Date: 2005-02-28 23:34:10 $ 13 13 * 14 14 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 101 101 /*****************************************************************************/ 102 102 103 static void p_saxEndElement(void *ctx, const xmlChar *tagName);104 static void p_psInitVectorXml(void *ctx, char *tagName);105 static void p_psInitMetadataItemXml(void *ctx, char *tagName);106 static void p_saxStartElement(void *ctx, const xmlChar *tagName, const xmlChar **atts);103 static void saxEndElement(void *ctx, const xmlChar *tagName); 104 static void initVectorXml(void *ctx, char *tagName); 105 static void initMetadataItemXml(void *ctx, char *tagName); 106 static void saxStartElement(void *ctx, const xmlChar *tagName, const xmlChar **atts); 107 107 108 108 /** Determines if a line is blank (whitespace only) or a commentline. It returns true if so. The input string … … 307 307 { 308 308 psMetadataType type; 309 psElemType pType;310 309 psBool success = true; 311 310 … … 315 314 316 315 type = metadataItem->type; 317 pType = metadataItem->pType;318 316 319 317 switch(type) { 320 case PS_META_PRIMITIVE: 321 switch(pType) { 322 case PS_TYPE_BOOL: 323 fprintf(fd, format, metadataItem->data.B); 324 break; 325 case PS_TYPE_S32: 326 fprintf(fd,format, metadataItem->data.S32); 327 break; 328 case PS_TYPE_F32: 329 fprintf(fd, format, metadataItem->data.F32); 330 break; 331 case PS_TYPE_F64: 332 fprintf(fd, format, metadataItem->data.F64); 333 break; 334 default: 335 psError(PS_ERR_BAD_PARAMETER_TYPE,true, PS_ERRORTEXT_psMetadata_METATYPE_INVALID, (int)pType); 336 success = false; 337 } 318 case PS_META_BOOL: 319 fprintf(fd, format, metadataItem->data.B); 320 break; 321 case PS_META_S32: 322 fprintf(fd,format, metadataItem->data.S32); 323 break; 324 case PS_META_F32: 325 fprintf(fd, format, metadataItem->data.F32); 326 break; 327 case PS_META_F64: 328 fprintf(fd, format, metadataItem->data.F64); 338 329 break; 339 330 case PS_META_STR: … … 419 410 switch (keyType) { 420 411 case 'I': 421 success = psMetadataAdd(output, PS_LIST_TAIL, keyName, PS_ TYPE_S32, PS_META_PRIMITIVE,412 success = psMetadataAdd(output, PS_LIST_TAIL, keyName, PS_META_S32, 422 413 keyComment, atoi(keyValue)); 423 414 break; 424 415 case 'F': 425 success = psMetadataAdd(output, PS_LIST_TAIL, keyName, PS_ TYPE_F64, PS_META_PRIMITIVE,416 success = psMetadataAdd(output, PS_LIST_TAIL, keyName, PS_META_F64, 426 417 keyComment, atof(keyValue)); 427 418 break; 428 419 case 'C': 429 success = psMetadataAdd(output, PS_LIST_TAIL, keyName, PS_ TYPE_PTR, PS_META_STR, keyComment,430 key Value);420 success = psMetadataAdd(output, PS_LIST_TAIL, keyName, PS_META_STR, 421 keyComment, keyValue); 431 422 break; 432 423 case 'L': 433 424 tempBool = (keyValue[0] == 'T') ? 1 : 0; 434 success = psMetadataAdd(output, PS_LIST_TAIL, keyName, PS_ TYPE_BOOL, PS_META_PRIMITIVE, keyComment,435 tempBool);425 success = psMetadataAdd(output, PS_LIST_TAIL, keyName, PS_META_BOOL, 426 keyComment, tempBool); 436 427 break; 437 428 case 'U': … … 460 451 char *strComment = NULL; 461 452 char *linePtr = NULL; 453 psElemType vecType = PS_TYPE_PTR; 462 454 psS32 status = 0; 463 455 psU32 lineCount = 0; … … 467 459 psVector *tempVec = NULL; 468 460 FILE *fp = NULL; 469 psElemType pType;470 461 psMetadataType mdType; 471 462 … … 535 526 } else if(!strncmp(strType, "*", 1)) { 536 527 mdType = PS_META_LIST; 537 pType = PS_TYPE_PTR;538 528 } else if(!strncmp(strType, "STR", 3)) { 539 529 mdType = PS_META_STR; 540 pType = PS_TYPE_PTR; 541 } else if(!strncmp(strType, "BOOL", 3)) { 542 mdType = PS_META_PRIMITIVE; 543 pType = PS_TYPE_BOOL; 530 } else if(!strncmp(strType, "BOOL", 4)) { 531 mdType = PS_META_BOOL; 544 532 } else if(!strncmp(strType, "S32", 3)) { 545 mdType = PS_META_PRIMITIVE; 546 pType = PS_TYPE_S32; 533 mdType = PS_META_S32; 547 534 } else if(!strncmp(strType, "F32", 3)) { 548 mdType = PS_META_PRIMITIVE; 549 pType = PS_TYPE_F32; 535 mdType = PS_META_F32; 550 536 } else if(!strncmp(strType, "F64", 3)) { 551 mdType = PS_META_PRIMITIVE; 552 pType = PS_TYPE_F64; 537 mdType = PS_META_F64; 553 538 } else { 554 539 (*nFail)++; … … 559 544 560 545 if(*strName == '@') { 546 vecType = PS_META_PRIMITIVE_TYPE(mdType); 561 547 mdType = PS_META_VEC; 562 548 } … … 604 590 switch (mdType) { 605 591 case PS_META_LIST: 606 psMetadataAdd(md, PS_LIST_TAIL, strName, pType,mdType, NULL, NULL);592 psMetadataAdd(md, PS_LIST_TAIL, strName, mdType, NULL, NULL); 607 593 break; 608 594 case PS_META_STR: 609 psMetadataAdd(md, PS_LIST_TAIL, strName, pType,mdType, strComment, strValue);595 psMetadataAdd(md, PS_LIST_TAIL, strName, mdType, strComment, strValue); 610 596 break; 611 597 case PS_META_VEC: 612 tempVec = parseVector(strValue, pType, &status);598 tempVec = parseVector(strValue, vecType, &status); 613 599 if(!status) { 614 psMetadataAdd(md, PS_LIST_TAIL, strName+1, pType, mdType, strComment, tempVec); 600 psMetadataAdd(md, PS_LIST_TAIL, strName+1, mdType, strComment, tempVec); 601 } else { 602 status = 0; 603 (*nFail)++; 604 psError(PS_ERR_IO, true, PS_ERRORTEXT_psMetadataIO_PARSE_FAILED, strValue, strName, 605 strType, lineCount, fileName); 606 continue; 607 } 608 psFree(tempVec); 609 break; 610 case PS_META_BOOL: 611 tempBool = parseBool(strValue, &status); 612 if(!status) { 613 psMetadataAdd(md, PS_LIST_TAIL, strName, mdType, strComment, tempBool); 615 614 } else { 616 615 status = 0; … … 621 620 } 622 621 break; 623 case PS_META_PRIMITIVE: 624 switch (pType) { 625 case PS_TYPE_BOOL: 626 tempBool = parseBool(strValue, &status); 627 if(!status) { 628 psMetadataAdd(md, PS_LIST_TAIL, strName, pType, mdType, strComment, tempBool); 629 } else { 630 status = 0; 631 (*nFail)++; 632 psError(PS_ERR_IO, true, PS_ERRORTEXT_psMetadataIO_PARSE_FAILED, strValue, strName, 633 strType, lineCount, fileName); 634 continue; 635 } 636 break; 637 case PS_TYPE_S32: 638 tempInt = (psS32)parseValue(strValue, &status); 639 if(!status) { 640 psMetadataAdd(md, PS_LIST_TAIL, strName, pType, mdType, strComment, tempInt); 641 } else { 642 status = 0; 643 (*nFail)++; 644 psError(PS_ERR_IO, true, PS_ERRORTEXT_psMetadataIO_PARSE_FAILED, strValue, strName, 645 strType, lineCount, fileName); 646 continue; 647 } 648 break; 649 case PS_TYPE_F32: 650 case PS_TYPE_F64: 651 tempDbl = parseValue(strValue, &status); 652 if(!status) { 653 psMetadataAdd(md, PS_LIST_TAIL, strName, pType, mdType, strComment, tempDbl); 654 } else { 655 status = 0; 656 (*nFail)++; 657 psError(PS_ERR_IO, true, 658 PS_ERRORTEXT_psMetadataIO_PARSE_FAILED, strValue, strName, strType, lineCount, 659 fileName); 660 continue; 661 } 662 break; 663 default: 622 case PS_META_S32: 623 tempInt = (psS32)parseValue(strValue, &status); 624 if(!status) { 625 psMetadataAdd(md, PS_LIST_TAIL, strName, mdType, strComment, tempInt); 626 } else { 627 status = 0; 664 628 (*nFail)++; 665 psError(PS_ERR_IO, true, PS_ERRORTEXT_psMetadataIO_FILE_TYPE_INVALID, mdType, lineCount, 629 psError(PS_ERR_IO, true, PS_ERRORTEXT_psMetadataIO_PARSE_FAILED, strValue, strName, 630 strType, lineCount, fileName); 631 continue; 632 } 633 break; 634 case PS_META_F32: 635 case PS_META_F64: 636 tempDbl = parseValue(strValue, &status); 637 if(!status) { 638 psMetadataAdd(md, PS_LIST_TAIL, strName, mdType, strComment, tempDbl); 639 } else { 640 status = 0; 641 (*nFail)++; 642 psError(PS_ERR_IO, true, 643 PS_ERRORTEXT_psMetadataIO_PARSE_FAILED, strValue, strName, strType, lineCount, 666 644 fileName); 667 645 continue; 668 } // switch646 } 669 647 break; 670 648 default: … … 682 660 } 683 661 684 static void p_saxStartElement(void *ctx, const xmlChar *tagName, const xmlChar **atts)662 static void saxStartElement(void *ctx, const xmlChar *tagName, const xmlChar **atts) 685 663 { 686 664 psU64 i = 0; … … 709 687 // Metadata containter for housing element attributes used by other SAX events 710 688 htAtts = psHashAlloc(10); 689 711 690 712 691 // Get tag name … … 745 724 746 725 // Add attributes to metadata 747 psMetadataAdd(md, PS_LIST_TAIL, "htAtts", PS_TYPE_PTR, PS_META_HASH, NULL, htAtts); 726 727 psMetadataAdd(md, PS_LIST_TAIL, "htAtts", PS_META_HASH, NULL, htAtts); 748 728 749 729 psFree(psTagName); 730 psFree(htAtts); 750 731 751 732 return; 752 733 } 753 734 754 static void p_psInitMetadataItemXml(void *ctx, char *tagName)735 static void initMetadataItemXml(void *ctx, char *tagName) 755 736 { 756 737 psBool overwrite = false; … … 760 741 psF64 tempDbl = 0.0; 761 742 psS32 tempInt = 0.0; 762 psElemType pType = PS_TYPE_PTR; 763 psMetadataType mdType = PS_META_PRIMITIVE; 743 psMetadataType mdType = PS_META_UNKNOWN; 764 744 char *fileName = NULL; 765 745 char *strName = NULL; … … 802 782 if(xmlStrEqual(BAD_CAST strType, BAD_CAST "psString")) { 803 783 mdType = PS_META_STR; 804 pType = PS_TYPE_PTR;805 784 } else if(xmlStrEqual(BAD_CAST strType, BAD_CAST "psBool")) { 806 mdType = PS_META_PRIMITIVE; 807 pType = PS_TYPE_U8; 785 mdType = PS_META_BOOL; 808 786 } else if(xmlStrEqual(BAD_CAST strType, BAD_CAST "psS32")) { 809 mdType = PS_META_PRIMITIVE; 810 pType = PS_TYPE_S32; 787 mdType = PS_META_S32; 811 788 } else if(xmlStrEqual(BAD_CAST strType, BAD_CAST "psF32")) { 812 mdType = PS_META_PRIMITIVE; 813 pType = PS_TYPE_F32; 789 mdType = PS_META_F32; 814 790 } else if(xmlStrEqual(BAD_CAST strType, BAD_CAST "psF64")) { 815 mdType = PS_META_PRIMITIVE; 816 pType = PS_TYPE_F64; 791 mdType = PS_META_F64; 817 792 } else { 818 793 psError(PS_ERR_IO, true, PS_ERRORTEXT_psMetadataIO_TYPE_INVALID_LINE_FILE, strType, lineNumber, … … 853 828 switch(mdType) { 854 829 case PS_META_LIST: 855 psMetadataAdd(md, PS_LIST_TAIL, strName, pType,mdType, NULL, NULL);830 psMetadataAdd(md, PS_LIST_TAIL, strName, mdType, NULL, NULL); 856 831 break; 857 832 case PS_META_STR: 858 psMetadataAdd(md, PS_LIST_TAIL, strName, pType,mdType, NULL, strValue);833 psMetadataAdd(md, PS_LIST_TAIL, strName, mdType, NULL, strValue); 859 834 break; 860 case PS_META_PRIMITIVE: 861 switch(pType) { 862 case PS_TYPE_BOOL: 863 tempBool = parseBool((char*)strValue, &status); 864 if(!status) { 865 psMetadataAdd(md, PS_LIST_TAIL, strName, pType, mdType, NULL, tempBool); 866 } else { 867 status = 0; 868 psError(PS_ERR_IO, true, PS_ERRORTEXT_psMetadataIO_PARSE_FAILED, strValue, strName, strType, 869 lineNumber, fileName); 870 } 871 break; 872 case PS_TYPE_S32: 873 tempInt = (psS32)parseValue((char*)strValue, &status); 874 if(!status) { 875 psMetadataAdd(md, PS_LIST_TAIL, strName, pType, mdType, NULL, tempInt); 876 } else { 877 status = 0; 878 psError(PS_ERR_IO, true, PS_ERRORTEXT_psMetadataIO_PARSE_FAILED, strValue, strName, strType, 879 lineNumber, fileName); 880 } 881 break; 882 case PS_TYPE_F32: 883 case PS_TYPE_F64: 884 tempDbl = parseValue((char*)strValue, &status); 885 if(!status) { 886 psMetadataAdd(md, PS_LIST_TAIL, strName, pType, mdType, NULL, tempDbl); 887 } else { 888 status = 0; 889 psError(PS_ERR_IO, true, PS_ERRORTEXT_psMetadataIO_PARSE_FAILED, strValue, strName, strType, 890 lineNumber, fileName); 891 } 892 break; 893 default: 894 psError(PS_ERR_IO, true, PS_ERRORTEXT_psMetadataIO_FILE_TYPE_INVALID, strType, lineNumber, fileName); 895 } // End switch 835 case PS_META_BOOL: 836 tempBool = parseBool((char*)strValue, &status); 837 if(!status) { 838 psMetadataAdd(md, PS_LIST_TAIL, strName, mdType, NULL, tempBool); 839 } else { 840 status = 0; 841 psError(PS_ERR_IO, true, PS_ERRORTEXT_psMetadataIO_PARSE_FAILED, strValue, strName, strType, 842 lineNumber, fileName); 843 } 844 break; 845 case PS_META_S32: 846 tempInt = (psS32)parseValue((char*)strValue, &status); 847 if(!status) { 848 psMetadataAdd(md, PS_LIST_TAIL, strName, mdType, NULL, tempInt); 849 } else { 850 status = 0; 851 psError(PS_ERR_IO, true, PS_ERRORTEXT_psMetadataIO_PARSE_FAILED, strValue, strName, strType, 852 lineNumber, fileName); 853 } 854 break; 855 case PS_META_F32: 856 case PS_META_F64: 857 tempDbl = parseValue((char*)strValue, &status); 858 if(!status) { 859 psMetadataAdd(md, PS_LIST_TAIL, strName, mdType, NULL, tempDbl); 860 } else { 861 status = 0; 862 psError(PS_ERR_IO, true, PS_ERRORTEXT_psMetadataIO_PARSE_FAILED, strValue, strName, strType, 863 lineNumber, fileName); 864 } 896 865 break; 897 866 default: … … 899 868 } // End switch 900 869 901 902 870 return; 903 871 } 904 872 905 873 906 static void p_psInitVectorXml(void *ctx, char *tagName)874 static void initVectorXml(void *ctx, char *tagName) 907 875 { 908 876 bool overwrite = false; … … 910 878 psU32 lineNumber = 0; 911 879 psElemType pType = PS_TYPE_PTR; 912 psMetadataType mdType = PS_META_PRIMITIVE;913 880 char *strName = NULL; 914 881 char *strType = NULL; … … 952 919 strType = psHashLookup(htAtts, "psType"); 953 920 if(strType!= NULL) { 954 if(xmlStrEqual(BAD_CAST strType, BAD_CAST "psString")) { 955 mdType = PS_META_STR; 956 pType = PS_TYPE_PTR; 957 } else if(xmlStrEqual(BAD_CAST strType, BAD_CAST "psBool")) { 958 mdType = PS_META_PRIMITIVE; 921 if(xmlStrEqual(BAD_CAST strType, BAD_CAST "psBool")) { 959 922 pType = PS_TYPE_U8; 960 923 } else if(xmlStrEqual(BAD_CAST strType, BAD_CAST "psS32")) { 961 mdType = PS_META_PRIMITIVE;962 924 pType = PS_TYPE_S32; 963 925 } else if(xmlStrEqual(BAD_CAST strType, BAD_CAST "psF32")) { 964 mdType = PS_META_PRIMITIVE;965 926 pType = PS_TYPE_F32; 966 927 } else if(xmlStrEqual(BAD_CAST strType, BAD_CAST "psF64")) { 967 mdType = PS_META_PRIMITIVE;968 928 pType = PS_TYPE_F64; 969 929 } else { … … 1006 966 vec = parseVector((char*)strValue, pType, &status); 1007 967 if(!status) { 1008 psMetadataAdd(md, PS_LIST_TAIL, strName+1, pType, mdType, NULL, vec);968 psMetadataAdd(md, PS_LIST_TAIL, strName+1, PS_META_VEC, NULL, vec); 1009 969 } else { 1010 970 psError(PS_ERR_IO, true, PS_ERRORTEXT_psMetadataIO_PARSE_FAILED, strValue, strName, strType, … … 1014 974 } 1015 975 1016 static void p_saxEndElement(void *ctx, const xmlChar *tagName)976 static void saxEndElement(void *ctx, const xmlChar *tagName) 1017 977 { 1018 978 char *psStartTagName = NULL; … … 1052 1012 // Initialize psLib structs 1053 1013 if(!strcmp(psEndTagName, "psMetadataItem")) { 1054 p_psInitMetadataItemXml(ctx, psEndTagName);1014 initMetadataItemXml(ctx, psEndTagName); 1055 1015 } else if(!strcmp(psEndTagName, "psVector")) { 1056 p_psInitVectorXml(ctx, psEndTagName);1016 initVectorXml(ctx, psEndTagName); 1057 1017 } else if(strcmp(psEndTagName, "psRoot")) { 1058 1018 psError(PS_ERR_IO, true, PS_ERRORTEXT_psMetadataIO_TAG_UNKNOWN, psEndTagName); … … 1095 1055 saxHandler.startDocument = NULL; 1096 1056 saxHandler.endDocument = NULL; 1097 saxHandler.startElement = p_saxStartElement;1098 saxHandler.endElement = p_saxEndElement;1057 saxHandler.startElement = saxStartElement; 1058 saxHandler.endElement = saxEndElement; 1099 1059 saxHandler.reference = NULL; 1100 1060 saxHandler.characters = NULL; -
trunk/psLib/src/xml/psXML.c
r3264 r3341 9 9 * @author Ross Harman, MHPCC 10 10 * 11 * @version $Revision: 1.2 0$ $Name: not supported by cvs2svn $12 * @date $Date: 2005-02- 17 19:26:23$11 * @version $Revision: 1.21 $ $Name: not supported by cvs2svn $ 12 * @date $Date: 2005-02-28 23:34:10 $ 13 13 * 14 14 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 101 101 /*****************************************************************************/ 102 102 103 static void p_saxEndElement(void *ctx, const xmlChar *tagName);104 static void p_psInitVectorXml(void *ctx, char *tagName);105 static void p_psInitMetadataItemXml(void *ctx, char *tagName);106 static void p_saxStartElement(void *ctx, const xmlChar *tagName, const xmlChar **atts);103 static void saxEndElement(void *ctx, const xmlChar *tagName); 104 static void initVectorXml(void *ctx, char *tagName); 105 static void initMetadataItemXml(void *ctx, char *tagName); 106 static void saxStartElement(void *ctx, const xmlChar *tagName, const xmlChar **atts); 107 107 108 108 /** Determines if a line is blank (whitespace only) or a commentline. It returns true if so. The input string … … 307 307 { 308 308 psMetadataType type; 309 psElemType pType;310 309 psBool success = true; 311 310 … … 315 314 316 315 type = metadataItem->type; 317 pType = metadataItem->pType;318 316 319 317 switch(type) { 320 case PS_META_PRIMITIVE: 321 switch(pType) { 322 case PS_TYPE_BOOL: 323 fprintf(fd, format, metadataItem->data.B); 324 break; 325 case PS_TYPE_S32: 326 fprintf(fd,format, metadataItem->data.S32); 327 break; 328 case PS_TYPE_F32: 329 fprintf(fd, format, metadataItem->data.F32); 330 break; 331 case PS_TYPE_F64: 332 fprintf(fd, format, metadataItem->data.F64); 333 break; 334 default: 335 psError(PS_ERR_BAD_PARAMETER_TYPE,true, PS_ERRORTEXT_psMetadata_METATYPE_INVALID, (int)pType); 336 success = false; 337 } 318 case PS_META_BOOL: 319 fprintf(fd, format, metadataItem->data.B); 320 break; 321 case PS_META_S32: 322 fprintf(fd,format, metadataItem->data.S32); 323 break; 324 case PS_META_F32: 325 fprintf(fd, format, metadataItem->data.F32); 326 break; 327 case PS_META_F64: 328 fprintf(fd, format, metadataItem->data.F64); 338 329 break; 339 330 case PS_META_STR: … … 419 410 switch (keyType) { 420 411 case 'I': 421 success = psMetadataAdd(output, PS_LIST_TAIL, keyName, PS_ TYPE_S32, PS_META_PRIMITIVE,412 success = psMetadataAdd(output, PS_LIST_TAIL, keyName, PS_META_S32, 422 413 keyComment, atoi(keyValue)); 423 414 break; 424 415 case 'F': 425 success = psMetadataAdd(output, PS_LIST_TAIL, keyName, PS_ TYPE_F64, PS_META_PRIMITIVE,416 success = psMetadataAdd(output, PS_LIST_TAIL, keyName, PS_META_F64, 426 417 keyComment, atof(keyValue)); 427 418 break; 428 419 case 'C': 429 success = psMetadataAdd(output, PS_LIST_TAIL, keyName, PS_ TYPE_PTR, PS_META_STR, keyComment,430 key Value);420 success = psMetadataAdd(output, PS_LIST_TAIL, keyName, PS_META_STR, 421 keyComment, keyValue); 431 422 break; 432 423 case 'L': 433 424 tempBool = (keyValue[0] == 'T') ? 1 : 0; 434 success = psMetadataAdd(output, PS_LIST_TAIL, keyName, PS_ TYPE_BOOL, PS_META_PRIMITIVE, keyComment,435 tempBool);425 success = psMetadataAdd(output, PS_LIST_TAIL, keyName, PS_META_BOOL, 426 keyComment, tempBool); 436 427 break; 437 428 case 'U': … … 460 451 char *strComment = NULL; 461 452 char *linePtr = NULL; 453 psElemType vecType = PS_TYPE_PTR; 462 454 psS32 status = 0; 463 455 psU32 lineCount = 0; … … 467 459 psVector *tempVec = NULL; 468 460 FILE *fp = NULL; 469 psElemType pType;470 461 psMetadataType mdType; 471 462 … … 535 526 } else if(!strncmp(strType, "*", 1)) { 536 527 mdType = PS_META_LIST; 537 pType = PS_TYPE_PTR;538 528 } else if(!strncmp(strType, "STR", 3)) { 539 529 mdType = PS_META_STR; 540 pType = PS_TYPE_PTR; 541 } else if(!strncmp(strType, "BOOL", 3)) { 542 mdType = PS_META_PRIMITIVE; 543 pType = PS_TYPE_BOOL; 530 } else if(!strncmp(strType, "BOOL", 4)) { 531 mdType = PS_META_BOOL; 544 532 } else if(!strncmp(strType, "S32", 3)) { 545 mdType = PS_META_PRIMITIVE; 546 pType = PS_TYPE_S32; 533 mdType = PS_META_S32; 547 534 } else if(!strncmp(strType, "F32", 3)) { 548 mdType = PS_META_PRIMITIVE; 549 pType = PS_TYPE_F32; 535 mdType = PS_META_F32; 550 536 } else if(!strncmp(strType, "F64", 3)) { 551 mdType = PS_META_PRIMITIVE; 552 pType = PS_TYPE_F64; 537 mdType = PS_META_F64; 553 538 } else { 554 539 (*nFail)++; … … 559 544 560 545 if(*strName == '@') { 546 vecType = PS_META_PRIMITIVE_TYPE(mdType); 561 547 mdType = PS_META_VEC; 562 548 } … … 604 590 switch (mdType) { 605 591 case PS_META_LIST: 606 psMetadataAdd(md, PS_LIST_TAIL, strName, pType,mdType, NULL, NULL);592 psMetadataAdd(md, PS_LIST_TAIL, strName, mdType, NULL, NULL); 607 593 break; 608 594 case PS_META_STR: 609 psMetadataAdd(md, PS_LIST_TAIL, strName, pType,mdType, strComment, strValue);595 psMetadataAdd(md, PS_LIST_TAIL, strName, mdType, strComment, strValue); 610 596 break; 611 597 case PS_META_VEC: 612 tempVec = parseVector(strValue, pType, &status);598 tempVec = parseVector(strValue, vecType, &status); 613 599 if(!status) { 614 psMetadataAdd(md, PS_LIST_TAIL, strName+1, pType, mdType, strComment, tempVec); 600 psMetadataAdd(md, PS_LIST_TAIL, strName+1, mdType, strComment, tempVec); 601 } else { 602 status = 0; 603 (*nFail)++; 604 psError(PS_ERR_IO, true, PS_ERRORTEXT_psMetadataIO_PARSE_FAILED, strValue, strName, 605 strType, lineCount, fileName); 606 continue; 607 } 608 psFree(tempVec); 609 break; 610 case PS_META_BOOL: 611 tempBool = parseBool(strValue, &status); 612 if(!status) { 613 psMetadataAdd(md, PS_LIST_TAIL, strName, mdType, strComment, tempBool); 615 614 } else { 616 615 status = 0; … … 621 620 } 622 621 break; 623 case PS_META_PRIMITIVE: 624 switch (pType) { 625 case PS_TYPE_BOOL: 626 tempBool = parseBool(strValue, &status); 627 if(!status) { 628 psMetadataAdd(md, PS_LIST_TAIL, strName, pType, mdType, strComment, tempBool); 629 } else { 630 status = 0; 631 (*nFail)++; 632 psError(PS_ERR_IO, true, PS_ERRORTEXT_psMetadataIO_PARSE_FAILED, strValue, strName, 633 strType, lineCount, fileName); 634 continue; 635 } 636 break; 637 case PS_TYPE_S32: 638 tempInt = (psS32)parseValue(strValue, &status); 639 if(!status) { 640 psMetadataAdd(md, PS_LIST_TAIL, strName, pType, mdType, strComment, tempInt); 641 } else { 642 status = 0; 643 (*nFail)++; 644 psError(PS_ERR_IO, true, PS_ERRORTEXT_psMetadataIO_PARSE_FAILED, strValue, strName, 645 strType, lineCount, fileName); 646 continue; 647 } 648 break; 649 case PS_TYPE_F32: 650 case PS_TYPE_F64: 651 tempDbl = parseValue(strValue, &status); 652 if(!status) { 653 psMetadataAdd(md, PS_LIST_TAIL, strName, pType, mdType, strComment, tempDbl); 654 } else { 655 status = 0; 656 (*nFail)++; 657 psError(PS_ERR_IO, true, 658 PS_ERRORTEXT_psMetadataIO_PARSE_FAILED, strValue, strName, strType, lineCount, 659 fileName); 660 continue; 661 } 662 break; 663 default: 622 case PS_META_S32: 623 tempInt = (psS32)parseValue(strValue, &status); 624 if(!status) { 625 psMetadataAdd(md, PS_LIST_TAIL, strName, mdType, strComment, tempInt); 626 } else { 627 status = 0; 664 628 (*nFail)++; 665 psError(PS_ERR_IO, true, PS_ERRORTEXT_psMetadataIO_FILE_TYPE_INVALID, mdType, lineCount, 629 psError(PS_ERR_IO, true, PS_ERRORTEXT_psMetadataIO_PARSE_FAILED, strValue, strName, 630 strType, lineCount, fileName); 631 continue; 632 } 633 break; 634 case PS_META_F32: 635 case PS_META_F64: 636 tempDbl = parseValue(strValue, &status); 637 if(!status) { 638 psMetadataAdd(md, PS_LIST_TAIL, strName, mdType, strComment, tempDbl); 639 } else { 640 status = 0; 641 (*nFail)++; 642 psError(PS_ERR_IO, true, 643 PS_ERRORTEXT_psMetadataIO_PARSE_FAILED, strValue, strName, strType, lineCount, 666 644 fileName); 667 645 continue; 668 } // switch646 } 669 647 break; 670 648 default: … … 682 660 } 683 661 684 static void p_saxStartElement(void *ctx, const xmlChar *tagName, const xmlChar **atts)662 static void saxStartElement(void *ctx, const xmlChar *tagName, const xmlChar **atts) 685 663 { 686 664 psU64 i = 0; … … 709 687 // Metadata containter for housing element attributes used by other SAX events 710 688 htAtts = psHashAlloc(10); 689 711 690 712 691 // Get tag name … … 745 724 746 725 // Add attributes to metadata 747 psMetadataAdd(md, PS_LIST_TAIL, "htAtts", PS_TYPE_PTR, PS_META_HASH, NULL, htAtts); 726 727 psMetadataAdd(md, PS_LIST_TAIL, "htAtts", PS_META_HASH, NULL, htAtts); 748 728 749 729 psFree(psTagName); 730 psFree(htAtts); 750 731 751 732 return; 752 733 } 753 734 754 static void p_psInitMetadataItemXml(void *ctx, char *tagName)735 static void initMetadataItemXml(void *ctx, char *tagName) 755 736 { 756 737 psBool overwrite = false; … … 760 741 psF64 tempDbl = 0.0; 761 742 psS32 tempInt = 0.0; 762 psElemType pType = PS_TYPE_PTR; 763 psMetadataType mdType = PS_META_PRIMITIVE; 743 psMetadataType mdType = PS_META_UNKNOWN; 764 744 char *fileName = NULL; 765 745 char *strName = NULL; … … 802 782 if(xmlStrEqual(BAD_CAST strType, BAD_CAST "psString")) { 803 783 mdType = PS_META_STR; 804 pType = PS_TYPE_PTR;805 784 } else if(xmlStrEqual(BAD_CAST strType, BAD_CAST "psBool")) { 806 mdType = PS_META_PRIMITIVE; 807 pType = PS_TYPE_U8; 785 mdType = PS_META_BOOL; 808 786 } else if(xmlStrEqual(BAD_CAST strType, BAD_CAST "psS32")) { 809 mdType = PS_META_PRIMITIVE; 810 pType = PS_TYPE_S32; 787 mdType = PS_META_S32; 811 788 } else if(xmlStrEqual(BAD_CAST strType, BAD_CAST "psF32")) { 812 mdType = PS_META_PRIMITIVE; 813 pType = PS_TYPE_F32; 789 mdType = PS_META_F32; 814 790 } else if(xmlStrEqual(BAD_CAST strType, BAD_CAST "psF64")) { 815 mdType = PS_META_PRIMITIVE; 816 pType = PS_TYPE_F64; 791 mdType = PS_META_F64; 817 792 } else { 818 793 psError(PS_ERR_IO, true, PS_ERRORTEXT_psMetadataIO_TYPE_INVALID_LINE_FILE, strType, lineNumber, … … 853 828 switch(mdType) { 854 829 case PS_META_LIST: 855 psMetadataAdd(md, PS_LIST_TAIL, strName, pType,mdType, NULL, NULL);830 psMetadataAdd(md, PS_LIST_TAIL, strName, mdType, NULL, NULL); 856 831 break; 857 832 case PS_META_STR: 858 psMetadataAdd(md, PS_LIST_TAIL, strName, pType,mdType, NULL, strValue);833 psMetadataAdd(md, PS_LIST_TAIL, strName, mdType, NULL, strValue); 859 834 break; 860 case PS_META_PRIMITIVE: 861 switch(pType) { 862 case PS_TYPE_BOOL: 863 tempBool = parseBool((char*)strValue, &status); 864 if(!status) { 865 psMetadataAdd(md, PS_LIST_TAIL, strName, pType, mdType, NULL, tempBool); 866 } else { 867 status = 0; 868 psError(PS_ERR_IO, true, PS_ERRORTEXT_psMetadataIO_PARSE_FAILED, strValue, strName, strType, 869 lineNumber, fileName); 870 } 871 break; 872 case PS_TYPE_S32: 873 tempInt = (psS32)parseValue((char*)strValue, &status); 874 if(!status) { 875 psMetadataAdd(md, PS_LIST_TAIL, strName, pType, mdType, NULL, tempInt); 876 } else { 877 status = 0; 878 psError(PS_ERR_IO, true, PS_ERRORTEXT_psMetadataIO_PARSE_FAILED, strValue, strName, strType, 879 lineNumber, fileName); 880 } 881 break; 882 case PS_TYPE_F32: 883 case PS_TYPE_F64: 884 tempDbl = parseValue((char*)strValue, &status); 885 if(!status) { 886 psMetadataAdd(md, PS_LIST_TAIL, strName, pType, mdType, NULL, tempDbl); 887 } else { 888 status = 0; 889 psError(PS_ERR_IO, true, PS_ERRORTEXT_psMetadataIO_PARSE_FAILED, strValue, strName, strType, 890 lineNumber, fileName); 891 } 892 break; 893 default: 894 psError(PS_ERR_IO, true, PS_ERRORTEXT_psMetadataIO_FILE_TYPE_INVALID, strType, lineNumber, fileName); 895 } // End switch 835 case PS_META_BOOL: 836 tempBool = parseBool((char*)strValue, &status); 837 if(!status) { 838 psMetadataAdd(md, PS_LIST_TAIL, strName, mdType, NULL, tempBool); 839 } else { 840 status = 0; 841 psError(PS_ERR_IO, true, PS_ERRORTEXT_psMetadataIO_PARSE_FAILED, strValue, strName, strType, 842 lineNumber, fileName); 843 } 844 break; 845 case PS_META_S32: 846 tempInt = (psS32)parseValue((char*)strValue, &status); 847 if(!status) { 848 psMetadataAdd(md, PS_LIST_TAIL, strName, mdType, NULL, tempInt); 849 } else { 850 status = 0; 851 psError(PS_ERR_IO, true, PS_ERRORTEXT_psMetadataIO_PARSE_FAILED, strValue, strName, strType, 852 lineNumber, fileName); 853 } 854 break; 855 case PS_META_F32: 856 case PS_META_F64: 857 tempDbl = parseValue((char*)strValue, &status); 858 if(!status) { 859 psMetadataAdd(md, PS_LIST_TAIL, strName, mdType, NULL, tempDbl); 860 } else { 861 status = 0; 862 psError(PS_ERR_IO, true, PS_ERRORTEXT_psMetadataIO_PARSE_FAILED, strValue, strName, strType, 863 lineNumber, fileName); 864 } 896 865 break; 897 866 default: … … 899 868 } // End switch 900 869 901 902 870 return; 903 871 } 904 872 905 873 906 static void p_psInitVectorXml(void *ctx, char *tagName)874 static void initVectorXml(void *ctx, char *tagName) 907 875 { 908 876 bool overwrite = false; … … 910 878 psU32 lineNumber = 0; 911 879 psElemType pType = PS_TYPE_PTR; 912 psMetadataType mdType = PS_META_PRIMITIVE;913 880 char *strName = NULL; 914 881 char *strType = NULL; … … 952 919 strType = psHashLookup(htAtts, "psType"); 953 920 if(strType!= NULL) { 954 if(xmlStrEqual(BAD_CAST strType, BAD_CAST "psString")) { 955 mdType = PS_META_STR; 956 pType = PS_TYPE_PTR; 957 } else if(xmlStrEqual(BAD_CAST strType, BAD_CAST "psBool")) { 958 mdType = PS_META_PRIMITIVE; 921 if(xmlStrEqual(BAD_CAST strType, BAD_CAST "psBool")) { 959 922 pType = PS_TYPE_U8; 960 923 } else if(xmlStrEqual(BAD_CAST strType, BAD_CAST "psS32")) { 961 mdType = PS_META_PRIMITIVE;962 924 pType = PS_TYPE_S32; 963 925 } else if(xmlStrEqual(BAD_CAST strType, BAD_CAST "psF32")) { 964 mdType = PS_META_PRIMITIVE;965 926 pType = PS_TYPE_F32; 966 927 } else if(xmlStrEqual(BAD_CAST strType, BAD_CAST "psF64")) { 967 mdType = PS_META_PRIMITIVE;968 928 pType = PS_TYPE_F64; 969 929 } else { … … 1006 966 vec = parseVector((char*)strValue, pType, &status); 1007 967 if(!status) { 1008 psMetadataAdd(md, PS_LIST_TAIL, strName+1, pType, mdType, NULL, vec);968 psMetadataAdd(md, PS_LIST_TAIL, strName+1, PS_META_VEC, NULL, vec); 1009 969 } else { 1010 970 psError(PS_ERR_IO, true, PS_ERRORTEXT_psMetadataIO_PARSE_FAILED, strValue, strName, strType, … … 1014 974 } 1015 975 1016 static void p_saxEndElement(void *ctx, const xmlChar *tagName)976 static void saxEndElement(void *ctx, const xmlChar *tagName) 1017 977 { 1018 978 char *psStartTagName = NULL; … … 1052 1012 // Initialize psLib structs 1053 1013 if(!strcmp(psEndTagName, "psMetadataItem")) { 1054 p_psInitMetadataItemXml(ctx, psEndTagName);1014 initMetadataItemXml(ctx, psEndTagName); 1055 1015 } else if(!strcmp(psEndTagName, "psVector")) { 1056 p_psInitVectorXml(ctx, psEndTagName);1016 initVectorXml(ctx, psEndTagName); 1057 1017 } else if(strcmp(psEndTagName, "psRoot")) { 1058 1018 psError(PS_ERR_IO, true, PS_ERRORTEXT_psMetadataIO_TAG_UNKNOWN, psEndTagName); … … 1095 1055 saxHandler.startDocument = NULL; 1096 1056 saxHandler.endDocument = NULL; 1097 saxHandler.startElement = p_saxStartElement;1098 saxHandler.endElement = p_saxEndElement;1057 saxHandler.startElement = saxStartElement; 1058 saxHandler.endElement = saxEndElement; 1099 1059 saxHandler.reference = NULL; 1100 1060 saxHandler.characters = NULL; -
trunk/psLib/test/astronomy/tst_psAstrometry.c
r3264 r3341 5 5 * @author Robert DeSonia, MHPCC 6 6 * 7 * @version $Revision: 1.1 5$ $Name: not supported by cvs2svn $8 * @date $Date: 2005-02- 17 19:26:24$7 * @version $Revision: 1.16 $ $Name: not supported by cvs2svn $ 8 * @date $Date: 2005-02-28 23:34:10 $ 9 9 * 10 10 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 53 53 psExposure* exp = psExposureAlloc(1.0, 2.0, 3.0, 4.0, 5.0, 54 54 now, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, obs); 55 56 55 57 56 if (fabs(exp->ra - 1.0) > DBL_EPSILON) { -
trunk/psLib/test/astronomy/tst_psMetadataIO.c
r3264 r3341 13 13 * @author Ross Harman, MHPCC 14 14 * 15 * @version $Revision: 1. 9$ $Name: not supported by cvs2svn $16 * @date $Date: 2005-02- 17 19:26:24$15 * @version $Revision: 1.10 $ $Name: not supported by cvs2svn $ 16 * @date $Date: 2005-02-28 23:34:10 $ 17 17 * 18 18 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 66 66 { 67 67 printf("%sKey Name: %8s ", spaces, metadataItem->name); 68 printf("Key pType: %d ", metadataItem->pType);69 68 printf("Key mdType: %d ", metadataItem->type); 70 69 … … 73 72 printf("Key Value: %17c", ' '); 74 73 break; 75 case PS_META_PRIMITIVE: 76 switch(metadataItem->pType) { 77 case PS_TYPE_BOOL: 78 printf("Key Value: %15d ", metadataItem->data.B); 79 break; 80 case PS_TYPE_S32: 81 printf("Key Value: %15d ", metadataItem->data.S32); 82 break; 83 case PS_TYPE_F32: 84 printf("Key Value: %15.3f ", metadataItem->data.F32); 85 break; 86 case PS_TYPE_F64: 87 printf("Key Value: %15.3f ", metadataItem->data.F64); 88 break; 89 default: 90 printf("Bad type: %d ", metadataItem->pType); 91 } 74 case PS_META_BOOL: 75 printf("Key Value: %15d ", metadataItem->data.B); 76 break; 77 case PS_META_S32: 78 printf("Key Value: %15d ", metadataItem->data.S32); 79 break; 80 case PS_META_F32: 81 printf("Key Value: %15.3f ", metadataItem->data.F32); 82 break; 83 case PS_META_F64: 84 printf("Key Value: %15.3f ", metadataItem->data.F64); 92 85 break; 93 86 case PS_META_STR: -
trunk/psLib/test/astronomy/tst_psMetadata_01.c
r3264 r3341 18 18 * @author Ross Harman, MHPCC 19 19 * 20 * @version $Revision: 1.2 0$ $Name: not supported by cvs2svn $21 * @date $Date: 2005-02- 17 19:26:24$20 * @version $Revision: 1.21 $ $Name: not supported by cvs2svn $ 21 * @date $Date: 2005-02-28 23:34:10 $ 22 22 * 23 23 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 72 72 { 73 73 printf("%sKey Name: %8s ", spaces, metadataItem->name); 74 printf("Key pType: %d ", metadataItem->pType);75 74 printf("Key mdType: %d ", metadataItem->type); 76 75 … … 79 78 printf("Key Value: %17c", ' '); 80 79 break; 81 case PS_META_PRIMITIVE: 82 switch(metadataItem->pType) { 83 case PS_TYPE_BOOL: 84 printf("Key Value: %15d ", metadataItem->data.B); 85 break; 86 case PS_TYPE_S32: 87 printf("Key Value: %15d ", metadataItem->data.S32); 88 break; 89 case PS_TYPE_F32: 90 printf("Key Value: %15.3f ", metadataItem->data.F32); 91 break; 92 case PS_TYPE_F64: 93 printf("Key Value: %15.3f ", metadataItem->data.F64); 94 break; 95 default: 96 printf("Bad type: %d ", metadataItem->pType); 97 } 80 case PS_META_BOOL: 81 printf("Key Value: %15d ", metadataItem->data.B); 82 break; 83 case PS_META_S32: 84 printf("Key Value: %15d ", metadataItem->data.S32); 85 break; 86 case PS_META_F32: 87 printf("Key Value: %15.3f ", metadataItem->data.F32); 88 break; 89 case PS_META_F64: 90 printf("Key Value: %15.3f ", metadataItem->data.F64); 98 91 break; 99 92 case PS_META_STR: -
trunk/psLib/test/astronomy/tst_psMetadata_02.c
r3264 r3341 14 14 * @author Ross Harman, MHPCC 15 15 * 16 * @version $Revision: 1.1 1$ $Name: not supported by cvs2svn $17 * @date $Date: 2005-02- 17 19:26:24$16 * @version $Revision: 1.12 $ $Name: not supported by cvs2svn $ 17 * @date $Date: 2005-02-28 23:34:10 $ 18 18 * 19 19 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 28 28 { 29 29 printf("Key Name: %8s ", metadataItem->name); 30 printf("Key pType: %2d ", metadataItem->pType);31 30 printf("Key mdType: %2d ", metadataItem->type); 32 31 … … 35 34 printf("Key Value: %17c", ' '); 36 35 break; 37 case PS_META_PRIMITIVE: 38 switch(metadataItem->pType) { 39 case PS_TYPE_BOOL: 40 printf("Key Value: %15d ", metadataItem->data.B); 41 break; 42 case PS_TYPE_S32: 43 printf("Key Value: %15d ", metadataItem->data.S32); 44 break; 45 case PS_TYPE_F32: 46 printf("Key Value: %15.3f ", metadataItem->data.F32); 47 break; 48 case PS_TYPE_F64: 49 printf("Key Value: %15.3f ", metadataItem->data.F64); 50 break; 51 default: 52 printf("Bad type: %d ", metadataItem->pType); 53 } 36 case PS_META_BOOL: 37 printf("Key Value: %15d ", metadataItem->data.B); 38 break; 39 case PS_META_S32: 40 printf("Key Value: %15d ", metadataItem->data.S32); 41 break; 42 case PS_META_F32: 43 printf("Key Value: %15.3f ", metadataItem->data.F32); 44 break; 45 case PS_META_F64: 46 printf("Key Value: %15.3f ", metadataItem->data.F64); 54 47 break; 55 48 case PS_META_STR: … … 76 69 // Test A - Allocate metadata items 77 70 printPositiveTestHeader(stdout, "psMetadata", "Test A - Allocate metadata items"); 78 item1 = psMetadataItemAlloc("myItem1", PS_ TYPE_BOOL, PS_META_PRIMITIVE, "I am a boolean", true);79 item2 = psMetadataItemAlloc("myItem2", PS_ TYPE_S32, PS_META_PRIMITIVE, "I am a signed integer", 111);80 item3 = psMetadataItemAlloc("myItem3", PS_ TYPE_F32, PS_META_PRIMITIVE, "I am a single precision floating point", 222.222);81 item4 = psMetadataItemAlloc("myItem4", PS_ TYPE_F64, PS_META_PRIMITIVE, "I am a double precision floating point", 333.333);82 item5 = psMetadataItemAlloc("myItem5", PS_ TYPE_PTR, PS_META_STR, "I am a string", "HELLO WORLD");71 item1 = psMetadataItemAlloc("myItem1", PS_META_BOOL, "I am a boolean", true); 72 item2 = psMetadataItemAlloc("myItem2", PS_META_S32, "I am a signed integer", 111); 73 item3 = psMetadataItemAlloc("myItem3", PS_META_F32, "I am a single precision floating point", 222.222); 74 item4 = psMetadataItemAlloc("myItem4", PS_META_F64, "I am a double precision floating point", 333.333); 75 item5 = psMetadataItemAlloc("myItem5", PS_META_STR, "I am a string", "HELLO WORLD"); 83 76 printMetadataItem(item1); 84 77 printMetadataItem(item2); … … 93 86 "Null value for name not allowed", 0); 94 87 psLogMsg(__func__,PS_LOG_INFO,"Following should produce error for null name."); 95 badItem = psMetadataItemAlloc(NULL, PS_ TYPE_PTR, PS_META_STR, "I am a string", "HELLO WORLD");88 badItem = psMetadataItemAlloc(NULL, PS_META_STR, "I am a string", "HELLO WORLD"); 96 89 if (badItem != NULL) { 97 90 psError(PS_ERR_UNKNOWN, true,"psMetadataItemAlloc did not return null with null name item."); … … 104 97 printNegativeTestHeader(stdout,"psMetadata", "Test C - Attempt to create metadata item with invalid type", 105 98 "Invalid psMetadataType: 6", 0); 106 badItem = psMetadataItemAlloc("badItem", PS_ TYPE_PTR, PS_META_NTYPE, "I am bad", "Bad comment");99 badItem = psMetadataItemAlloc("badItem", PS_META_NTYPE, "I am bad", "Bad comment"); 107 100 printFooter(stdout, "psMetadata", "Test C - Attempt to create metadata item with invalid type", true); 108 101 -
trunk/psLib/test/astronomy/tst_psMetadata_03.c
r3264 r3341 18 18 * @author Ross Harman, MHPCC 19 19 * 20 * @version $Revision: 1.1 3$ $Name: not supported by cvs2svn $21 * @date $Date: 2005-02- 17 19:26:24$20 * @version $Revision: 1.14 $ $Name: not supported by cvs2svn $ 21 * @date $Date: 2005-02-28 23:34:10 $ 22 22 * 23 23 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 32 32 { 33 33 printf("Key Name: %8s ", metadataItem->name); 34 printf("Key pType: %2d ", metadataItem->pType);35 34 printf("Key mdType: %2d ", metadataItem->type); 36 35 … … 39 38 printf("Key Value: %17c", ' '); 40 39 break; 41 case PS_META_PRIMITIVE: 42 switch(metadataItem->pType) { 43 case PS_TYPE_BOOL: 44 printf("Key Value: %15d ", metadataItem->data.B); 45 break; 46 case PS_TYPE_S32: 47 printf("Key Value: %15d ", metadataItem->data.S32); 48 break; 49 case PS_TYPE_F32: 50 printf("Key Value: %15.3f ", metadataItem->data.F32); 51 break; 52 case PS_TYPE_F64: 53 printf("Key Value: %15.3f ", metadataItem->data.F64); 54 break; 55 default: 56 printf("Bad type: %d ", metadataItem->pType); 57 } 40 case PS_META_BOOL: 41 printf("Key Value: %15d ", metadataItem->data.B); 42 break; 43 case PS_META_S32: 44 printf("Key Value: %15d ", metadataItem->data.S32); 45 break; 46 case PS_META_F32: 47 printf("Key Value: %15.3f ", metadataItem->data.F32); 48 break; 49 case PS_META_F64: 50 printf("Key Value: %15.3f ", metadataItem->data.F64); 58 51 break; 59 52 case PS_META_STR: … … 83 76 printPositiveTestHeader(stdout, "psMetadata", "Test A - Allocate metadata items"); 84 77 metadata = psMetadataAlloc(); 85 item1 = psMetadataItemAlloc("myItem1", PS_ TYPE_BOOL, PS_META_PRIMITIVE, "I am a boolean", true);86 item2 = psMetadataItemAlloc("myItem2", PS_ TYPE_S32, PS_META_PRIMITIVE, "I am a integer", 55);87 item3 = psMetadataItemAlloc("myItem3", PS_ TYPE_BOOL, PS_META_PRIMITIVE, "I am a boolean", false);88 item4 = psMetadataItemAlloc("myItem4", PS_ TYPE_S32, PS_META_PRIMITIVE, "I am a integer", 66);89 errItem = psMetadataItemAlloc("errItem", PS_ TYPE_S32, PS_META_PRIMITIVE, "I am a integer", 99);78 item1 = psMetadataItemAlloc("myItem1", PS_META_BOOL, "I am a boolean", true); 79 item2 = psMetadataItemAlloc("myItem2", PS_META_S32, "I am a integer", 55); 80 item3 = psMetadataItemAlloc("myItem3", PS_META_BOOL, "I am a boolean", false); 81 item4 = psMetadataItemAlloc("myItem4", PS_META_S32, "I am a integer", 66); 82 errItem = psMetadataItemAlloc("errItem", PS_META_S32, "I am a integer", 99); 90 83 printMetadataItem(item1); 91 84 printMetadataItem(item2); … … 101 94 return 10; 102 95 } 103 if(!psMetadataAdd(metadata,PS_LIST_HEAD,"myItem2", PS_ TYPE_S32, PS_META_PRIMITIVE, "I am S32 integer",77)) {96 if(!psMetadataAdd(metadata,PS_LIST_HEAD,"myItem2", PS_META_S32, "I am S32 integer",77)) { 104 97 psError(PS_ERR_UNKNOWN, true,"psMetadataAddItem did not return true when adding by name."); 105 98 return 11; … … 122 115 return 14; 123 116 } 124 if ( ! psMetadataAdd(metadata,PS_LIST_HEAD,"myItem4", PS_ TYPE_S32, PS_META_PRIMITIVE, "I am S32 integer",88) ) {117 if ( ! psMetadataAdd(metadata,PS_LIST_HEAD,"myItem4", PS_META_S32, "I am S32 integer",88) ) { 125 118 psError(PS_ERR_UNKNOWN, true,"psMetadataAddItem did not return true when adding by index."); 126 119 return 15; … … 217 210 mdTable = errMetadata->table; 218 211 errMetadata->table = NULL; 219 if (psMetadataAdd(errMetadata, PS_LIST_HEAD, "errItem", PS_ TYPE_S32, PS_META_PRIMITIVE, "Integer",22) ) {212 if (psMetadataAdd(errMetadata, PS_LIST_HEAD, "errItem", PS_META_S32, "Integer",22) ) { 220 213 psError(PS_ERR_UNKNOWN, true,"psMetadataAddItem did not return false w/ invalid metadata struct w/o hash table."); 221 214 return 24; -
trunk/psLib/test/astronomy/tst_psMetadata_04.c
r3264 r3341 23 23 * @author Ross Harman, MHPCC 24 24 * 25 * @version $Revision: 1.1 4$ $Name: not supported by cvs2svn $26 * @date $Date: 2005-02- 17 19:26:24$25 * @version $Revision: 1.15 $ $Name: not supported by cvs2svn $ 26 * @date $Date: 2005-02-28 23:34:10 $ 27 27 * 28 28 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 37 37 { 38 38 printf("Key Name: %8s ", metadataItem->name); 39 printf("Key pType: %2d ", metadataItem->pType);40 39 printf("Key mdType: %2d ", metadataItem->type); 41 40 … … 44 43 printf("Key Value: %17c", ' '); 45 44 break; 46 case PS_META_PRIMITIVE: 47 switch(metadataItem->pType) { 48 case PS_TYPE_BOOL: 49 printf("Key Value: %15d ", metadataItem->data.B); 50 break; 51 case PS_TYPE_S32: 52 printf("Key Value: %15d ", metadataItem->data.S32); 53 break; 54 case PS_TYPE_F32: 55 printf("Key Value: %15.3f ", metadataItem->data.F32); 56 break; 57 case PS_TYPE_F64: 58 printf("Key Value: %15.3f ", metadataItem->data.F64); 59 break; 60 default: 61 printf("Bad type: %d ", metadataItem->pType); 62 } 45 case PS_META_BOOL: 46 printf("Key Value: %15d ", metadataItem->data.B); 47 break; 48 case PS_META_S32: 49 printf("Key Value: %15d ", metadataItem->data.S32); 50 break; 51 case PS_META_F32: 52 printf("Key Value: %15.3f ", metadataItem->data.F32); 53 break; 54 case PS_META_F64: 55 printf("Key Value: %15.3f ", metadataItem->data.F64); 63 56 break; 64 57 case PS_META_STR: … … 91 84 psVector *vec = psVectorAlloc(5, PS_TYPE_S32); 92 85 metadata = psMetadataAlloc(); 93 item1 = psMetadataItemAlloc("myItem1", PS_ TYPE_BOOL, PS_META_PRIMITIVE, "I am a boolean", true);94 item2 = psMetadataItemAlloc("myItem2", PS_ TYPE_S32, PS_META_PRIMITIVE, "I am a integer", 55);95 item3 = psMetadataItemAlloc("myItem3", PS_ TYPE_BOOL, PS_META_PRIMITIVE, "I am a boolean", false);96 item4 = psMetadataItemAlloc("myItem4", PS_ TYPE_S32, PS_META_PRIMITIVE, "I am a integer", 66);97 item5 = psMetadataItemAlloc("myItem5", PS_ TYPE_F64, PS_META_PRIMITIVE, "I am a double", 3.14);98 item6 = psMetadataItemAlloc("myItem6", PS_ TYPE_PTR, PS_META_VEC, "I am a vector", vec);86 item1 = psMetadataItemAlloc("myItem1", PS_META_BOOL, "I am a boolean", true); 87 item2 = psMetadataItemAlloc("myItem2", PS_META_S32, "I am a integer", 55); 88 item3 = psMetadataItemAlloc("myItem3", PS_META_BOOL, "I am a boolean", false); 89 item4 = psMetadataItemAlloc("myItem4", PS_META_S32, "I am a integer", 66); 90 item5 = psMetadataItemAlloc("myItem5", PS_META_F64, "I am a double", 3.14); 91 item6 = psMetadataItemAlloc("myItem6", PS_META_VEC, "I am a vector", vec); 99 92 printMetadataItem(item1); 100 93 printMetadataItem(item2); … … 108 101 psMetadataAddItem(metadata, item5, PS_LIST_HEAD); 109 102 psMetadataAddItem(metadata, item6, PS_LIST_HEAD); 103 psFree(vec); 110 104 printFooter(stdout, "psMetadata", "Test A - Allocate metadata items", true); 111 105 -
trunk/psLib/test/astronomy/tst_psMetadata_05.c
r3264 r3341 22 22 * @author Ross Harman, MHPCC 23 23 * 24 * @version $Revision: 1. 19$ $Name: not supported by cvs2svn $25 * @date $Date: 2005-02- 17 19:26:24$24 * @version $Revision: 1.20 $ $Name: not supported by cvs2svn $ 25 * @date $Date: 2005-02-28 23:34:10 $ 26 26 * 27 27 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 36 36 { 37 37 printf("Key Name: %8s ", metadataItem->name); 38 printf("Key pType: %2d ", metadataItem->pType);39 38 printf("Key mdType: %2d ", metadataItem->type); 40 39 … … 43 42 printf("Key Value: %17c", ' '); 44 43 break; 45 case PS_META_PRIMITIVE: 46 switch(metadataItem->pType) { 47 case PS_TYPE_BOOL: 48 printf("Key Value: %15d ", metadataItem->data.B); 49 break; 50 case PS_TYPE_S32: 51 printf("Key Value: %15d ", metadataItem->data.S32); 52 break; 53 case PS_TYPE_F32: 54 printf("Key Value: %15.3f ", metadataItem->data.F32); 55 break; 56 case PS_TYPE_F64: 57 printf("Key Value: %15.3f ", metadataItem->data.F64); 58 break; 59 default: 60 printf("Bad type: %d ", metadataItem->pType); 61 } 44 case PS_META_BOOL: 45 printf("Key Value: %15d ", metadataItem->data.B); 46 break; 47 case PS_META_S32: 48 printf("Key Value: %15d ", metadataItem->data.S32); 49 break; 50 case PS_META_F32: 51 printf("Key Value: %15.3f ", metadataItem->data.F32); 52 break; 53 case PS_META_F64: 54 printf("Key Value: %15.3f ", metadataItem->data.F64); 62 55 break; 63 56 case PS_META_STR: … … 87 80 printPositiveTestHeader(stdout, "psMetadata", "Test A - Allocate metadata items"); 88 81 metadata = psMetadataAlloc(); 89 item1 = psMetadataItemAlloc("myItem1", PS_ TYPE_BOOL, PS_META_PRIMITIVE, "I am a boolean", true);90 item2 = psMetadataItemAlloc("myItem2", PS_ TYPE_S32, PS_META_PRIMITIVE, "I am a integer", 55);91 item3 = psMetadataItemAlloc("myItem3", PS_ TYPE_BOOL, PS_META_PRIMITIVE, "I am a boolean", false);92 item4 = psMetadataItemAlloc("myItem4", PS_ TYPE_S32, PS_META_PRIMITIVE, "I am a integer", 66);93 item5 = psMetadataItemAlloc("myItem5", PS_ TYPE_F32, PS_META_PRIMITIVE, "I am a float", 3.14);94 item6 = psMetadataItemAlloc("myItem6", PS_ TYPE_F64, PS_META_PRIMITIVE,"I am a double", 6.28);95 item7 = psMetadataItemAlloc("myItem7", PS_ TYPE_PTR, PS_META_STR, "I am a string", "GNIRTS");82 item1 = psMetadataItemAlloc("myItem1", PS_META_BOOL, "I am a boolean", true); 83 item2 = psMetadataItemAlloc("myItem2", PS_META_S32, "I am a integer", 55); 84 item3 = psMetadataItemAlloc("myItem3", PS_META_BOOL, "I am a boolean", false); 85 item4 = psMetadataItemAlloc("myItem4", PS_META_S32, "I am a integer", 66); 86 item5 = psMetadataItemAlloc("myItem5", PS_META_F32, "I am a float", 3.14); 87 item6 = psMetadataItemAlloc("myItem6", PS_META_F64,"I am a double", 6.28); 88 item7 = psMetadataItemAlloc("myItem7", PS_META_STR, "I am a string", "GNIRTS"); 96 89 // item8 = psMetadataItemAlloc("myItem8", PS_TYPE_PTR, PS_META_UNKNOWN, "I am unknown"); 97 90 printMetadataItem(item1); -
trunk/psLib/test/astronomy/tst_psMetadata_06.c
r3264 r3341 13 13 * @author Ross Harman, MHPCC 14 14 * 15 * @version $Revision: 1. 9$ $Name: not supported by cvs2svn $16 * @date $Date: 2005-02- 17 19:26:24$15 * @version $Revision: 1.10 $ $Name: not supported by cvs2svn $ 16 * @date $Date: 2005-02-28 23:34:10 $ 17 17 * 18 18 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 27 27 { 28 28 printf("Key Name: %8s ", metadataItem->name); 29 printf("Key pType: %2d ", metadataItem->pType);30 29 printf("Key mdType: %2d ", metadataItem->type); 31 30 … … 34 33 printf("Key Value: %17c", ' '); 35 34 break; 36 case PS_META_PRIMITIVE: 37 switch(metadataItem->pType) { 38 case PS_TYPE_BOOL: 39 printf("Key Value: %15d ", metadataItem->data.B); 40 break; 41 case PS_TYPE_S32: 42 printf("Key Value: %15d ", metadataItem->data.S32); 43 break; 44 case PS_TYPE_F32: 45 printf("Key Value: %15.3f ", metadataItem->data.F32); 46 break; 47 case PS_TYPE_F64: 48 printf("Key Value: %15.3f ", metadataItem->data.F64); 49 break; 50 default: 51 printf("Bad type: %d ", metadataItem->pType); 52 } 35 case PS_META_BOOL: 36 printf("Key Value: %15d ", metadataItem->data.B); 37 break; 38 case PS_META_S32: 39 printf("Key Value: %15d ", metadataItem->data.S32); 40 break; 41 case PS_META_F32: 42 printf("Key Value: %15.3f ", metadataItem->data.F32); 43 break; 44 case PS_META_F64: 45 printf("Key Value: %15.3f ", metadataItem->data.F64); 53 46 break; 54 47 case PS_META_STR: … … 74 67 // Test A - Allocate metadata and items 75 68 printPositiveTestHeader(stdout, "psMetadata", "Test A - Allocate metadata and items"); 76 item1a = psMetadataItemAlloc("myItem1", PS_ TYPE_BOOL, PS_META_PRIMITIVE, "I am a boolean", true);77 item1b = psMetadataItemAlloc("myItem1", PS_ TYPE_S32, PS_META_PRIMITIVE, "I am a signed integer", 111);78 item1c = psMetadataItemAlloc("myItem1", PS_ TYPE_S32, PS_META_PRIMITIVE, "I am a signed integer", 222);79 item2a = psMetadataItemAlloc("myItem2", PS_ TYPE_S32, PS_META_PRIMITIVE, "I am a signed integer", 333);80 item2b = psMetadataItemAlloc("myItem2", PS_ TYPE_PTR, PS_META_LIST, "I am a folder node", NULL);69 item1a = psMetadataItemAlloc("myItem1", PS_META_BOOL, "I am a boolean", true); 70 item1b = psMetadataItemAlloc("myItem1", PS_META_S32, "I am a signed integer", 111); 71 item1c = psMetadataItemAlloc("myItem1", PS_META_S32, "I am a signed integer", 222); 72 item2a = psMetadataItemAlloc("myItem2", PS_META_S32, "I am a signed integer", 333); 73 item2b = psMetadataItemAlloc("myItem2", PS_META_LIST, "I am a folder node", NULL); 81 74 metadata = psMetadataAlloc(); 82 75 printMetadataItem(item1a); -
trunk/psLib/test/astronomy/tst_psMetadata_07.c
r3264 r3341 9 9 * @author Ross Harman, MHPCC 10 10 * 11 * @version $Revision: 1. 8$ $Name: not supported by cvs2svn $12 * @date $Date: 2005-02- 17 19:26:24$11 * @version $Revision: 1.9 $ $Name: not supported by cvs2svn $ 12 * @date $Date: 2005-02-28 23:34:10 $ 13 13 * 14 14 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 30 30 printf("psMetadataParseConfigXml returned error %d\n", res); 31 31 } 32 32 33 psFree(md); 33 34 printFooter(stdout, "psMetadata", "Test A - Read an XML config file", true); 34 35 35 36 36 // Test B - Free data -
trunk/psLib/test/astronomy/verified/tst_psMetadataIO.stdout
r2643 r3341 7 7 Failed lines: 6 Expected: 6 8 8 Contents of metadata list: 9 Key Name: pi Key pType: 1032 Key mdType: 0Key Value: 3.142 Key Comment: Definition of pi10 Key Name: altitude Key pType: 260 KeymdType: 0 Key Value: 10000 Key Comment:11 Key Name: time Key pType: 1028 Key mdType: 0Key Value: 1234.568 Key Comment:12 Key Name: myBool Key pType: 4865 Key mdType: 0Key Value: 0 Key Comment: F, f, 0, T, t, 1 are also acceptable13 Key Name: title1 Key pType: 0 Key mdType: 2Key Value: Hello world Key Comment: This is a comment for the string value14 Key Name: title2 Key pType: 0 Key mdType: 2Key Value: Good bye world Key Comment: STRING or STR may be used as the string type15 Key Name: primes Key pType: 260 Key mdType: 3 Bad type: 3Key Comment: These are prime numbers16 Key Name: negatives Key pType: 260 Key mdType: 3 Bad type: 3Key Comment:17 Key Name: comment Key pType: 0 Key mdType: 2Key Value: This Key Comment:18 Key Name: comment Key pType: 0 Key mdType: 2Key Value: is Key Comment:19 Key Name: comment Key pType: 0 Key mdType: 2Key Value: an Key Comment:20 Key Name: comment Key pType: 0 Key mdType: 2Key Value: ugly Key Comment:21 Key Name: comment Key pType: 0 Key mdType: 2Key Value: comment Key Comment:22 Key Name: comment Key pType: 0 Key mdType: 2Key Value: but Key Comment:23 Key Name: comment Key pType: 0 Key mdType: 2Key Value: still Key Comment:24 Key Name: comment Key pType: 0 Key mdType: 2Key Value: valid Key Comment:25 Key Name: speed Key pType: 1028 Key mdType: 0Key Value: 66.660 Key Comment:9 Key Name: pi Key mdType: 2 Key Value: 3.142 Key Comment: Definition of pi 10 Key Name: altitude Key mdType: 0 Key Value: 10000 Key Comment: 11 Key Name: time Key mdType: 1 Key Value: 1234.568 Key Comment: 12 Key Name: myBool Key mdType: 3 Key Value: 0 Key Comment: F, f, 0, T, t, 1 are also acceptable 13 Key Name: title1 Key mdType: 5 Key Value: Hello world Key Comment: This is a comment for the string value 14 Key Name: title2 Key mdType: 5 Key Value: Good bye world Key Comment: STRING or STR may be used as the string type 15 Key Name: primes Key mdType: 6 Bad type: 6 Key Comment: These are prime numbers 16 Key Name: negatives Key mdType: 6 Bad type: 6 Key Comment: 17 Key Name: comment Key mdType: 5 Key Value: This Key Comment: 18 Key Name: comment Key mdType: 5 Key Value: is Key Comment: 19 Key Name: comment Key mdType: 5 Key Value: an Key Comment: 20 Key Name: comment Key mdType: 5 Key Value: ugly Key Comment: 21 Key Name: comment Key mdType: 5 Key Value: comment Key Comment: 22 Key Name: comment Key mdType: 5 Key Value: but Key Comment: 23 Key Name: comment Key mdType: 5 Key Value: still Key Comment: 24 Key Name: comment Key mdType: 5 Key Value: valid Key Comment: 25 Key Name: speed Key mdType: 1 Key Value: 66.660 Key Comment: 26 26 27 27 Contents of metadata table: 28 Key Name: comment Key pType: 0 Key mdType: 1Key Value: Key Comment:29 Key Name: comment Key pType: 0 Key mdType: 2Key Value: This Key Comment:30 Key Name: comment Key pType: 0 Key mdType: 2Key Value: is Key Comment:31 Key Name: comment Key pType: 0 Key mdType: 2Key Value: an Key Comment:32 Key Name: comment Key pType: 0 Key mdType: 2Key Value: ugly Key Comment:33 Key Name: comment Key pType: 0 Key mdType: 2Key Value: comment Key Comment:34 Key Name: comment Key pType: 0 Key mdType: 2Key Value: but Key Comment:35 Key Name: comment Key pType: 0 Key mdType: 2Key Value: still Key Comment:36 Key Name: comment Key pType: 0 Key mdType: 2Key Value: valid Key Comment:37 Key Name: title2 Key pType: 0 Key mdType: 2Key Value: Good bye world Key Comment: STRING or STR may be used as the string type38 Key Name: time Key pType: 1028 Key mdType: 0Key Value: 1234.568 Key Comment:39 Key Name: negatives Key pType: 260 Key mdType: 3 Bad type: 3Key Comment:40 Key Name: pi Key pType: 1032 Key mdType: 0Key Value: 3.142 Key Comment: Definition of pi41 Key Name: myBool Key pType: 4865 Key mdType: 0Key Value: 0 Key Comment: F, f, 0, T, t, 1 are also acceptable42 Key Name: primes Key pType: 260 Key mdType: 3 Bad type: 3Key Comment: These are prime numbers43 Key Name: altitude Key pType: 260 KeymdType: 0 Key Value: 10000 Key Comment:44 Key Name: speed Key pType: 1028 Key mdType: 0Key Value: 66.660 Key Comment:45 Key Name: title1 Key pType: 0 Key mdType: 2Key Value: Hello world Key Comment: This is a comment for the string value28 Key Name: comment Key mdType: 4 Key Value: Key Comment: 29 Key Name: comment Key mdType: 5 Key Value: This Key Comment: 30 Key Name: comment Key mdType: 5 Key Value: is Key Comment: 31 Key Name: comment Key mdType: 5 Key Value: an Key Comment: 32 Key Name: comment Key mdType: 5 Key Value: ugly Key Comment: 33 Key Name: comment Key mdType: 5 Key Value: comment Key Comment: 34 Key Name: comment Key mdType: 5 Key Value: but Key Comment: 35 Key Name: comment Key mdType: 5 Key Value: still Key Comment: 36 Key Name: comment Key mdType: 5 Key Value: valid Key Comment: 37 Key Name: title2 Key mdType: 5 Key Value: Good bye world Key Comment: STRING or STR may be used as the string type 38 Key Name: time Key mdType: 1 Key Value: 1234.568 Key Comment: 39 Key Name: negatives Key mdType: 6 Bad type: 6 Key Comment: 40 Key Name: pi Key mdType: 2 Key Value: 3.142 Key Comment: Definition of pi 41 Key Name: myBool Key mdType: 3 Key Value: 0 Key Comment: F, f, 0, T, t, 1 are also acceptable 42 Key Name: primes Key mdType: 6 Bad type: 6 Key Comment: These are prime numbers 43 Key Name: altitude Key mdType: 0 Key Value: 10000 Key Comment: 44 Key Name: speed Key mdType: 1 Key Value: 66.660 Key Comment: 45 Key Name: title1 Key mdType: 5 Key Value: Hello world Key Comment: This is a comment for the string value 46 46 47 47 ---> TESTPOINT PASSED (psMetadata{Test A - Read config file with overwrite set true} | tst_psMetadataIO.c) … … 54 54 55 55 Failed lines: 7 Expected: 7 Contents of metadata list: 56 Key Name: pi Key pType: 1032 Key mdType: 0Key Value: 3.142 Key Comment: Definition of pi57 Key Name: altitude Key pType: 260 KeymdType: 0 Key Value: 10000 Key Comment:58 Key Name: time Key pType: 1028 Key mdType: 0Key Value: 1234.568 Key Comment:59 Key Name: myBool Key pType: 4865 Key mdType: 0Key Value: 0 Key Comment: F, f, 0, T, t, 1 are also acceptable60 Key Name: title1 Key pType: 0 Key mdType: 2Key Value: Hello world Key Comment: This is a comment for the string value61 Key Name: title2 Key pType: 0 Key mdType: 2Key Value: Good bye world Key Comment: STRING or STR may be used as the string type62 Key Name: primes Key pType: 260 Key mdType: 3 Bad type: 3Key Comment: These are prime numbers63 Key Name: negatives Key pType: 260 Key mdType: 3 Bad type: 3Key Comment:64 Key Name: comment Key pType: 0 Key mdType: 2Key Value: This Key Comment:65 Key Name: comment Key pType: 0 Key mdType: 2Key Value: is Key Comment:66 Key Name: comment Key pType: 0 Key mdType: 2Key Value: an Key Comment:67 Key Name: comment Key pType: 0 Key mdType: 2Key Value: ugly Key Comment:68 Key Name: comment Key pType: 0 Key mdType: 2Key Value: comment Key Comment:69 Key Name: comment Key pType: 0 Key mdType: 2Key Value: but Key Comment:70 Key Name: comment Key pType: 0 Key mdType: 2Key Value: still Key Comment:71 Key Name: comment Key pType: 0 Key mdType: 2Key Value: valid Key Comment:72 Key Name: speed Key pType: 1028 Key mdType: 0Key Value: 55.550 Key Comment:56 Key Name: pi Key mdType: 2 Key Value: 3.142 Key Comment: Definition of pi 57 Key Name: altitude Key mdType: 0 Key Value: 10000 Key Comment: 58 Key Name: time Key mdType: 1 Key Value: 1234.568 Key Comment: 59 Key Name: myBool Key mdType: 3 Key Value: 0 Key Comment: F, f, 0, T, t, 1 are also acceptable 60 Key Name: title1 Key mdType: 5 Key Value: Hello world Key Comment: This is a comment for the string value 61 Key Name: title2 Key mdType: 5 Key Value: Good bye world Key Comment: STRING or STR may be used as the string type 62 Key Name: primes Key mdType: 6 Bad type: 6 Key Comment: These are prime numbers 63 Key Name: negatives Key mdType: 6 Bad type: 6 Key Comment: 64 Key Name: comment Key mdType: 5 Key Value: This Key Comment: 65 Key Name: comment Key mdType: 5 Key Value: is Key Comment: 66 Key Name: comment Key mdType: 5 Key Value: an Key Comment: 67 Key Name: comment Key mdType: 5 Key Value: ugly Key Comment: 68 Key Name: comment Key mdType: 5 Key Value: comment Key Comment: 69 Key Name: comment Key mdType: 5 Key Value: but Key Comment: 70 Key Name: comment Key mdType: 5 Key Value: still Key Comment: 71 Key Name: comment Key mdType: 5 Key Value: valid Key Comment: 72 Key Name: speed Key mdType: 1 Key Value: 55.550 Key Comment: 73 73 74 74 Contents of metadata table: 75 Key Name: comment Key pType: 0 Key mdType: 1Key Value: Key Comment:76 Key Name: comment Key pType: 0 Key mdType: 2Key Value: This Key Comment:77 Key Name: comment Key pType: 0 Key mdType: 2Key Value: is Key Comment:78 Key Name: comment Key pType: 0 Key mdType: 2Key Value: an Key Comment:79 Key Name: comment Key pType: 0 Key mdType: 2Key Value: ugly Key Comment:80 Key Name: comment Key pType: 0 Key mdType: 2Key Value: comment Key Comment:81 Key Name: comment Key pType: 0 Key mdType: 2Key Value: but Key Comment:82 Key Name: comment Key pType: 0 Key mdType: 2Key Value: still Key Comment:83 Key Name: comment Key pType: 0 Key mdType: 2Key Value: valid Key Comment:84 Key Name: title2 Key pType: 0 Key mdType: 2Key Value: Good bye world Key Comment: STRING or STR may be used as the string type85 Key Name: time Key pType: 1028 Key mdType: 0Key Value: 1234.568 Key Comment:86 Key Name: negatives Key pType: 260 Key mdType: 3 Bad type: 3Key Comment:87 Key Name: pi Key pType: 1032 Key mdType: 0Key Value: 3.142 Key Comment: Definition of pi88 Key Name: myBool Key pType: 4865 Key mdType: 0Key Value: 0 Key Comment: F, f, 0, T, t, 1 are also acceptable89 Key Name: primes Key pType: 260 Key mdType: 3 Bad type: 3Key Comment: These are prime numbers90 Key Name: altitude Key pType: 260 KeymdType: 0 Key Value: 10000 Key Comment:91 Key Name: speed Key pType: 1028 Key mdType: 0Key Value: 55.550 Key Comment:92 Key Name: title1 Key pType: 0 Key mdType: 2Key Value: Hello world Key Comment: This is a comment for the string value75 Key Name: comment Key mdType: 4 Key Value: Key Comment: 76 Key Name: comment Key mdType: 5 Key Value: This Key Comment: 77 Key Name: comment Key mdType: 5 Key Value: is Key Comment: 78 Key Name: comment Key mdType: 5 Key Value: an Key Comment: 79 Key Name: comment Key mdType: 5 Key Value: ugly Key Comment: 80 Key Name: comment Key mdType: 5 Key Value: comment Key Comment: 81 Key Name: comment Key mdType: 5 Key Value: but Key Comment: 82 Key Name: comment Key mdType: 5 Key Value: still Key Comment: 83 Key Name: comment Key mdType: 5 Key Value: valid Key Comment: 84 Key Name: title2 Key mdType: 5 Key Value: Good bye world Key Comment: STRING or STR may be used as the string type 85 Key Name: time Key mdType: 1 Key Value: 1234.568 Key Comment: 86 Key Name: negatives Key mdType: 6 Bad type: 6 Key Comment: 87 Key Name: pi Key mdType: 2 Key Value: 3.142 Key Comment: Definition of pi 88 Key Name: myBool Key mdType: 3 Key Value: 0 Key Comment: F, f, 0, T, t, 1 are also acceptable 89 Key Name: primes Key mdType: 6 Bad type: 6 Key Comment: These are prime numbers 90 Key Name: altitude Key mdType: 0 Key Value: 10000 Key Comment: 91 Key Name: speed Key mdType: 1 Key Value: 55.550 Key Comment: 92 Key Name: title1 Key mdType: 5 Key Value: Hello world Key Comment: This is a comment for the string value 93 93 94 94 ---> TESTPOINT PASSED (psMetadata{Test B - Read config file with overwrite set false} | tst_psMetadataIO.c) … … 101 101 102 102 Failed lines: 6 Expected: 6 Contents of metadata list: 103 Key Name: pi Key pType: 1032 Key mdType: 0Key Value: 3.142 Key Comment: Definition of pi104 Key Name: altitude Key pType: 260 KeymdType: 0 Key Value: 10000 Key Comment:105 Key Name: time Key pType: 1028 Key mdType: 0Key Value: 1234.568 Key Comment:106 Key Name: myBool Key pType: 4865 Key mdType: 0Key Value: 0 Key Comment: F, f, 0, T, t, 1 are also acceptable107 Key Name: title1 Key pType: 0 Key mdType: 2Key Value: Hello world Key Comment: This is a comment for the string value108 Key Name: title2 Key pType: 0 Key mdType: 2Key Value: Good bye world Key Comment: STRING or STR may be used as the string type109 Key Name: primes Key pType: 260 Key mdType: 3 Bad type: 3Key Comment: These are prime numbers110 Key Name: negatives Key pType: 260 Key mdType: 3 Bad type: 3Key Comment:111 Key Name: comment Key pType: 0 Key mdType: 2Key Value: This Key Comment:112 Key Name: comment Key pType: 0 Key mdType: 2Key Value: is Key Comment:113 Key Name: comment Key pType: 0 Key mdType: 2Key Value: an Key Comment:114 Key Name: comment Key pType: 0 Key mdType: 2Key Value: ugly Key Comment:115 Key Name: comment Key pType: 0 Key mdType: 2Key Value: comment Key Comment:116 Key Name: comment Key pType: 0 Key mdType: 2Key Value: but Key Comment:117 Key Name: comment Key pType: 0 Key mdType: 2Key Value: still Key Comment:118 Key Name: comment Key pType: 0 Key mdType: 2Key Value: valid Key Comment:119 Key Name: speed Key pType: 1028 Key mdType: 0Key Value: 66.660 Key Comment:103 Key Name: pi Key mdType: 2 Key Value: 3.142 Key Comment: Definition of pi 104 Key Name: altitude Key mdType: 0 Key Value: 10000 Key Comment: 105 Key Name: time Key mdType: 1 Key Value: 1234.568 Key Comment: 106 Key Name: myBool Key mdType: 3 Key Value: 0 Key Comment: F, f, 0, T, t, 1 are also acceptable 107 Key Name: title1 Key mdType: 5 Key Value: Hello world Key Comment: This is a comment for the string value 108 Key Name: title2 Key mdType: 5 Key Value: Good bye world Key Comment: STRING or STR may be used as the string type 109 Key Name: primes Key mdType: 6 Bad type: 6 Key Comment: These are prime numbers 110 Key Name: negatives Key mdType: 6 Bad type: 6 Key Comment: 111 Key Name: comment Key mdType: 5 Key Value: This Key Comment: 112 Key Name: comment Key mdType: 5 Key Value: is Key Comment: 113 Key Name: comment Key mdType: 5 Key Value: an Key Comment: 114 Key Name: comment Key mdType: 5 Key Value: ugly Key Comment: 115 Key Name: comment Key mdType: 5 Key Value: comment Key Comment: 116 Key Name: comment Key mdType: 5 Key Value: but Key Comment: 117 Key Name: comment Key mdType: 5 Key Value: still Key Comment: 118 Key Name: comment Key mdType: 5 Key Value: valid Key Comment: 119 Key Name: speed Key mdType: 1 Key Value: 66.660 Key Comment: 120 120 121 121 Contents of metadata table: 122 Key Name: comment Key pType: 0 Key mdType: 1Key Value: Key Comment:123 Key Name: comment Key pType: 0 Key mdType: 2Key Value: This Key Comment:124 Key Name: comment Key pType: 0 Key mdType: 2Key Value: is Key Comment:125 Key Name: comment Key pType: 0 Key mdType: 2Key Value: an Key Comment:126 Key Name: comment Key pType: 0 Key mdType: 2Key Value: ugly Key Comment:127 Key Name: comment Key pType: 0 Key mdType: 2Key Value: comment Key Comment:128 Key Name: comment Key pType: 0 Key mdType: 2Key Value: but Key Comment:129 Key Name: comment Key pType: 0 Key mdType: 2Key Value: still Key Comment:130 Key Name: comment Key pType: 0 Key mdType: 2Key Value: valid Key Comment:131 Key Name: title2 Key pType: 0 Key mdType: 2Key Value: Good bye world Key Comment: STRING or STR may be used as the string type132 Key Name: time Key pType: 1028 Key mdType: 0Key Value: 1234.568 Key Comment:133 Key Name: negatives Key pType: 260 Key mdType: 3 Bad type: 3Key Comment:134 Key Name: pi Key pType: 1032 Key mdType: 0Key Value: 3.142 Key Comment: Definition of pi135 Key Name: myBool Key pType: 4865 Key mdType: 0Key Value: 0 Key Comment: F, f, 0, T, t, 1 are also acceptable136 Key Name: primes Key pType: 260 Key mdType: 3 Bad type: 3Key Comment: These are prime numbers137 Key Name: altitude Key pType: 260 KeymdType: 0 Key Value: 10000 Key Comment:138 Key Name: speed Key pType: 1028 Key mdType: 0Key Value: 66.660 Key Comment:139 Key Name: title1 Key pType: 0 Key mdType: 2Key Value: Hello world Key Comment: This is a comment for the string value122 Key Name: comment Key mdType: 4 Key Value: Key Comment: 123 Key Name: comment Key mdType: 5 Key Value: This Key Comment: 124 Key Name: comment Key mdType: 5 Key Value: is Key Comment: 125 Key Name: comment Key mdType: 5 Key Value: an Key Comment: 126 Key Name: comment Key mdType: 5 Key Value: ugly Key Comment: 127 Key Name: comment Key mdType: 5 Key Value: comment Key Comment: 128 Key Name: comment Key mdType: 5 Key Value: but Key Comment: 129 Key Name: comment Key mdType: 5 Key Value: still Key Comment: 130 Key Name: comment Key mdType: 5 Key Value: valid Key Comment: 131 Key Name: title2 Key mdType: 5 Key Value: Good bye world Key Comment: STRING or STR may be used as the string type 132 Key Name: time Key mdType: 1 Key Value: 1234.568 Key Comment: 133 Key Name: negatives Key mdType: 6 Bad type: 6 Key Comment: 134 Key Name: pi Key mdType: 2 Key Value: 3.142 Key Comment: Definition of pi 135 Key Name: myBool Key mdType: 3 Key Value: 0 Key Comment: F, f, 0, T, t, 1 are also acceptable 136 Key Name: primes Key mdType: 6 Bad type: 6 Key Comment: These are prime numbers 137 Key Name: altitude Key mdType: 0 Key Value: 10000 Key Comment: 138 Key Name: speed Key mdType: 1 Key Value: 66.660 Key Comment: 139 Key Name: title1 Key mdType: 5 Key Value: Hello world Key Comment: This is a comment for the string value 140 140 141 141 ---> TESTPOINT PASSED (psMetadata{Test C - Read config file without auto-allocation of metadata} | tst_psMetadataIO.c) -
trunk/psLib/test/astronomy/verified/tst_psMetadata_01.stdout
r2858 r3341 6 6 7 7 Contents of metadata list: 8 Key Name: SIMPLE Key pType: 4865 Key mdType: 0Key Value: 1 Key Comment: file does conform to FITS standard9 Key Name: BITPIX Key pType: 260 KeymdType: 0 Key Value: 8 Key Comment: number of bits per data pixel10 Key Name: NAXIS Key pType: 260 KeymdType: 0 Key Value: 0 Key Comment: number of data axes11 Key Name: HISTORY Key pType: 0 Key mdType: 2Key Value: Key Comment: File modified by user 'harman' with fv on 2004-08-04T<DATE>8 Key Name: SIMPLE Key mdType: 3 Key Value: 1 Key Comment: file does conform to FITS standard 9 Key Name: BITPIX Key mdType: 0 Key Value: 8 Key Comment: number of bits per data pixel 10 Key Name: NAXIS Key mdType: 0 Key Value: 0 Key Comment: number of data axes 11 Key Name: HISTORY Key mdType: 5 Key Value: Key Comment: File modified by user 'harman' with fv on 2004-08-04T<DATE> 12 12 13 13 Contents of metadata table: 14 Key Name: NAXIS Key pType: 260 KeymdType: 0 Key Value: 0 Key Comment: number of data axes15 Key Name: SIMPLE Key pType: 4865 Key mdType: 0Key Value: 1 Key Comment: file does conform to FITS standard16 Key Name: BITPIX Key pType: 260 KeymdType: 0 Key Value: 8 Key Comment: number of bits per data pixel17 Key Name: HISTORY Key pType: 0 Key mdType: 2Key Value: Key Comment: File modified by user 'harman' with fv on 2004-08-04T<DATE>14 Key Name: NAXIS Key mdType: 0 Key Value: 0 Key Comment: number of data axes 15 Key Name: SIMPLE Key mdType: 3 Key Value: 1 Key Comment: file does conform to FITS standard 16 Key Name: BITPIX Key mdType: 0 Key Value: 8 Key Comment: number of bits per data pixel 17 Key Name: HISTORY Key mdType: 5 Key Value: Key Comment: File modified by user 'harman' with fv on 2004-08-04T<DATE> 18 18 19 19 ---> TESTPOINT PASSED (psMetadata{Test A - Read 1st hdr from simple FITS file} | tst_psMetadata_01.c) … … 26 26 27 27 Contents of metadata list: 28 Key Name: XTENSION Key pType: 0 Key mdType: 2Key Value: 'IMAGE ' Key Comment: IMAGE extension29 Key Name: BITPIX Key pType: 260 KeymdType: 0 Key Value: -64 Key Comment: number of bits per data pixel30 Key Name: NAXIS Key pType: 260 KeymdType: 0 Key Value: 1 Key Comment: number of data axes31 Key Name: NAXIS1 Key pType: 260 KeymdType: 0 Key Value: 64 Key Comment: length of data axis 132 Key Name: PCOUNT Key pType: 260 KeymdType: 0 Key Value: 0 Key Comment: required keyword; must = 033 Key Name: GCOUNT Key pType: 260 KeymdType: 0 Key Value: 1 Key Comment: required keyword; must = 134 Key Name: BITPIX Key pType: 260 KeymdType: 0 Key Value: -64 Key Comment: number of bits per data pixel35 Key Name: EXTNAME Key pType: 0 Key mdType: 2Key Value: 'MY_DATA_1' Key Comment:36 Key Name: HISTORY Key pType: 0 Key mdType: 2Key Value: Key Comment: File modified by user 'harman' with fv on 2004-08-04T<DATE>37 Key Name: HISTORY Key pType: 0 Key mdType: 2Key Value: Key Comment: File modified by user 'harman' with fv on 2004-08-04T<DATE>38 Key Name: HISTORY Key pType: 0 Key mdType: 2Key Value: Key Comment: File modified by user 'harman' with fv on 2004-08-04T<DATE>39 Key Name: HISTORY Key pType: 0 Key mdType: 2Key Value: Key Comment: File modified by user 'harman' with fv on 2004-08-04T<DATE>28 Key Name: XTENSION Key mdType: 5 Key Value: 'IMAGE ' Key Comment: IMAGE extension 29 Key Name: BITPIX Key mdType: 0 Key Value: -64 Key Comment: number of bits per data pixel 30 Key Name: NAXIS Key mdType: 0 Key Value: 1 Key Comment: number of data axes 31 Key Name: NAXIS1 Key mdType: 0 Key Value: 64 Key Comment: length of data axis 1 32 Key Name: PCOUNT Key mdType: 0 Key Value: 0 Key Comment: required keyword; must = 0 33 Key Name: GCOUNT Key mdType: 0 Key Value: 1 Key Comment: required keyword; must = 1 34 Key Name: BITPIX Key mdType: 0 Key Value: -64 Key Comment: number of bits per data pixel 35 Key Name: EXTNAME Key mdType: 5 Key Value: 'MY_DATA_1' Key Comment: 36 Key Name: HISTORY Key mdType: 5 Key Value: Key Comment: File modified by user 'harman' with fv on 2004-08-04T<DATE> 37 Key Name: HISTORY Key mdType: 5 Key Value: Key Comment: File modified by user 'harman' with fv on 2004-08-04T<DATE> 38 Key Name: HISTORY Key mdType: 5 Key Value: Key Comment: File modified by user 'harman' with fv on 2004-08-04T<DATE> 39 Key Name: HISTORY Key mdType: 5 Key Value: Key Comment: File modified by user 'harman' with fv on 2004-08-04T<DATE> 40 40 41 41 Contents of metadata table: 42 Key Name: NAXIS Key pType: 260 KeymdType: 0 Key Value: 1 Key Comment: number of data axes43 Key Name: NAXIS1 Key pType: 260 KeymdType: 0 Key Value: 64 Key Comment: length of data axis 144 Key Name: PCOUNT Key pType: 260 KeymdType: 0 Key Value: 0 Key Comment: required keyword; must = 045 Key Name: XTENSION Key pType: 0 Key mdType: 2Key Value: 'IMAGE ' Key Comment: IMAGE extension46 Key Name: BITPIX Key pType: 0 Key mdType: 1Key Value: Key Comment:47 Key Name: BITPIX Key pType: 260 KeymdType: 0 Key Value: -64 Key Comment: number of bits per data pixel48 Key Name: BITPIX Key pType: 260 KeymdType: 0 Key Value: -64 Key Comment: number of bits per data pixel49 Key Name: GCOUNT Key pType: 260 KeymdType: 0 Key Value: 1 Key Comment: required keyword; must = 150 Key Name: HISTORY Key pType: 0 Key mdType: 1Key Value: Key Comment:51 Key Name: HISTORY Key pType: 0 Key mdType: 2Key Value: Key Comment: File modified by user 'harman' with fv on 2004-08-04T<DATE>52 Key Name: HISTORY Key pType: 0 Key mdType: 2Key Value: Key Comment: File modified by user 'harman' with fv on 2004-08-04T<DATE>53 Key Name: HISTORY Key pType: 0 Key mdType: 2Key Value: Key Comment: File modified by user 'harman' with fv on 2004-08-04T<DATE>54 Key Name: HISTORY Key pType: 0 Key mdType: 2Key Value: Key Comment: File modified by user 'harman' with fv on 2004-08-04T<DATE>55 Key Name: EXTNAME Key pType: 0 Key mdType: 2Key Value: 'MY_DATA_1' Key Comment:42 Key Name: NAXIS Key mdType: 0 Key Value: 1 Key Comment: number of data axes 43 Key Name: NAXIS1 Key mdType: 0 Key Value: 64 Key Comment: length of data axis 1 44 Key Name: PCOUNT Key mdType: 0 Key Value: 0 Key Comment: required keyword; must = 0 45 Key Name: XTENSION Key mdType: 5 Key Value: 'IMAGE ' Key Comment: IMAGE extension 46 Key Name: BITPIX Key mdType: 4 Key Value: Key Comment: 47 Key Name: BITPIX Key mdType: 0 Key Value: -64 Key Comment: number of bits per data pixel 48 Key Name: BITPIX Key mdType: 0 Key Value: -64 Key Comment: number of bits per data pixel 49 Key Name: GCOUNT Key mdType: 0 Key Value: 1 Key Comment: required keyword; must = 1 50 Key Name: HISTORY Key mdType: 4 Key Value: Key Comment: 51 Key Name: HISTORY Key mdType: 5 Key Value: Key Comment: File modified by user 'harman' with fv on 2004-08-04T<DATE> 52 Key Name: HISTORY Key mdType: 5 Key Value: Key Comment: File modified by user 'harman' with fv on 2004-08-04T<DATE> 53 Key Name: HISTORY Key mdType: 5 Key Value: Key Comment: File modified by user 'harman' with fv on 2004-08-04T<DATE> 54 Key Name: HISTORY Key mdType: 5 Key Value: Key Comment: File modified by user 'harman' with fv on 2004-08-04T<DATE> 55 Key Name: EXTNAME Key mdType: 5 Key Value: 'MY_DATA_1' Key Comment: 56 56 57 57 ---> TESTPOINT PASSED (psMetadata{Test B - Read 2nd hdr from complex FITS file} | tst_psMetadata_01.c) … … 64 64 65 65 Contents of metadata list: 66 Key Name: XTENSION Key pType: 0 Key mdType: 2Key Value: 'IMAGE ' Key Comment: IMAGE extension67 Key Name: BITPIX Key pType: 260 KeymdType: 0 Key Value: -64 Key Comment: number of bits per data pixel68 Key Name: NAXIS Key pType: 260 KeymdType: 0 Key Value: 1 Key Comment: number of data axes69 Key Name: NAXIS1 Key pType: 260 KeymdType: 0 Key Value: 64 Key Comment: length of data axis 170 Key Name: PCOUNT Key pType: 260 KeymdType: 0 Key Value: 0 Key Comment: required keyword; must = 071 Key Name: GCOUNT Key pType: 260 KeymdType: 0 Key Value: 1 Key Comment: required keyword; must = 172 Key Name: EXTNAME Key pType: 0 Key mdType: 2Key Value: 'MY_DATA_2' Key Comment:73 Key Name: HISTORY Key pType: 0 Key mdType: 2Key Value: Key Comment: File modified by user 'harman' with fv on 2004-08-04T<DATE>74 Key Name: HISTORY Key pType: 0 Key mdType: 2Key Value: Key Comment: File modified by user 'harman' with fv on 2004-08-04T<DATE>66 Key Name: XTENSION Key mdType: 5 Key Value: 'IMAGE ' Key Comment: IMAGE extension 67 Key Name: BITPIX Key mdType: 0 Key Value: -64 Key Comment: number of bits per data pixel 68 Key Name: NAXIS Key mdType: 0 Key Value: 1 Key Comment: number of data axes 69 Key Name: NAXIS1 Key mdType: 0 Key Value: 64 Key Comment: length of data axis 1 70 Key Name: PCOUNT Key mdType: 0 Key Value: 0 Key Comment: required keyword; must = 0 71 Key Name: GCOUNT Key mdType: 0 Key Value: 1 Key Comment: required keyword; must = 1 72 Key Name: EXTNAME Key mdType: 5 Key Value: 'MY_DATA_2' Key Comment: 73 Key Name: HISTORY Key mdType: 5 Key Value: Key Comment: File modified by user 'harman' with fv on 2004-08-04T<DATE> 74 Key Name: HISTORY Key mdType: 5 Key Value: Key Comment: File modified by user 'harman' with fv on 2004-08-04T<DATE> 75 75 76 76 Contents of metadata table: 77 Key Name: NAXIS Key pType: 260 KeymdType: 0 Key Value: 1 Key Comment: number of data axes78 Key Name: NAXIS1 Key pType: 260 KeymdType: 0 Key Value: 64 Key Comment: length of data axis 179 Key Name: PCOUNT Key pType: 260 KeymdType: 0 Key Value: 0 Key Comment: required keyword; must = 080 Key Name: XTENSION Key pType: 0 Key mdType: 2Key Value: 'IMAGE ' Key Comment: IMAGE extension81 Key Name: GCOUNT Key pType: 260 KeymdType: 0 Key Value: 1 Key Comment: required keyword; must = 182 Key Name: BITPIX Key pType: 260 KeymdType: 0 Key Value: -64 Key Comment: number of bits per data pixel83 Key Name: HISTORY Key pType: 0 Key mdType: 1Key Value: Key Comment:84 Key Name: HISTORY Key pType: 0 Key mdType: 2Key Value: Key Comment: File modified by user 'harman' with fv on 2004-08-04T<DATE>85 Key Name: HISTORY Key pType: 0 Key mdType: 2Key Value: Key Comment: File modified by user 'harman' with fv on 2004-08-04T<DATE>86 Key Name: EXTNAME Key pType: 0 Key mdType: 2Key Value: 'MY_DATA_2' Key Comment:77 Key Name: NAXIS Key mdType: 0 Key Value: 1 Key Comment: number of data axes 78 Key Name: NAXIS1 Key mdType: 0 Key Value: 64 Key Comment: length of data axis 1 79 Key Name: PCOUNT Key mdType: 0 Key Value: 0 Key Comment: required keyword; must = 0 80 Key Name: XTENSION Key mdType: 5 Key Value: 'IMAGE ' Key Comment: IMAGE extension 81 Key Name: GCOUNT Key mdType: 0 Key Value: 1 Key Comment: required keyword; must = 1 82 Key Name: BITPIX Key mdType: 0 Key Value: -64 Key Comment: number of bits per data pixel 83 Key Name: HISTORY Key mdType: 4 Key Value: Key Comment: 84 Key Name: HISTORY Key mdType: 5 Key Value: Key Comment: File modified by user 'harman' with fv on 2004-08-04T<DATE> 85 Key Name: HISTORY Key mdType: 5 Key Value: Key Comment: File modified by user 'harman' with fv on 2004-08-04T<DATE> 86 Key Name: EXTNAME Key mdType: 5 Key Value: 'MY_DATA_2' Key Comment: 87 87 88 88 ---> TESTPOINT PASSED (psMetadata{Test C - Read named hdr from complex FITS file} | tst_psMetadata_01.c) … … 97 97 98 98 Contents of metadata list: 99 Key Name: XTENSION Key pType: 0 Key mdType: 2Key Value: 'IMAGE ' Key Comment: IMAGE extension100 Key Name: BITPIX Key pType: 260 KeymdType: 0 Key Value: -64 Key Comment: number of bits per data pixel101 Key Name: NAXIS Key pType: 260 KeymdType: 0 Key Value: 1 Key Comment: number of data axes102 Key Name: NAXIS1 Key pType: 260 KeymdType: 0 Key Value: 64 Key Comment: length of data axis 1103 Key Name: PCOUNT Key pType: 260 KeymdType: 0 Key Value: 0 Key Comment: required keyword; must = 0104 Key Name: GCOUNT Key pType: 260 KeymdType: 0 Key Value: 1 Key Comment: required keyword; must = 1105 Key Name: EXTNAME Key pType: 0 Key mdType: 2Key Value: 'MY_DATA_2' Key Comment:106 Key Name: HISTORY Key pType: 0 Key mdType: 2Key Value: Key Comment: File modified by user 'harman' with fv on 2004-08-04T<DATE>107 Key Name: HISTORY Key pType: 0 Key mdType: 2Key Value: Key Comment: File modified by user 'harman' with fv on 2004-08-04T<DATE>99 Key Name: XTENSION Key mdType: 5 Key Value: 'IMAGE ' Key Comment: IMAGE extension 100 Key Name: BITPIX Key mdType: 0 Key Value: -64 Key Comment: number of bits per data pixel 101 Key Name: NAXIS Key mdType: 0 Key Value: 1 Key Comment: number of data axes 102 Key Name: NAXIS1 Key mdType: 0 Key Value: 64 Key Comment: length of data axis 1 103 Key Name: PCOUNT Key mdType: 0 Key Value: 0 Key Comment: required keyword; must = 0 104 Key Name: GCOUNT Key mdType: 0 Key Value: 1 Key Comment: required keyword; must = 1 105 Key Name: EXTNAME Key mdType: 5 Key Value: 'MY_DATA_2' Key Comment: 106 Key Name: HISTORY Key mdType: 5 Key Value: Key Comment: File modified by user 'harman' with fv on 2004-08-04T<DATE> 107 Key Name: HISTORY Key mdType: 5 Key Value: Key Comment: File modified by user 'harman' with fv on 2004-08-04T<DATE> 108 108 109 109 Contents of metadata table: 110 Key Name: NAXIS Key pType: 260 KeymdType: 0 Key Value: 1 Key Comment: number of data axes111 Key Name: NAXIS1 Key pType: 260 KeymdType: 0 Key Value: 64 Key Comment: length of data axis 1112 Key Name: PCOUNT Key pType: 260 KeymdType: 0 Key Value: 0 Key Comment: required keyword; must = 0113 Key Name: XTENSION Key pType: 0 Key mdType: 2Key Value: 'IMAGE ' Key Comment: IMAGE extension114 Key Name: GCOUNT Key pType: 260 KeymdType: 0 Key Value: 1 Key Comment: required keyword; must = 1115 Key Name: BITPIX Key pType: 260 KeymdType: 0 Key Value: -64 Key Comment: number of bits per data pixel116 Key Name: HISTORY Key pType: 0 Key mdType: 1Key Value: Key Comment:117 Key Name: HISTORY Key pType: 0 Key mdType: 2Key Value: Key Comment: File modified by user 'harman' with fv on 2004-08-04T<DATE>118 Key Name: HISTORY Key pType: 0 Key mdType: 2Key Value: Key Comment: File modified by user 'harman' with fv on 2004-08-04T<DATE>119 Key Name: EXTNAME Key pType: 0 Key mdType: 2Key Value: 'MY_DATA_2' Key Comment:110 Key Name: NAXIS Key mdType: 0 Key Value: 1 Key Comment: number of data axes 111 Key Name: NAXIS1 Key mdType: 0 Key Value: 64 Key Comment: length of data axis 1 112 Key Name: PCOUNT Key mdType: 0 Key Value: 0 Key Comment: required keyword; must = 0 113 Key Name: XTENSION Key mdType: 5 Key Value: 'IMAGE ' Key Comment: IMAGE extension 114 Key Name: GCOUNT Key mdType: 0 Key Value: 1 Key Comment: required keyword; must = 1 115 Key Name: BITPIX Key mdType: 0 Key Value: -64 Key Comment: number of bits per data pixel 116 Key Name: HISTORY Key mdType: 4 Key Value: Key Comment: 117 Key Name: HISTORY Key mdType: 5 Key Value: Key Comment: File modified by user 'harman' with fv on 2004-08-04T<DATE> 118 Key Name: HISTORY Key mdType: 5 Key Value: Key Comment: File modified by user 'harman' with fv on 2004-08-04T<DATE> 119 Key Name: EXTNAME Key mdType: 5 Key Value: 'MY_DATA_2' Key Comment: 120 120 121 121 ---> TESTPOINT PASSED (psMetadata{Test D - Remove items with same name from all metadata} | tst_psMetadata_01.c) -
trunk/psLib/test/astronomy/verified/tst_psMetadata_02.stderr
r3127 r3341 4 4 Unallowable operation: name is NULL. 5 5 <DATE><TIME>|<HOST>|E|psMetadataItemAllocV (FILE:LINENO) 6 Specified psMetadataType, 1 1, is not supported.6 Specified psMetadataType, 14, is not supported. 7 7 <DATE><TIME>|<HOST>|E|psMetadataAddItem (FILE:LINENO) 8 8 Unallowable operation: md is NULL. -
trunk/psLib/test/astronomy/verified/tst_psMetadata_02.stdout
r2643 r3341 5 5 \**********************************************************************************/ 6 6 7 Key Name: myItem1 Key pType: 4865 Key mdType: 0Key Value: 1 Key Comment: I am a boolean8 Key Name: myItem2 Key pType: 260 KeymdType: 0 Key Value: 111 Key Comment: I am a signed integer9 Key Name: myItem3 Key pType: 1028 Key mdType: 0Key Value: 222.222 Key Comment: I am a single precision floating point10 Key Name: myItem4 Key pType: 1032 Key mdType: 0Key Value: 333.333 Key Comment: I am a double precision floating point11 Key Name: myItem5 Key pType: 0 Key mdType: 2Key Value: HELLO WORLD Key Comment: I am a string7 Key Name: myItem1 Key mdType: 3 Key Value: 1 Key Comment: I am a boolean 8 Key Name: myItem2 Key mdType: 0 Key Value: 111 Key Comment: I am a signed integer 9 Key Name: myItem3 Key mdType: 1 Key Value: 222.222 Key Comment: I am a single precision floating point 10 Key Name: myItem4 Key mdType: 2 Key Value: 333.333 Key Comment: I am a double precision floating point 11 Key Name: myItem5 Key mdType: 5 Key Value: HELLO WORLD Key Comment: I am a string 12 12 13 13 ---> TESTPOINT PASSED (psMetadata{Test A - Allocate metadata items} | tst_psMetadata_02.c) -
trunk/psLib/test/astronomy/verified/tst_psMetadata_03.stdout
r2643 r3341 5 5 \**********************************************************************************/ 6 6 7 Key Name: myItem1 Key pType: 4865 Key mdType: 0Key Value: 1 Key Comment: I am a boolean8 Key Name: myItem2 Key pType: 260 KeymdType: 0 Key Value: 55 Key Comment: I am a integer9 Key Name: myItem3 Key pType: 4865 Key mdType: 0Key Value: 0 Key Comment: I am a boolean10 Key Name: myItem4 Key pType: 260 KeymdType: 0 Key Value: 66 Key Comment: I am a integer7 Key Name: myItem1 Key mdType: 3 Key Value: 1 Key Comment: I am a boolean 8 Key Name: myItem2 Key mdType: 0 Key Value: 55 Key Comment: I am a integer 9 Key Name: myItem3 Key mdType: 3 Key Value: 0 Key Comment: I am a boolean 10 Key Name: myItem4 Key mdType: 0 Key Value: 66 Key Comment: I am a integer 11 11 12 12 ---> TESTPOINT PASSED (psMetadata{Test A - Allocate metadata items} | tst_psMetadata_03.c) -
trunk/psLib/test/astronomy/verified/tst_psMetadata_04.stdout
r2665 r3341 5 5 \**********************************************************************************/ 6 6 7 Key Name: myItem1 Key pType: 4865 Key mdType: 0Key Value: 1 Key Comment: I am a boolean8 Key Name: myItem2 Key pType: 260 KeymdType: 0 Key Value: 55 Key Comment: I am a integer9 Key Name: myItem3 Key pType: 4865 Key mdType: 0Key Value: 0 Key Comment: I am a boolean10 Key Name: myItem4 Key pType: 260 KeymdType: 0 Key Value: 66 Key Comment: I am a integer11 Key Name: myItem5 Key pType: 1032 Key mdType: 0Key Value: 3.140 Key Comment: I am a double7 Key Name: myItem1 Key mdType: 3 Key Value: 1 Key Comment: I am a boolean 8 Key Name: myItem2 Key mdType: 0 Key Value: 55 Key Comment: I am a integer 9 Key Name: myItem3 Key mdType: 3 Key Value: 0 Key Comment: I am a boolean 10 Key Name: myItem4 Key mdType: 0 Key Value: 66 Key Comment: I am a integer 11 Key Name: myItem5 Key mdType: 2 Key Value: 3.140 Key Comment: I am a double 12 12 13 13 ---> TESTPOINT PASSED (psMetadata{Test A - Allocate metadata items} | tst_psMetadata_04.c) -
trunk/psLib/test/astronomy/verified/tst_psMetadata_05.stdout
r2643 r3341 5 5 \**********************************************************************************/ 6 6 7 Key Name: myItem1 Key pType: 4865 Key mdType: 0Key Value: 1 Key Comment: I am a boolean8 Key Name: myItem2 Key pType: 260 KeymdType: 0 Key Value: 55 Key Comment: I am a integer9 Key Name: myItem3 Key pType: 4865 Key mdType: 0Key Value: 0 Key Comment: I am a boolean10 Key Name: myItem4 Key pType: 260 KeymdType: 0 Key Value: 66 Key Comment: I am a integer7 Key Name: myItem1 Key mdType: 3 Key Value: 1 Key Comment: I am a boolean 8 Key Name: myItem2 Key mdType: 0 Key Value: 55 Key Comment: I am a integer 9 Key Name: myItem3 Key mdType: 3 Key Value: 0 Key Comment: I am a boolean 10 Key Name: myItem4 Key mdType: 0 Key Value: 66 Key Comment: I am a integer 11 11 12 12 ---> TESTPOINT PASSED (psMetadata{Test A - Allocate metadata items} | tst_psMetadata_05.c) -
trunk/psLib/test/astronomy/verified/tst_psMetadata_06.stdout
r2643 r3341 5 5 \**********************************************************************************/ 6 6 7 Key Name: myItem1 Key pType: 4865 Key mdType: 0Key Value: 1 Key Comment: I am a boolean8 Key Name: myItem1 Key pType: 260 KeymdType: 0 Key Value: 111 Key Comment: I am a signed integer9 Key Name: myItem1 Key pType: 260 KeymdType: 0 Key Value: 222 Key Comment: I am a signed integer10 Key Name: myItem2 Key pType: 260 KeymdType: 0 Key Value: 333 Key Comment: I am a signed integer11 Key Name: myItem2 Key pType: 0 Key mdType: 1Key Value: Key Comment: I am a folder node7 Key Name: myItem1 Key mdType: 3 Key Value: 1 Key Comment: I am a boolean 8 Key Name: myItem1 Key mdType: 0 Key Value: 111 Key Comment: I am a signed integer 9 Key Name: myItem1 Key mdType: 0 Key Value: 222 Key Comment: I am a signed integer 10 Key Name: myItem2 Key mdType: 0 Key Value: 333 Key Comment: I am a signed integer 11 Key Name: myItem2 Key mdType: 4 Key Value: Key Comment: I am a folder node 12 12 13 13 ---> TESTPOINT PASSED (psMetadata{Test A - Allocate metadata and items} | tst_psMetadata_06.c) -
trunk/psLib/test/collections/tst_psMetadataIO.c
r3264 r3341 13 13 * @author Ross Harman, MHPCC 14 14 * 15 * @version $Revision: 1. 9$ $Name: not supported by cvs2svn $16 * @date $Date: 2005-02- 17 19:26:24$15 * @version $Revision: 1.10 $ $Name: not supported by cvs2svn $ 16 * @date $Date: 2005-02-28 23:34:10 $ 17 17 * 18 18 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 66 66 { 67 67 printf("%sKey Name: %8s ", spaces, metadataItem->name); 68 printf("Key pType: %d ", metadataItem->pType);69 68 printf("Key mdType: %d ", metadataItem->type); 70 69 … … 73 72 printf("Key Value: %17c", ' '); 74 73 break; 75 case PS_META_PRIMITIVE: 76 switch(metadataItem->pType) { 77 case PS_TYPE_BOOL: 78 printf("Key Value: %15d ", metadataItem->data.B); 79 break; 80 case PS_TYPE_S32: 81 printf("Key Value: %15d ", metadataItem->data.S32); 82 break; 83 case PS_TYPE_F32: 84 printf("Key Value: %15.3f ", metadataItem->data.F32); 85 break; 86 case PS_TYPE_F64: 87 printf("Key Value: %15.3f ", metadataItem->data.F64); 88 break; 89 default: 90 printf("Bad type: %d ", metadataItem->pType); 91 } 74 case PS_META_BOOL: 75 printf("Key Value: %15d ", metadataItem->data.B); 76 break; 77 case PS_META_S32: 78 printf("Key Value: %15d ", metadataItem->data.S32); 79 break; 80 case PS_META_F32: 81 printf("Key Value: %15.3f ", metadataItem->data.F32); 82 break; 83 case PS_META_F64: 84 printf("Key Value: %15.3f ", metadataItem->data.F64); 92 85 break; 93 86 case PS_META_STR: -
trunk/psLib/test/collections/tst_psMetadata_01.c
r3264 r3341 18 18 * @author Ross Harman, MHPCC 19 19 * 20 * @version $Revision: 1.2 0$ $Name: not supported by cvs2svn $21 * @date $Date: 2005-02- 17 19:26:24$20 * @version $Revision: 1.21 $ $Name: not supported by cvs2svn $ 21 * @date $Date: 2005-02-28 23:34:10 $ 22 22 * 23 23 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 72 72 { 73 73 printf("%sKey Name: %8s ", spaces, metadataItem->name); 74 printf("Key pType: %d ", metadataItem->pType);75 74 printf("Key mdType: %d ", metadataItem->type); 76 75 … … 79 78 printf("Key Value: %17c", ' '); 80 79 break; 81 case PS_META_PRIMITIVE: 82 switch(metadataItem->pType) { 83 case PS_TYPE_BOOL: 84 printf("Key Value: %15d ", metadataItem->data.B); 85 break; 86 case PS_TYPE_S32: 87 printf("Key Value: %15d ", metadataItem->data.S32); 88 break; 89 case PS_TYPE_F32: 90 printf("Key Value: %15.3f ", metadataItem->data.F32); 91 break; 92 case PS_TYPE_F64: 93 printf("Key Value: %15.3f ", metadataItem->data.F64); 94 break; 95 default: 96 printf("Bad type: %d ", metadataItem->pType); 97 } 80 case PS_META_BOOL: 81 printf("Key Value: %15d ", metadataItem->data.B); 82 break; 83 case PS_META_S32: 84 printf("Key Value: %15d ", metadataItem->data.S32); 85 break; 86 case PS_META_F32: 87 printf("Key Value: %15.3f ", metadataItem->data.F32); 88 break; 89 case PS_META_F64: 90 printf("Key Value: %15.3f ", metadataItem->data.F64); 98 91 break; 99 92 case PS_META_STR: -
trunk/psLib/test/collections/tst_psMetadata_02.c
r3264 r3341 14 14 * @author Ross Harman, MHPCC 15 15 * 16 * @version $Revision: 1.1 1$ $Name: not supported by cvs2svn $17 * @date $Date: 2005-02- 17 19:26:24$16 * @version $Revision: 1.12 $ $Name: not supported by cvs2svn $ 17 * @date $Date: 2005-02-28 23:34:10 $ 18 18 * 19 19 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 28 28 { 29 29 printf("Key Name: %8s ", metadataItem->name); 30 printf("Key pType: %2d ", metadataItem->pType);31 30 printf("Key mdType: %2d ", metadataItem->type); 32 31 … … 35 34 printf("Key Value: %17c", ' '); 36 35 break; 37 case PS_META_PRIMITIVE: 38 switch(metadataItem->pType) { 39 case PS_TYPE_BOOL: 40 printf("Key Value: %15d ", metadataItem->data.B); 41 break; 42 case PS_TYPE_S32: 43 printf("Key Value: %15d ", metadataItem->data.S32); 44 break; 45 case PS_TYPE_F32: 46 printf("Key Value: %15.3f ", metadataItem->data.F32); 47 break; 48 case PS_TYPE_F64: 49 printf("Key Value: %15.3f ", metadataItem->data.F64); 50 break; 51 default: 52 printf("Bad type: %d ", metadataItem->pType); 53 } 36 case PS_META_BOOL: 37 printf("Key Value: %15d ", metadataItem->data.B); 38 break; 39 case PS_META_S32: 40 printf("Key Value: %15d ", metadataItem->data.S32); 41 break; 42 case PS_META_F32: 43 printf("Key Value: %15.3f ", metadataItem->data.F32); 44 break; 45 case PS_META_F64: 46 printf("Key Value: %15.3f ", metadataItem->data.F64); 54 47 break; 55 48 case PS_META_STR: … … 76 69 // Test A - Allocate metadata items 77 70 printPositiveTestHeader(stdout, "psMetadata", "Test A - Allocate metadata items"); 78 item1 = psMetadataItemAlloc("myItem1", PS_ TYPE_BOOL, PS_META_PRIMITIVE, "I am a boolean", true);79 item2 = psMetadataItemAlloc("myItem2", PS_ TYPE_S32, PS_META_PRIMITIVE, "I am a signed integer", 111);80 item3 = psMetadataItemAlloc("myItem3", PS_ TYPE_F32, PS_META_PRIMITIVE, "I am a single precision floating point", 222.222);81 item4 = psMetadataItemAlloc("myItem4", PS_ TYPE_F64, PS_META_PRIMITIVE, "I am a double precision floating point", 333.333);82 item5 = psMetadataItemAlloc("myItem5", PS_ TYPE_PTR, PS_META_STR, "I am a string", "HELLO WORLD");71 item1 = psMetadataItemAlloc("myItem1", PS_META_BOOL, "I am a boolean", true); 72 item2 = psMetadataItemAlloc("myItem2", PS_META_S32, "I am a signed integer", 111); 73 item3 = psMetadataItemAlloc("myItem3", PS_META_F32, "I am a single precision floating point", 222.222); 74 item4 = psMetadataItemAlloc("myItem4", PS_META_F64, "I am a double precision floating point", 333.333); 75 item5 = psMetadataItemAlloc("myItem5", PS_META_STR, "I am a string", "HELLO WORLD"); 83 76 printMetadataItem(item1); 84 77 printMetadataItem(item2); … … 93 86 "Null value for name not allowed", 0); 94 87 psLogMsg(__func__,PS_LOG_INFO,"Following should produce error for null name."); 95 badItem = psMetadataItemAlloc(NULL, PS_ TYPE_PTR, PS_META_STR, "I am a string", "HELLO WORLD");88 badItem = psMetadataItemAlloc(NULL, PS_META_STR, "I am a string", "HELLO WORLD"); 96 89 if (badItem != NULL) { 97 90 psError(PS_ERR_UNKNOWN, true,"psMetadataItemAlloc did not return null with null name item."); … … 104 97 printNegativeTestHeader(stdout,"psMetadata", "Test C - Attempt to create metadata item with invalid type", 105 98 "Invalid psMetadataType: 6", 0); 106 badItem = psMetadataItemAlloc("badItem", PS_ TYPE_PTR, PS_META_NTYPE, "I am bad", "Bad comment");99 badItem = psMetadataItemAlloc("badItem", PS_META_NTYPE, "I am bad", "Bad comment"); 107 100 printFooter(stdout, "psMetadata", "Test C - Attempt to create metadata item with invalid type", true); 108 101 -
trunk/psLib/test/collections/tst_psMetadata_03.c
r3264 r3341 18 18 * @author Ross Harman, MHPCC 19 19 * 20 * @version $Revision: 1.1 3$ $Name: not supported by cvs2svn $21 * @date $Date: 2005-02- 17 19:26:24$20 * @version $Revision: 1.14 $ $Name: not supported by cvs2svn $ 21 * @date $Date: 2005-02-28 23:34:10 $ 22 22 * 23 23 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 32 32 { 33 33 printf("Key Name: %8s ", metadataItem->name); 34 printf("Key pType: %2d ", metadataItem->pType);35 34 printf("Key mdType: %2d ", metadataItem->type); 36 35 … … 39 38 printf("Key Value: %17c", ' '); 40 39 break; 41 case PS_META_PRIMITIVE: 42 switch(metadataItem->pType) { 43 case PS_TYPE_BOOL: 44 printf("Key Value: %15d ", metadataItem->data.B); 45 break; 46 case PS_TYPE_S32: 47 printf("Key Value: %15d ", metadataItem->data.S32); 48 break; 49 case PS_TYPE_F32: 50 printf("Key Value: %15.3f ", metadataItem->data.F32); 51 break; 52 case PS_TYPE_F64: 53 printf("Key Value: %15.3f ", metadataItem->data.F64); 54 break; 55 default: 56 printf("Bad type: %d ", metadataItem->pType); 57 } 40 case PS_META_BOOL: 41 printf("Key Value: %15d ", metadataItem->data.B); 42 break; 43 case PS_META_S32: 44 printf("Key Value: %15d ", metadataItem->data.S32); 45 break; 46 case PS_META_F32: 47 printf("Key Value: %15.3f ", metadataItem->data.F32); 48 break; 49 case PS_META_F64: 50 printf("Key Value: %15.3f ", metadataItem->data.F64); 58 51 break; 59 52 case PS_META_STR: … … 83 76 printPositiveTestHeader(stdout, "psMetadata", "Test A - Allocate metadata items"); 84 77 metadata = psMetadataAlloc(); 85 item1 = psMetadataItemAlloc("myItem1", PS_ TYPE_BOOL, PS_META_PRIMITIVE, "I am a boolean", true);86 item2 = psMetadataItemAlloc("myItem2", PS_ TYPE_S32, PS_META_PRIMITIVE, "I am a integer", 55);87 item3 = psMetadataItemAlloc("myItem3", PS_ TYPE_BOOL, PS_META_PRIMITIVE, "I am a boolean", false);88 item4 = psMetadataItemAlloc("myItem4", PS_ TYPE_S32, PS_META_PRIMITIVE, "I am a integer", 66);89 errItem = psMetadataItemAlloc("errItem", PS_ TYPE_S32, PS_META_PRIMITIVE, "I am a integer", 99);78 item1 = psMetadataItemAlloc("myItem1", PS_META_BOOL, "I am a boolean", true); 79 item2 = psMetadataItemAlloc("myItem2", PS_META_S32, "I am a integer", 55); 80 item3 = psMetadataItemAlloc("myItem3", PS_META_BOOL, "I am a boolean", false); 81 item4 = psMetadataItemAlloc("myItem4", PS_META_S32, "I am a integer", 66); 82 errItem = psMetadataItemAlloc("errItem", PS_META_S32, "I am a integer", 99); 90 83 printMetadataItem(item1); 91 84 printMetadataItem(item2); … … 101 94 return 10; 102 95 } 103 if(!psMetadataAdd(metadata,PS_LIST_HEAD,"myItem2", PS_ TYPE_S32, PS_META_PRIMITIVE, "I am S32 integer",77)) {96 if(!psMetadataAdd(metadata,PS_LIST_HEAD,"myItem2", PS_META_S32, "I am S32 integer",77)) { 104 97 psError(PS_ERR_UNKNOWN, true,"psMetadataAddItem did not return true when adding by name."); 105 98 return 11; … … 122 115 return 14; 123 116 } 124 if ( ! psMetadataAdd(metadata,PS_LIST_HEAD,"myItem4", PS_ TYPE_S32, PS_META_PRIMITIVE, "I am S32 integer",88) ) {117 if ( ! psMetadataAdd(metadata,PS_LIST_HEAD,"myItem4", PS_META_S32, "I am S32 integer",88) ) { 125 118 psError(PS_ERR_UNKNOWN, true,"psMetadataAddItem did not return true when adding by index."); 126 119 return 15; … … 217 210 mdTable = errMetadata->table; 218 211 errMetadata->table = NULL; 219 if (psMetadataAdd(errMetadata, PS_LIST_HEAD, "errItem", PS_ TYPE_S32, PS_META_PRIMITIVE, "Integer",22) ) {212 if (psMetadataAdd(errMetadata, PS_LIST_HEAD, "errItem", PS_META_S32, "Integer",22) ) { 220 213 psError(PS_ERR_UNKNOWN, true,"psMetadataAddItem did not return false w/ invalid metadata struct w/o hash table."); 221 214 return 24; -
trunk/psLib/test/collections/tst_psMetadata_04.c
r3264 r3341 23 23 * @author Ross Harman, MHPCC 24 24 * 25 * @version $Revision: 1.1 4$ $Name: not supported by cvs2svn $26 * @date $Date: 2005-02- 17 19:26:24$25 * @version $Revision: 1.15 $ $Name: not supported by cvs2svn $ 26 * @date $Date: 2005-02-28 23:34:10 $ 27 27 * 28 28 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 37 37 { 38 38 printf("Key Name: %8s ", metadataItem->name); 39 printf("Key pType: %2d ", metadataItem->pType);40 39 printf("Key mdType: %2d ", metadataItem->type); 41 40 … … 44 43 printf("Key Value: %17c", ' '); 45 44 break; 46 case PS_META_PRIMITIVE: 47 switch(metadataItem->pType) { 48 case PS_TYPE_BOOL: 49 printf("Key Value: %15d ", metadataItem->data.B); 50 break; 51 case PS_TYPE_S32: 52 printf("Key Value: %15d ", metadataItem->data.S32); 53 break; 54 case PS_TYPE_F32: 55 printf("Key Value: %15.3f ", metadataItem->data.F32); 56 break; 57 case PS_TYPE_F64: 58 printf("Key Value: %15.3f ", metadataItem->data.F64); 59 break; 60 default: 61 printf("Bad type: %d ", metadataItem->pType); 62 } 45 case PS_META_BOOL: 46 printf("Key Value: %15d ", metadataItem->data.B); 47 break; 48 case PS_META_S32: 49 printf("Key Value: %15d ", metadataItem->data.S32); 50 break; 51 case PS_META_F32: 52 printf("Key Value: %15.3f ", metadataItem->data.F32); 53 break; 54 case PS_META_F64: 55 printf("Key Value: %15.3f ", metadataItem->data.F64); 63 56 break; 64 57 case PS_META_STR: … … 91 84 psVector *vec = psVectorAlloc(5, PS_TYPE_S32); 92 85 metadata = psMetadataAlloc(); 93 item1 = psMetadataItemAlloc("myItem1", PS_ TYPE_BOOL, PS_META_PRIMITIVE, "I am a boolean", true);94 item2 = psMetadataItemAlloc("myItem2", PS_ TYPE_S32, PS_META_PRIMITIVE, "I am a integer", 55);95 item3 = psMetadataItemAlloc("myItem3", PS_ TYPE_BOOL, PS_META_PRIMITIVE, "I am a boolean", false);96 item4 = psMetadataItemAlloc("myItem4", PS_ TYPE_S32, PS_META_PRIMITIVE, "I am a integer", 66);97 item5 = psMetadataItemAlloc("myItem5", PS_ TYPE_F64, PS_META_PRIMITIVE, "I am a double", 3.14);98 item6 = psMetadataItemAlloc("myItem6", PS_ TYPE_PTR, PS_META_VEC, "I am a vector", vec);86 item1 = psMetadataItemAlloc("myItem1", PS_META_BOOL, "I am a boolean", true); 87 item2 = psMetadataItemAlloc("myItem2", PS_META_S32, "I am a integer", 55); 88 item3 = psMetadataItemAlloc("myItem3", PS_META_BOOL, "I am a boolean", false); 89 item4 = psMetadataItemAlloc("myItem4", PS_META_S32, "I am a integer", 66); 90 item5 = psMetadataItemAlloc("myItem5", PS_META_F64, "I am a double", 3.14); 91 item6 = psMetadataItemAlloc("myItem6", PS_META_VEC, "I am a vector", vec); 99 92 printMetadataItem(item1); 100 93 printMetadataItem(item2); … … 108 101 psMetadataAddItem(metadata, item5, PS_LIST_HEAD); 109 102 psMetadataAddItem(metadata, item6, PS_LIST_HEAD); 103 psFree(vec); 110 104 printFooter(stdout, "psMetadata", "Test A - Allocate metadata items", true); 111 105 -
trunk/psLib/test/collections/tst_psMetadata_05.c
r3264 r3341 22 22 * @author Ross Harman, MHPCC 23 23 * 24 * @version $Revision: 1. 19$ $Name: not supported by cvs2svn $25 * @date $Date: 2005-02- 17 19:26:24$24 * @version $Revision: 1.20 $ $Name: not supported by cvs2svn $ 25 * @date $Date: 2005-02-28 23:34:10 $ 26 26 * 27 27 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 36 36 { 37 37 printf("Key Name: %8s ", metadataItem->name); 38 printf("Key pType: %2d ", metadataItem->pType);39 38 printf("Key mdType: %2d ", metadataItem->type); 40 39 … … 43 42 printf("Key Value: %17c", ' '); 44 43 break; 45 case PS_META_PRIMITIVE: 46 switch(metadataItem->pType) { 47 case PS_TYPE_BOOL: 48 printf("Key Value: %15d ", metadataItem->data.B); 49 break; 50 case PS_TYPE_S32: 51 printf("Key Value: %15d ", metadataItem->data.S32); 52 break; 53 case PS_TYPE_F32: 54 printf("Key Value: %15.3f ", metadataItem->data.F32); 55 break; 56 case PS_TYPE_F64: 57 printf("Key Value: %15.3f ", metadataItem->data.F64); 58 break; 59 default: 60 printf("Bad type: %d ", metadataItem->pType); 61 } 44 case PS_META_BOOL: 45 printf("Key Value: %15d ", metadataItem->data.B); 46 break; 47 case PS_META_S32: 48 printf("Key Value: %15d ", metadataItem->data.S32); 49 break; 50 case PS_META_F32: 51 printf("Key Value: %15.3f ", metadataItem->data.F32); 52 break; 53 case PS_META_F64: 54 printf("Key Value: %15.3f ", metadataItem->data.F64); 62 55 break; 63 56 case PS_META_STR: … … 87 80 printPositiveTestHeader(stdout, "psMetadata", "Test A - Allocate metadata items"); 88 81 metadata = psMetadataAlloc(); 89 item1 = psMetadataItemAlloc("myItem1", PS_ TYPE_BOOL, PS_META_PRIMITIVE, "I am a boolean", true);90 item2 = psMetadataItemAlloc("myItem2", PS_ TYPE_S32, PS_META_PRIMITIVE, "I am a integer", 55);91 item3 = psMetadataItemAlloc("myItem3", PS_ TYPE_BOOL, PS_META_PRIMITIVE, "I am a boolean", false);92 item4 = psMetadataItemAlloc("myItem4", PS_ TYPE_S32, PS_META_PRIMITIVE, "I am a integer", 66);93 item5 = psMetadataItemAlloc("myItem5", PS_ TYPE_F32, PS_META_PRIMITIVE, "I am a float", 3.14);94 item6 = psMetadataItemAlloc("myItem6", PS_ TYPE_F64, PS_META_PRIMITIVE,"I am a double", 6.28);95 item7 = psMetadataItemAlloc("myItem7", PS_ TYPE_PTR, PS_META_STR, "I am a string", "GNIRTS");82 item1 = psMetadataItemAlloc("myItem1", PS_META_BOOL, "I am a boolean", true); 83 item2 = psMetadataItemAlloc("myItem2", PS_META_S32, "I am a integer", 55); 84 item3 = psMetadataItemAlloc("myItem3", PS_META_BOOL, "I am a boolean", false); 85 item4 = psMetadataItemAlloc("myItem4", PS_META_S32, "I am a integer", 66); 86 item5 = psMetadataItemAlloc("myItem5", PS_META_F32, "I am a float", 3.14); 87 item6 = psMetadataItemAlloc("myItem6", PS_META_F64,"I am a double", 6.28); 88 item7 = psMetadataItemAlloc("myItem7", PS_META_STR, "I am a string", "GNIRTS"); 96 89 // item8 = psMetadataItemAlloc("myItem8", PS_TYPE_PTR, PS_META_UNKNOWN, "I am unknown"); 97 90 printMetadataItem(item1); -
trunk/psLib/test/collections/tst_psMetadata_06.c
r3264 r3341 13 13 * @author Ross Harman, MHPCC 14 14 * 15 * @version $Revision: 1. 9$ $Name: not supported by cvs2svn $16 * @date $Date: 2005-02- 17 19:26:24$15 * @version $Revision: 1.10 $ $Name: not supported by cvs2svn $ 16 * @date $Date: 2005-02-28 23:34:10 $ 17 17 * 18 18 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 27 27 { 28 28 printf("Key Name: %8s ", metadataItem->name); 29 printf("Key pType: %2d ", metadataItem->pType);30 29 printf("Key mdType: %2d ", metadataItem->type); 31 30 … … 34 33 printf("Key Value: %17c", ' '); 35 34 break; 36 case PS_META_PRIMITIVE: 37 switch(metadataItem->pType) { 38 case PS_TYPE_BOOL: 39 printf("Key Value: %15d ", metadataItem->data.B); 40 break; 41 case PS_TYPE_S32: 42 printf("Key Value: %15d ", metadataItem->data.S32); 43 break; 44 case PS_TYPE_F32: 45 printf("Key Value: %15.3f ", metadataItem->data.F32); 46 break; 47 case PS_TYPE_F64: 48 printf("Key Value: %15.3f ", metadataItem->data.F64); 49 break; 50 default: 51 printf("Bad type: %d ", metadataItem->pType); 52 } 35 case PS_META_BOOL: 36 printf("Key Value: %15d ", metadataItem->data.B); 37 break; 38 case PS_META_S32: 39 printf("Key Value: %15d ", metadataItem->data.S32); 40 break; 41 case PS_META_F32: 42 printf("Key Value: %15.3f ", metadataItem->data.F32); 43 break; 44 case PS_META_F64: 45 printf("Key Value: %15.3f ", metadataItem->data.F64); 53 46 break; 54 47 case PS_META_STR: … … 74 67 // Test A - Allocate metadata and items 75 68 printPositiveTestHeader(stdout, "psMetadata", "Test A - Allocate metadata and items"); 76 item1a = psMetadataItemAlloc("myItem1", PS_ TYPE_BOOL, PS_META_PRIMITIVE, "I am a boolean", true);77 item1b = psMetadataItemAlloc("myItem1", PS_ TYPE_S32, PS_META_PRIMITIVE, "I am a signed integer", 111);78 item1c = psMetadataItemAlloc("myItem1", PS_ TYPE_S32, PS_META_PRIMITIVE, "I am a signed integer", 222);79 item2a = psMetadataItemAlloc("myItem2", PS_ TYPE_S32, PS_META_PRIMITIVE, "I am a signed integer", 333);80 item2b = psMetadataItemAlloc("myItem2", PS_ TYPE_PTR, PS_META_LIST, "I am a folder node", NULL);69 item1a = psMetadataItemAlloc("myItem1", PS_META_BOOL, "I am a boolean", true); 70 item1b = psMetadataItemAlloc("myItem1", PS_META_S32, "I am a signed integer", 111); 71 item1c = psMetadataItemAlloc("myItem1", PS_META_S32, "I am a signed integer", 222); 72 item2a = psMetadataItemAlloc("myItem2", PS_META_S32, "I am a signed integer", 333); 73 item2b = psMetadataItemAlloc("myItem2", PS_META_LIST, "I am a folder node", NULL); 81 74 metadata = psMetadataAlloc(); 82 75 printMetadataItem(item1a); -
trunk/psLib/test/collections/tst_psMetadata_07.c
r3264 r3341 9 9 * @author Ross Harman, MHPCC 10 10 * 11 * @version $Revision: 1. 8$ $Name: not supported by cvs2svn $12 * @date $Date: 2005-02- 17 19:26:24$11 * @version $Revision: 1.9 $ $Name: not supported by cvs2svn $ 12 * @date $Date: 2005-02-28 23:34:10 $ 13 13 * 14 14 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 30 30 printf("psMetadataParseConfigXml returned error %d\n", res); 31 31 } 32 32 33 psFree(md); 33 34 printFooter(stdout, "psMetadata", "Test A - Read an XML config file", true); 34 35 35 36 36 // Test B - Free data -
trunk/psLib/test/dataIO/tst_psFits.c
r3298 r3341 6 6 * @author Robert DeSonia, MHPCC 7 7 * 8 * @version $Revision: 1. 19$ $Name: not supported by cvs2svn $9 * @date $Date: 2005-02-2 2 19:25:53$8 * @version $Revision: 1.20 $ $Name: not supported by cvs2svn $ 9 * @date $Date: 2005-02-28 23:34:10 $ 10 10 * 11 11 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 93 93 94 94 psMetadataAdd(header,PS_LIST_TAIL, "MYINT", 95 PS_ TYPE_S32, PS_META_PRIMITIVE,95 PS_META_S32, 96 96 "psS32 Item", (psS32)lcv); 97 97 98 98 psMetadataAdd(header,PS_LIST_TAIL, "MYFLT", 99 PS_ TYPE_F32, PS_META_PRIMITIVE,99 PS_META_F32, 100 100 "psF32 Item", (float)(1.0f/(float)(1+lcv))); 101 101 102 102 psMetadataAdd(header,PS_LIST_TAIL, "MYDBL", 103 PS_ TYPE_F64, PS_META_PRIMITIVE,103 PS_META_F64, 104 104 "psF64 Item", (double)(1.0/(double)(1+lcv))); 105 105 106 106 psMetadataAdd(header,PS_LIST_TAIL, "MYBOOL", 107 PS_ TYPE_BOOL, PS_META_PRIMITIVE,107 PS_META_BOOL, 108 108 "psBool Item", 109 109 (lcv%2 == 0)); 110 110 111 111 psMetadataAdd(header,PS_LIST_TAIL, "MYSTR", 112 PS_ TYPE_PTR, PS_META_STR,112 PS_META_STR, 113 113 "String Item", 114 114 extname); … … 162 162 163 163 psMetadataAdd(header,PS_LIST_TAIL, "MYINT", 164 PS_ TYPE_S32, PS_META_PRIMITIVE,164 PS_META_S32, 165 165 "psS32 Item", (psS32)row); 166 166 167 167 psMetadataAdd(header,PS_LIST_TAIL, "MYFLT", 168 PS_ TYPE_F32, PS_META_PRIMITIVE,168 PS_META_F32, 169 169 "psF32 Item", (float)(1.0f/(float)(1+row))); 170 170 171 171 psMetadataAdd(header,PS_LIST_TAIL, "MYDBL", 172 PS_ TYPE_F64, PS_META_PRIMITIVE,172 PS_META_F64, 173 173 "psF64 Item", (double)(1.0/(double)(1+row))); 174 174 175 175 psMetadataAdd(header,PS_LIST_TAIL, "MYBOOL", 176 PS_ TYPE_BOOL, PS_META_PRIMITIVE,176 PS_META_BOOL, 177 177 "psBool Item", 178 178 (row%2 == 0)); … … 648 648 649 649 if (boolItem == NULL || 650 boolItem->type != PS_META_PRIMITIVE || 651 boolItem->pType != PS_TYPE_BOOL) { 650 boolItem->type != PS_META_BOOL) { 652 651 psError(PS_ERR_UNKNOWN, true, 653 652 "Failed to retrieve psBool metadata item from file."); -
trunk/psLib/test/fileUtils/tst_psFits.c
r3298 r3341 6 6 * @author Robert DeSonia, MHPCC 7 7 * 8 * @version $Revision: 1. 19$ $Name: not supported by cvs2svn $9 * @date $Date: 2005-02-2 2 19:25:53$8 * @version $Revision: 1.20 $ $Name: not supported by cvs2svn $ 9 * @date $Date: 2005-02-28 23:34:10 $ 10 10 * 11 11 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 93 93 94 94 psMetadataAdd(header,PS_LIST_TAIL, "MYINT", 95 PS_ TYPE_S32, PS_META_PRIMITIVE,95 PS_META_S32, 96 96 "psS32 Item", (psS32)lcv); 97 97 98 98 psMetadataAdd(header,PS_LIST_TAIL, "MYFLT", 99 PS_ TYPE_F32, PS_META_PRIMITIVE,99 PS_META_F32, 100 100 "psF32 Item", (float)(1.0f/(float)(1+lcv))); 101 101 102 102 psMetadataAdd(header,PS_LIST_TAIL, "MYDBL", 103 PS_ TYPE_F64, PS_META_PRIMITIVE,103 PS_META_F64, 104 104 "psF64 Item", (double)(1.0/(double)(1+lcv))); 105 105 106 106 psMetadataAdd(header,PS_LIST_TAIL, "MYBOOL", 107 PS_ TYPE_BOOL, PS_META_PRIMITIVE,107 PS_META_BOOL, 108 108 "psBool Item", 109 109 (lcv%2 == 0)); 110 110 111 111 psMetadataAdd(header,PS_LIST_TAIL, "MYSTR", 112 PS_ TYPE_PTR, PS_META_STR,112 PS_META_STR, 113 113 "String Item", 114 114 extname); … … 162 162 163 163 psMetadataAdd(header,PS_LIST_TAIL, "MYINT", 164 PS_ TYPE_S32, PS_META_PRIMITIVE,164 PS_META_S32, 165 165 "psS32 Item", (psS32)row); 166 166 167 167 psMetadataAdd(header,PS_LIST_TAIL, "MYFLT", 168 PS_ TYPE_F32, PS_META_PRIMITIVE,168 PS_META_F32, 169 169 "psF32 Item", (float)(1.0f/(float)(1+row))); 170 170 171 171 psMetadataAdd(header,PS_LIST_TAIL, "MYDBL", 172 PS_ TYPE_F64, PS_META_PRIMITIVE,172 PS_META_F64, 173 173 "psF64 Item", (double)(1.0/(double)(1+row))); 174 174 175 175 psMetadataAdd(header,PS_LIST_TAIL, "MYBOOL", 176 PS_ TYPE_BOOL, PS_META_PRIMITIVE,176 PS_META_BOOL, 177 177 "psBool Item", 178 178 (row%2 == 0)); … … 648 648 649 649 if (boolItem == NULL || 650 boolItem->type != PS_META_PRIMITIVE || 651 boolItem->pType != PS_TYPE_BOOL) { 650 boolItem->type != PS_META_BOOL) { 652 651 psError(PS_ERR_UNKNOWN, true, 653 652 "Failed to retrieve psBool metadata item from file.");
Note:
See TracChangeset
for help on using the changeset viewer.
