Changeset 12283
- Timestamp:
- Mar 6, 2007, 11:58:47 AM (19 years ago)
- Location:
- trunk/psLib/src/types
- Files:
-
- 2 edited
-
psMetadata.c (modified) (22 diffs)
-
psMetadata.h (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/src/types/psMetadata.c
r11724 r12283 12 12 * @author Ross Harman, MHPCC 13 13 * 14 * @version $Revision: 1.15 2$ $Name: not supported by cvs2svn $15 * @date $Date: 2007-0 2-09 01:26:00$14 * @version $Revision: 1.153 $ $Name: not supported by cvs2svn $ 15 * @date $Date: 2007-03-06 21:58:47 $ 16 16 * 17 17 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 207 207 va_list argPtr) 208 208 { 209 psMetadataItem* metadataItem = NULL; 210 211 212 PS_ASSERT_PTR_NON_NULL(name,NULL); 209 PS_ASSERT_STRING_NON_EMPTY(name, NULL); 210 PS_ASSERT_INT_POSITIVE(type, NULL); 213 211 214 212 // Allocate metadata item 215 metadataItem = (psMetadataItem*) p_psAlloc(file, lineno, func, sizeof(psMetadataItem));213 psMetadataItem *metadataItem = (psMetadataItem*) p_psAlloc(file, lineno, func, sizeof(psMetadataItem)); 216 214 metadataItem->data.V = NULL; 217 215 … … 360 358 const psMetadataItem *in) 361 359 { 362 PS_ASSERT_ PTR_NON_NULL(in,NULL);360 PS_ASSERT_METADATA_ITEM_NON_NULL(in,NULL); 363 361 364 362 psMetadataItem *newItem = NULL; // New metadata item, to be returned … … 437 435 const psMetadata *in) 438 436 { 439 440 if (in == NULL) { 441 psError(PS_ERR_BAD_PARAMETER_NULL, true, "psMetadataCopy: 'in' cannot be NULL"); 442 return NULL; 443 } 444 445 // PS_ASSERT_PTR_NON_NULL(in->list,NULL); 446 if (in->list == NULL) { 447 psError(PS_ERR_BAD_PARAMETER_NULL, true, "psMetadataCopy: 'in' has NULL list"); 448 return NULL; 449 } 437 PS_ASSERT_METADATA_NON_NULL(in, NULL); 438 450 439 bool errorOccurred = false; 451 440 bool outAlloced = false; … … 524 513 psMetadataItem *existingEntry = NULL; 525 514 526 PS_ASSERT_PTR_NON_NULL(md,false); 527 PS_ASSERT_PTR_NON_NULL(md->hash,false); 528 PS_ASSERT_PTR_NON_NULL(md->list,false); 529 PS_ASSERT_PTR_NON_NULL(item,false); 530 PS_ASSERT_PTR_NON_NULL(item->name,false); 515 PS_ASSERT_METADATA_NON_NULL(md,false); 516 PS_ASSERT_METADATA_ITEM_NON_NULL(item,false); 531 517 532 518 mdTable = md->hash; … … 642 628 const char *comment,...) 643 629 { 644 PS_ASSERT_ PTR_NON_NULL(md,false);645 PS_ASSERT_PTR_NON_NULL(md->list,false); 630 PS_ASSERT_METADATA_NON_NULL(md, false); 631 646 632 va_list argPtr; 647 648 633 va_start(argPtr, comment); 649 634 bool result = psMetadataAddV(md,location,name,format,comment,argPtr); … … 660 645 va_list list) 661 646 { 662 PS_ASSERT_PTR_NON_NULL(md,false); 663 PS_ASSERT_PTR_NON_NULL(md->list,false); 664 psMetadataItem* metadataItem = NULL; 665 666 metadataItem = psMetadataItemAllocV(name, format & PS_METADATA_TYPE_MASK, comment, list); 647 PS_ASSERT_METADATA_NON_NULL(md,false); 648 649 psMetadataItem* metadataItem = psMetadataItemAllocV(name, format & PS_METADATA_TYPE_MASK, comment, list); 667 650 668 651 if (!psMetadataAddItem(md, metadataItem, location, format & PS_METADATA_FLAGS_MASK)) { … … 717 700 const char *key) 718 701 { 719 PS_ASSERT_ PTR_NON_NULL(md, false);720 721 PS_ASSERT_PTR_NON_NULL(md->list, false); 702 PS_ASSERT_METADATA_NON_NULL(md, false); 703 PS_ASSERT_STRING_NON_EMPTY(key, false); 704 722 705 psList* mdList = md->list; 723 724 PS_ASSERT_PTR_NON_NULL(md->hash,false);725 706 psHash* mdTable = md->hash; 726 727 PS_ASSERT_PTR_NON_NULL(key, false);728 PS_ASSERT_INT_POSITIVE(strlen(key), false);729 707 730 708 psMetadataItem* entry = psHashLookup(mdTable,key); … … 757 735 long location) 758 736 { 759 PS_ASSERT_PTR_NON_NULL(md, false); 760 761 PS_ASSERT_PTR_NON_NULL(md->list, false); 737 PS_ASSERT_METADATA_NON_NULL(md, false); 738 762 739 psList* mdList = md->list; 763 764 PS_ASSERT_PTR_NON_NULL(md->hash,false);765 740 psHash* mdTable = md->hash; 766 741 … … 802 777 const char *key) 803 778 { 804 psHash* mdTable = NULL; 805 psMetadataItem* entry = NULL; 806 807 808 PS_ASSERT_PTR_NON_NULL(md,NULL); 809 PS_ASSERT_PTR_NON_NULL(md->hash,NULL); 810 PS_ASSERT_PTR_NON_NULL(key,NULL); 811 812 mdTable = md->hash; 813 entry = (psMetadataItem*)psHashLookup(mdTable, key); 814 815 return entry; 779 PS_ASSERT_METADATA_NON_NULL(md,NULL); 780 PS_ASSERT_STRING_NON_EMPTY(key,NULL); 781 782 return (psMetadataItem*)psHashLookup(md->hash, key); 816 783 } 817 784 … … 820 787 const char *key) 821 788 { 822 PS_ASSERT_PTR_NON_NULL(md,NULL); 823 PS_ASSERT_PTR_NON_NULL(md->list,NULL); 824 psMetadataItem *metadataItem = NULL; 789 PS_ASSERT_METADATA_NON_NULL(md,NULL); 825 790 826 791 if (status) { … … 828 793 } 829 794 830 metadataItem = psMetadataLookup(md, key);831 if (metadataItem == NULL) {795 psMetadataItem *metadataItem = psMetadataLookup(md, key); 796 if (metadataItem == NULL) { 832 797 if (status) { 833 798 *status = false; … … 944 909 psMetadataItem* entry = NULL; 945 910 946 PS_ASSERT_PTR_NON_NULL(md,NULL); 947 PS_ASSERT_PTR_NON_NULL(md->list,NULL); 911 PS_ASSERT_METADATA_NON_NULL(md,NULL); 948 912 949 913 entry = (psMetadataItem*) psListGet(md->list, location); … … 964 928 const char* regex) 965 929 { 966 PS_ASSERT_PTR_NON_NULL(md,NULL); 967 PS_ASSERT_PTR_NON_NULL(md->list,NULL); 930 PS_ASSERT_METADATA_NON_NULL(md,NULL); 968 931 969 932 psMetadataIterator* newIter = p_psAlloc(file, lineno, func, sizeof(psMetadataIterator)); … … 999 962 long location) 1000 963 { 1001 PS_ASSERT_ PTR_NON_NULL(iterator, NULL);964 PS_ASSERT_METADATA_ITERATOR_NON_NULL(iterator, NULL); 1002 965 psListIterator *listIter = iterator->iter; 1003 PS_ASSERT_PTR_NON_NULL(listIter, NULL);1004 966 1005 967 regex_t *regex = iterator->regex; … … 1050 1012 psMetadataItem* psMetadataGetAndIncrement(psMetadataIterator* iterator) 1051 1013 { 1052 PS_ASSERT_ PTR_NON_NULL(iterator,NULL);1014 PS_ASSERT_METADATA_ITERATOR_NON_NULL(iterator,NULL); 1053 1015 psListIterator* listIter = iterator->iter; 1054 PS_ASSERT_PTR_NON_NULL(listIter,NULL);1055 1056 1016 regex_t* regex = iterator->regex; 1057 1017 … … 1074 1034 psMetadataItem* psMetadataGetAndDecrement(psMetadataIterator* iterator) 1075 1035 { 1076 PS_ASSERT_ PTR_NON_NULL(iterator, NULL);1036 PS_ASSERT_METADATA_ITERATOR_NON_NULL(iterator, NULL); 1077 1037 psListIterator* listIter = iterator->iter; 1078 PS_ASSERT_PTR_NON_NULL(listIter, NULL);1079 1080 1038 regex_t* regex = iterator->regex; 1081 1039 … … 1100 1058 const char *key) 1101 1059 { 1102 PS_ASSERT_PTR_NON_NULL(md,NULL); 1103 PS_ASSERT_PTR_NON_NULL(md->list,NULL); 1060 PS_ASSERT_METADATA_NON_NULL(md,NULL); 1104 1061 psMetadataItem *item = psMetadataLookup((psMetadata*)md, key); // The metadata with instruments 1105 1062 psMetadata *value = NULL; // The value to return … … 1133 1090 const char *key) 1134 1091 { 1135 PS_ASSERT_PTR_NON_NULL(md,NULL); 1136 PS_ASSERT_PTR_NON_NULL(md->list,NULL); 1092 PS_ASSERT_METADATA_NON_NULL(md,NULL); 1137 1093 1138 1094 psMetadataItem *item = psMetadataLookup((psMetadata*)md, key); … … 1170 1126 const char *key) 1171 1127 { 1172 PS_ASSERT_ PTR_NON_NULL(md,NULL);1173 PS_ASSERT_PTR_NON_NULL(md->list,NULL); 1128 PS_ASSERT_METADATA_NON_NULL(md,NULL); 1129 1174 1130 psMetadataItem *item = psMetadataLookup((psMetadata*)md, key); // The metadata with instruments 1175 1131 // char *value = NULL; // The value to return … … 1200 1156 } 1201 1157 1158 psList *psMetadataKeys(psMetadata *md) 1159 { 1160 PS_ASSERT_METADATA_NON_NULL(md, NULL); 1161 1162 psList *list = psListAlloc(NULL); // List with the keys 1163 psMetadataIterator *iter = psMetadataIteratorAlloc(md, PS_LIST_HEAD, false); 1164 psMetadataItem *item; // Item from iteration 1165 while ((item = psMetadataGetAndIncrement(iter))) { 1166 psListAdd(list, PS_LIST_TAIL, item->name); 1167 } 1168 return list; 1169 } 1170 1202 1171 1203 1172 bool psMetadataPrint(FILE *fd, … … 1205 1174 int level) 1206 1175 { 1207 PS_ASSERT_ PTR_NON_NULL(md,false);1176 PS_ASSERT_METADATA_NON_NULL(md,false); 1208 1177 if (fd == NULL) { 1209 1178 fd = stdout; -
trunk/psLib/src/types/psMetadata.h
r11724 r12283 9 9 * @author Ross Harman, MHPCC 10 10 * 11 * @version $Revision: 1.9 8$ $Name: not supported by cvs2svn $12 * @date $Date: 2007-0 2-09 01:26:00$11 * @version $Revision: 1.99 $ $Name: not supported by cvs2svn $ 12 * @date $Date: 2007-03-06 21:58:47 $ 13 13 * 14 14 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 1189 1189 ); 1190 1190 1191 /// Return a list of keys for a metadata 1192 psList *psMetadataKeys(psMetadata *md ///< Metadata for which to return keys 1193 ); 1191 1194 1192 1195 /** Prints metadata collection. … … 1202 1205 int level ///< the level of metadata items. 1203 1206 ); 1204 1205 1206 1207 1207 1208 /// Assert on metadata with extant hash and list components … … 1214 1215 } 1215 1216 1217 /// Assert on metadata item with extant name and type 1218 /// 1219 /// The data contained within the metadata item is permitted to be NULL. 1220 #define PS_ASSERT_METADATA_ITEM_NON_NULL(NAME, RVAL) \ 1221 if (!(NAME) || !(NAME)->name || !(NAME)->type) { \ 1222 psError(PS_ERR_BAD_PARAMETER_VALUE, true, \ 1223 "Error: Metadata item %s or its name or type is NULL.", \ 1224 #NAME); \ 1225 return RVAL; \ 1226 } 1227 1228 #define PS_ASSERT_METADATA_ITERATOR_NON_NULL(NAME, RVAL) \ 1229 if (!(NAME) || !(NAME)->iter) { \ 1230 psError(PS_ERR_BAD_PARAMETER_VALUE, true, \ 1231 "Error: Metadata iterator %s or its component is NULL.", \ 1232 #NAME); \ 1233 return RVAL; \ 1234 } 1235 1216 1236 /// @} 1217 1237 #endif // #ifndef PS_METADATA_H
Note:
See TracChangeset
for help on using the changeset viewer.
