Changeset 2973 for trunk/psLib/src/astronomy/psMetadata.c
- Timestamp:
- Jan 13, 2005, 10:48:59 AM (22 years ago)
- File:
-
- 1 edited
-
trunk/psLib/src/astronomy/psMetadata.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/src/astronomy/psMetadata.c
r2971 r2973 12 12 * @author Ross Harman, MHPCC 13 13 * 14 * @version $Revision: 1.4 4$ $Name: not supported by cvs2svn $15 * @date $Date: 2005-01-13 19:50:44$14 * @version $Revision: 1.45 $ $Name: not supported by cvs2svn $ 15 * @date $Date: 2005-01-13 20:48:59 $ 16 16 * 17 17 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii … … 421 421 void* psMetadataLookupPtr(psMetadata *md, const char *key, psU32 *status) 422 422 { 423 void *value = NULL;424 psElemType pType;425 423 psMetadataItem *metadataItem = NULL; 426 424 425 if (status) { 426 *status = 0; 427 } 427 428 428 429 metadataItem = psMetadataLookup(md, key); 429 430 if(metadataItem == NULL) { 430 *status = 1; 431 return value; 432 } 433 434 pType = metadataItem->pType; 435 value = metadataItem->data.V; 436 if(pType != PS_TYPE_PTR) { 437 psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psMetadata_METATYPE_MISMATCH, pType, 431 if (status) { 432 *status = 1; 433 } 434 return NULL; 435 } 436 437 if(metadataItem->type == PS_META_PRIMITIVE && metadataItem->pType != PS_TYPE_PTR) { 438 if (status) { 439 *status = 1; 440 } 441 psError(PS_ERR_BAD_PARAMETER_VALUE, true, 442 PS_ERRORTEXT_psMetadata_METATYPE_MISMATCH, 443 metadataItem->pType, 438 444 PS_TYPE_PTR); 439 } 440 441 return value; 442 } 443 444 psS32 psMetadataLookupS32(psMetadata *md, const char *key, psU32 *status) 445 { 446 psS32 value = 0; 447 psElemType pType; 448 psMetadataItem *metadataItem = NULL; 449 450 451 metadataItem = psMetadataLookup(md, key); 452 if(metadataItem == NULL) { 453 *status = 1; 454 return value; 455 } 456 457 pType = metadataItem->pType; 458 value = metadataItem->data.S32; 459 if(pType != PS_TYPE_S32) { 460 psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psMetadata_METATYPE_MISMATCH, pType, 461 PS_TYPE_S32); 462 } 463 464 return value; 465 } 466 467 psF32 psMetadataLookupF32(psMetadata *md, const char *key, psU32 *status) 468 { 469 psF32 value = 0.0; 470 psElemType pType; 471 psMetadataItem *metadataItem = NULL; 472 473 474 metadataItem = psMetadataLookup(md, key); 475 if(metadataItem == NULL) { 476 *status = 1; 477 return value; 478 } 479 480 pType = metadataItem->pType; 481 value = metadataItem->data.F32; 482 if(pType != PS_TYPE_F32) { 483 psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psMetadata_METATYPE_MISMATCH, pType, 484 PS_TYPE_F32); 485 } 486 487 return value; 488 } 489 490 psF64 psMetadataLookupF64(psMetadata *md, const char *key, psU32 *status) 491 { 492 psF64 value = 0.0; 493 psElemType pType; 494 psMetadataItem *metadataItem = NULL; 495 496 497 metadataItem = psMetadataLookup(md, key); 498 if(metadataItem == NULL) { 499 *status = 1; 500 return value; 501 } 502 503 pType = metadataItem->pType; 504 value = metadataItem->data.F64; 505 if(pType != PS_TYPE_F64) { 506 psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psMetadata_METATYPE_MISMATCH, pType, 507 PS_TYPE_F64); 508 } 509 510 return value; 511 } 445 return NULL; 446 } else { 447 return metadataItem->data.V; 448 } 449 } 450 451 #define psMetadataLookupNumTYPE(TYPE) \ 452 ps##TYPE psMetadataLookup##TYPE(psMetadata *md, const char *key, psU32 *status) \ 453 { \ 454 psMetadataItem *metadataItem = NULL; \ 455 \ 456 if (status) { \ 457 *status = 0; \ 458 } \ 459 \ 460 metadataItem = psMetadataLookup(md, key); \ 461 if(metadataItem == NULL) { \ 462 if (status) { \ 463 *status = 1; \ 464 } \ 465 return 0; \ 466 } \ 467 \ 468 if (metadataItem->type == PS_META_PRIMITIVE) { \ 469 switch (metadataItem->pType) { \ 470 case PS_TYPE_S32: \ 471 return metadataItem->data.S32; \ 472 case PS_TYPE_F32: \ 473 return metadataItem->data.F32; \ 474 case PS_TYPE_F64: \ 475 return metadataItem->data.F64; \ 476 case PS_TYPE_BOOL: \ 477 if (metadataItem->data.B) { \ 478 return 1; \ 479 } \ 480 return 0; \ 481 default: \ 482 break; \ 483 } \ 484 } \ 485 \ 486 /* if you get to this point, the value is not a number. */ \ 487 if (status) { \ 488 *status = 1; \ 489 } \ 490 \ 491 return 0; \ 492 } 493 494 psMetadataLookupNumTYPE(F32) 495 psMetadataLookupNumTYPE(F64) 496 psMetadataLookupNumTYPE(S32) 512 497 513 498 psMetadataItem* psMetadataGet(psMetadata *md, psS32 where)
Note:
See TracChangeset
for help on using the changeset viewer.
