Changeset 7448
- Timestamp:
- Jun 8, 2006, 3:25:42 PM (20 years ago)
- Location:
- trunk/psLib
- Files:
-
- 6 edited
-
src/types/psMetadata.c (modified) (4 diffs)
-
src/types/psMetadata.h (modified) (2 diffs)
-
test/types/tst_psArguments.c (modified) (2 diffs)
-
test/types/tst_psMetadata_01.c (modified) (3 diffs)
-
test/types/verified/tst_psArguments.stdout (modified) (1 diff)
-
test/types/verified/tst_psMetadata_01.stdout (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/src/types/psMetadata.c
r7380 r7448 12 12 * @author Ross Harman, MHPCC 13 13 * 14 * @version $Revision: 1.10 8$ $Name: not supported by cvs2svn $15 * @date $Date: 2006-06-0 7 03:22:06$14 * @version $Revision: 1.109 $ $Name: not supported by cvs2svn $ 15 * @date $Date: 2006-06-09 01:25:42 $ 16 16 * 17 17 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 21 21 /* INCLUDE FILES */ 22 22 /******************************************************************************/ 23 #include <stdio.h>24 #include <stdarg.h>25 #include <string.h>23 #include <stdio.h> 24 #include <stdarg.h> 25 #include <string.h> 26 26 27 27 #include "fitsio.h" … … 1096 1096 1097 1097 1098 void psMetadataPrint(psMetadata *md, 1098 void psMetadataPrint(FILE *fd, 1099 psMetadata *md, 1099 1100 int level) 1100 1101 { 1101 1102 PS_ASSERT_PTR_NON_NULL(md,); 1103 if (fd == NULL) { 1104 fd = stdout; 1105 } else { 1106 if ( fprintf(fd, "\n") < 0 ) { 1107 psError(PS_ERR_IO, true, 1108 "Invalid file pointer in psMetadataPrint. Could not write to fd.\n"); 1109 return; 1110 } 1111 } 1102 1112 psMetadataIterator *iter = psMetadataIteratorAlloc(md, PS_LIST_HEAD, NULL); // Iterator 1103 1113 psMetadataItem *item = NULL; // Item from metadata … … 1105 1115 // Indent... 1106 1116 for (int i = 0; i < level; i++) { 1107 printf("");1108 } 1109 printf("%s", item->name);1117 fprintf(fd, " "); 1118 } 1119 fprintf(fd, "%s", item->name); 1110 1120 if (item->comment && strlen(item->comment) > 0) { 1111 printf(" (%s)", item->comment);1112 } 1113 printf(": ");1121 fprintf(fd, " (%s)", item->comment); 1122 } 1123 fprintf(fd, ": "); 1114 1124 switch (item->type) { 1115 1125 case PS_DATA_STRING: 1116 printf("%s", (char*)(item->data.V));1126 fprintf(fd, "%s", (char*)(item->data.V)); 1117 1127 break; 1118 1128 case PS_DATA_BOOL: 1119 1129 if (item->data.B) { 1120 printf("True");1130 fprintf(fd, "True"); 1121 1131 } else { 1122 printf("False");1132 fprintf(fd, "False"); 1123 1133 } 1124 1134 break; 1125 1135 case PS_DATA_S8: 1126 printf("%d", item->data.S8);1136 fprintf(fd, "%d", item->data.S8); 1127 1137 break; 1128 1138 case PS_DATA_S16: 1129 printf("%d", item->data.S16);1139 fprintf(fd, "%d", item->data.S16); 1130 1140 break; 1131 1141 case PS_DATA_S32: 1132 printf("%d", item->data.S32);1142 fprintf(fd, "%d", item->data.S32); 1133 1143 break; 1134 1144 case PS_DATA_U8: 1135 printf("%u", item->data.U8);1145 fprintf(fd, "%u", item->data.U8); 1136 1146 break; 1137 1147 case PS_DATA_U16: 1138 printf("%u", item->data.U16);1148 fprintf(fd, "%u", item->data.U16); 1139 1149 break; 1140 1150 case PS_DATA_U32: 1141 printf("%u", item->data.U32);1151 fprintf(fd, "%u", item->data.U32); 1142 1152 break; 1143 1153 case PS_DATA_F32: 1144 printf("%f", item->data.F32);1154 fprintf(fd, "%f", item->data.F32); 1145 1155 break; 1146 1156 case PS_DATA_F64: 1147 printf("%f", item->data.F64);1157 fprintf(fd, "%f", item->data.F64); 1148 1158 break; 1149 1159 case PS_DATA_METADATA: 1150 printf("\n"); 1151 psMetadataPrint(item->data.V, level + 1); 1160 // fprintf(fd, "\n"); 1161 psMetadataPrint(fd, item->data.V, level + 1); 1162 for (int i = 0; i < level; i++) { 1163 fprintf(fd, " "); 1164 } 1165 fprintf(fd, "%s -- END\n", item->name); 1152 1166 break; 1153 1167 case PS_DATA_REGION: { 1154 1168 psString region = psRegionToString(*(psRegion*)item->data.V); 1155 printf("%s", region);1169 fprintf(fd, "%s", region); 1156 1170 psFree(region); 1157 1171 break; 1158 1172 } 1159 1173 case PS_DATA_LIST: 1160 printf("<a list of unknown contents>");1174 fprintf(fd, "<a list of unknown contents>"); 1161 1175 break; 1162 1176 case PS_DATA_TIME: { 1163 1177 psString time = psTimeToISO(item->data.V); 1164 printf("%s", time);1178 fprintf(fd, "%s", time); 1165 1179 psFree(time); 1166 1180 break; 1167 1181 } 1182 case PS_DATA_VECTOR: { 1183 psVector *vector = item->data.V; 1184 switch (vector->type.type) { 1185 case PS_DATA_U8: 1186 fprintf(fd, "U8 "); 1187 for (int i = 0; i < vector->n; i++) { 1188 fprintf(fd, "%u ", vector->data.U8[i]); 1189 } 1190 break; 1191 case PS_DATA_U16: 1192 fprintf(fd, "U16 "); 1193 for (int i = 0; i < vector->n; i++) { 1194 fprintf(fd, "%u ", vector->data.U16[i]); 1195 } 1196 break; 1197 case PS_DATA_U32: 1198 fprintf(fd, "U32 "); 1199 for (int i = 0; i < vector->n; i++) { 1200 fprintf(fd, "%u ", vector->data.U32[i]); 1201 } 1202 break; 1203 /* case PS_DATA_U64: 1204 fprintf(fd, "U64 "); 1205 for (int i = 0; i < vector->n; i++) { 1206 fprintf(fd, "%u ", vector->data.U64[i]); 1207 } 1208 break; 1209 */ 1210 case PS_DATA_S8: 1211 fprintf(fd, "S8 "); 1212 for (int i = 0; i < vector->n; i++) { 1213 fprintf(fd, "%d ", vector->data.S8[i]); 1214 } 1215 break; 1216 case PS_DATA_S16: 1217 fprintf(fd, "S16 "); 1218 for (int i = 0; i < vector->n; i++) { 1219 fprintf(fd, "%d ", vector->data.S16[i]); 1220 } 1221 break; 1222 case PS_DATA_S32: 1223 fprintf(fd, "S32 "); 1224 for (int i = 0; i < vector->n; i++) { 1225 fprintf(fd, "%d ", vector->data.S32[i]); 1226 } 1227 break; 1228 /* case PS_DATA_S64: 1229 fprintf(fd, "S64 "); 1230 for (int i = 0; i < vector->n; i++) { 1231 fprintf(fd, "%ld ", vector->data.S64[i]); 1232 } 1233 break; 1234 */ 1235 case PS_DATA_F32: 1236 fprintf(fd, "F32 "); 1237 for (int i = 0; i < vector->n; i++) { 1238 fprintf(fd, "%f ", vector->data.F32[i]); 1239 } 1240 break; 1241 case PS_DATA_F64: 1242 fprintf(fd, "F64 "); 1243 for (int i = 0; i < vector->n; i++) { 1244 fprintf(fd, "%f ", vector->data.F64[i]); 1245 } 1246 break; 1247 case PS_DATA_UNKNOWN: 1248 default: 1249 psError(PS_ERR_BAD_PARAMETER_VALUE, true, 1250 PS_ERRORTEXT_psMetadata_METATYPE_INVALID, vector->type.type); 1251 return; 1252 } 1253 break; 1254 } 1168 1255 default: 1169 printf("\n");1256 fprintf(fd, "\n"); 1170 1257 psError(PS_ERR_IO, false, "Non-printable metadata type: %x\n", item->type); 1171 1258 } 1172 printf("\n");1259 fprintf(fd, "\n"); 1173 1260 } 1174 1261 psFree(iter); -
trunk/psLib/src/types/psMetadata.h
r7380 r7448 11 11 * @author Ross Harman, MHPCC 12 12 * 13 * @version $Revision: 1.7 7$ $Name: not supported by cvs2svn $14 * @date $Date: 2006-06-0 7 03:22:06$13 * @version $Revision: 1.78 $ $Name: not supported by cvs2svn $ 14 * @date $Date: 2006-06-09 01:25:42 $ 15 15 * 16 16 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 947 947 ); 948 948 949 /** Print metadata collection to screen */ 949 /** Prints metadata collection. 950 * 951 * Metadata contents are printed to a valid file descriptor if one exists. Otherwise, 952 * fd should be NULL and the contents are printed to the screen (stdout). 953 */ 950 954 void psMetadataPrint( 955 FILE *fd, ///< File Descriptor or NULL 951 956 psMetadata *md, ///< Metadata collection to print. 952 957 int level ///< the level of metadata items. -
trunk/psLib/test/types/tst_psArguments.c
r7202 r7448 5 5 * @author David Robbins, MHPCC 6 6 * 7 * @version $Revision: 1. 2$ $Name: not supported by cvs2svn $8 * @date $Date: 2006-0 5-25 03:51:51$7 * @version $Revision: 1.3 $ $Name: not supported by cvs2svn $ 8 * @date $Date: 2006-06-09 01:25:42 $ 9 9 * 10 10 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 74 74 } 75 75 76 psMetadataPrint( args, 4);76 psMetadataPrint(NULL, args, 4); 77 77 78 78 psFree(args); -
trunk/psLib/test/types/tst_psMetadata_01.c
r7377 r7448 5 5 * @author dRob, MHPCC 6 6 * 7 * @version $Revision: 1. 6$ $Name: not supported by cvs2svn $8 * @date $Date: 2006-06-0 7 01:39:17$7 * @version $Revision: 1.7 $ $Name: not supported by cvs2svn $ 8 * @date $Date: 2006-06-09 01:25:42 $ 9 9 * 10 10 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 31 31 return ( !runTestSuite(stderr,"psMetadata_01",tests,argc,argv) ); 32 32 33 }34 35 static psMetadata *setupMeta(void)36 {37 psMetadata *md = NULL;38 md = psMetadataAlloc();39 40 psMetadataAddBool(md, PS_LIST_TAIL, "item1", 0, "I am a boolean", true);41 psMetadataAddS32(md, PS_LIST_TAIL, "item2", 0, "I am a integer", 55);42 psMetadataAddF32(md, PS_LIST_TAIL, "item3", 0, "I am a float", 3.14);43 psMetadataAddF64(md, PS_LIST_TAIL, "item4", 0, "I am a double", 6.28);44 psMetadataAddStr(md, PS_LIST_TAIL, "item5", 0, "I am a string", "GNIRTS");45 46 return md;47 33 } 48 34 … … 110 96 } 111 97 98 static psMetadata *setupMeta2(void) 99 { 100 psMetadata *md = NULL; 101 psVector *vec = NULL; 102 psMetadata *newMD = NULL; 103 psTime *time; 104 int i = 0; 105 md = psMetadataAlloc(); 106 newMD = psMetadataAlloc(); 107 vec = psVectorAlloc(60, PS_DATA_S32); 108 time = psTimeAlloc(PS_TIME_TAI); 109 for (i = 0; i < 5; i++) { 110 vec->data.S32[i] = i+1; 111 } 112 vec->n = 5; 113 time->sec = 1000; 114 time->nsec = 25; 115 time->leapsecond = true; 116 psMetadataAddBool(md, PS_LIST_TAIL, "item1", 0, "I am a boolean", true); 117 psMetadataAddS32(md, PS_LIST_TAIL, "item2", 0, "I am a integer", 55); 118 psMetadataAddF32(md, PS_LIST_TAIL, "item3", 0, NULL, 3.14); 119 psMetadataAddF64(md, PS_LIST_TAIL, "item4", 0, "", 6.28); 120 psMetadataAddStr(md, PS_LIST_TAIL, "item5", 0, "I am a string", "GNIRTS"); 121 psMetadataAddVector(md, PS_LIST_TAIL, "vector6", 0, "I am a vector", vec); 122 psMetadataAddTime(md, PS_LIST_TAIL, "time01", 0, "I am time", time); 123 psMetadataAddS8(md, PS_LIST_TAIL, "item6", 0, "I am S8", 6); 124 psMetadataAddS16(md, PS_LIST_TAIL, "item7", 0, "I am S16", -666); 125 psMetadataAddU8(md, PS_LIST_TAIL, "item8", 0, "I am U8", 6); 126 psMetadataAddU16(md, PS_LIST_TAIL, "item9", 0, "I am U16", 666); 127 psMetadataAddU32(md, PS_LIST_TAIL, "item10", 0, "I am U32", 666); 128 129 psMetadataAddS32(newMD, PS_LIST_TAIL, "ITEM01", 0, NULL, 666); 130 psMetadata *newestMD = NULL; 131 newestMD = psMetadataAlloc(); 132 psMetadataAddVector(newestMD, PS_LIST_TAIL, "VECTORNEW", 0, "Newest VECTOR", vec); 133 psMetadataAddStr(newestMD, PS_LIST_TAIL, "cell", 0, "I am a p-Star", "pStArRs"); 134 psMetadataAddMetadata(newMD, PS_LIST_TAIL, "META NEW", 0, "I AM Newest METADATA", newestMD); 135 psMetadataAddF32(newMD, PS_LIST_TAIL, "ITEM02", 0, "I AM FLOAT", 666.6); 136 psMetadataAddF64(newMD, PS_LIST_TAIL, "ITEM03", 0, "I AM DOUBLE", 666.666); 137 138 psMetadataAddMetadata(md, PS_LIST_TAIL, "metadata7", 0, "I am a metadata", newMD); 139 psFree(time); 140 psFree(newestMD); 141 psFree(vec); 142 psFree(newMD); 143 return md; 144 } 145 112 146 psS32 testMetadataPrint(void) 113 147 { 114 148 psMetadata *meta = NULL; 115 meta = setupMeta ();116 psMetadataPrint( meta, 0);149 meta = setupMeta2(); 150 psMetadataPrint(NULL, meta, 0); 117 151 psFree(meta); 118 152 return 0; -
trunk/psLib/test/types/verified/tst_psArguments.stdout
r7223 r7448 10 10 -int (1) Int1 11 11 (2) Int2 12 -string (Test String): new 13 -float (Test Float): 0.000000 14 -int (Integers): 15 int1 (Int1): 1 16 int2 (Int2): 2 12 -string (Test String): new 13 -float (Test Float): 0.000000 14 -int (Integers): 15 int1 (Int1): 1 16 int2 (Int2): 2 17 -int -- END 17 18 -
trunk/psLib/test/types/verified/tst_psMetadata_01.stdout
r7377 r7448 1 1 item1 (I am a boolean): True 2 2 item2 (I am a integer): 55 3 item3 (I am a float): 3.1400004 item4 (I am a double): 6.2800003 item3: 3.140000 4 item4: 6.280000 5 5 item5 (I am a string): GNIRTS 6 vector6 (I am a vector): S32 1 2 3 4 5 7 time01 (I am time): 1970-01-01T<DATE>.0Z 8 item6 (I am S8): 6 9 item7 (I am S16): -666 10 item8 (I am U8): 6 11 item9 (I am U16): 666 12 item10 (I am U32): 666 13 metadata7 (I am a metadata): 14 ITEM01: 666 15 META NEW (I AM Newest METADATA): 16 VECTORNEW (Newest VECTOR): S32 1 2 3 4 5 17 cell (I am a p-Star): pStArRs 18 META NEW -- END 19 20 ITEM02 (I AM FLOAT): 666.599976 21 ITEM03 (I AM DOUBLE): 666.666000 22 metadata7 -- END 23
Note:
See TracChangeset
for help on using the changeset viewer.
