Changeset 7448 for trunk/psLib/src/types
- Timestamp:
- Jun 8, 2006, 3:25:42 PM (20 years ago)
- Location:
- trunk/psLib/src/types
- Files:
-
- 2 edited
-
psMetadata.c (modified) (4 diffs)
-
psMetadata.h (modified) (2 diffs)
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.
Note:
See TracChangeset
for help on using the changeset viewer.
