Changeset 2365
- Timestamp:
- Nov 15, 2004, 10:15:30 AM (22 years ago)
- Location:
- trunk/psLib/src
- Files:
-
- 2 edited
-
astro/psTime.c (modified) (7 diffs)
-
astronomy/psTime.c (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/src/astro/psTime.c
r2318 r2365 10 10 * @author Ross Harman, MHPCC 11 11 * 12 * @version $Revision: 1.4 2$ $Name: not supported by cvs2svn $13 * @date $Date: 2004-11-1 0 18:27:03$12 * @version $Revision: 1.43 $ $Name: not supported by cvs2svn $ 13 * @date $Date: 2004-11-15 20:15:30 $ 14 14 * 15 15 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii … … 209 209 } 210 210 211 // Get path to time data files212 metadataItem = psMetadataLookup(timeMetadata, "psLib.time.tables.dir");213 if(metadataItem == NULL) {214 psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_LOOKUP_METADATA_FAILED,215 "psLib.time.tables.dir");216 return false;217 }218 tableDir = psStringCopy(metadataItem->data.V);219 220 211 // Get number of tables 221 212 metadataItem = psMetadataLookup(timeMetadata, "psLib.time.tables.n"); … … 227 218 numTables = (psS32)metadataItem->data.S32; 228 219 229 // Table file names230 metadataItem = psMetadataLookup(timeMetadata, "psLib.time.tables.files");231 if(metadataItem == NULL) {232 psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_LOOKUP_METADATA_FAILED,233 "psLib.time.tables.files");234 return false;235 }236 tableNames = psStringCopy(metadataItem->data.V);237 238 220 // Get lower range of tables 239 221 metadataItem = psMetadataLookup(timeMetadata, "psLib.time.tables.from"); … … 245 227 tablesFrom = psVectorCopy(tablesFrom, metadataItem->data.V, PS_TYPE_F64); 246 228 if(tablesFrom->n != numTables) { 229 psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_BAD_VECTOR, tablesFrom->n, numTables); 230 psFree(tablesFrom); 247 231 return false; 248 232 } … … 258 242 if(tablesTo->n != numTables) { 259 243 psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_BAD_VECTOR, tablesTo->n, numTables); 244 psFree(tablesFrom); 245 psFree(tablesTo); 260 246 return false; 261 247 } 248 249 // Get path to time data files 250 metadataItem = psMetadataLookup(timeMetadata, "psLib.time.tables.dir"); 251 if(metadataItem == NULL) { 252 psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_LOOKUP_METADATA_FAILED, 253 "psLib.time.tables.dir"); 254 psFree(tablesFrom); 255 psFree(tablesTo); 256 return false; 257 } 258 tableDir = psStringCopy(metadataItem->data.V); 259 260 // Table file names 261 metadataItem = psMetadataLookup(timeMetadata, "psLib.time.tables.files"); 262 if(metadataItem == NULL) { 263 psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_LOOKUP_METADATA_FAILED, 264 "psLib.time.tables.files"); 265 266 psFree(tablesFrom); 267 psFree(tablesTo); 268 psFree(tableDir); 269 return false; 270 } 271 tableNames = psStringCopy(metadataItem->data.V); 262 272 263 273 // Read time tables 264 274 namesPtr = tableNames; 265 275 while((tableName=getToken(&namesPtr, " ", &status)) != NULL) { 266 fullTableName = (char*)psAlloc(strlen(tableDir)+strlen(tableName)+1+1); // Add one for last dir "/" 267 fullTableName[0]='\0'; // Old strings may come back from psAlloc, so set init pos to EOL 276 277 // Form path with table name, adding one to length for last '/' that may not occur in string in cong file 278 fullTableName = (char*)psAlloc(strlen(tableDir)+strlen(tableName)+1+1); 279 280 // Old strings may come back from psAlloc(), so set initial position to EOL 281 fullTableName[0]='\0'; 268 282 strcat(fullTableName, tableDir); 269 283 strcat(fullTableName, "/"); 270 284 strcat(fullTableName, tableName); 271 285 286 // Create and read table 272 287 if(i < numTables) { 273 288 table = psLookupTableAlloc(fullTableName, tablesFrom->data.F64[i], tablesTo->data.F64[i]); 274 psLookupTableRead(table);289 table = psLookupTableRead(table); 275 290 } else { 276 291 psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_BAD_TABLE_COUNT, i+1, numTables); … … 295 310 } 296 311 297 if(numTables > i+1) {298 psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_BAD_TABLE_COUNT, i +1, numTables);312 if(numTables != i) { 313 psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_BAD_TABLE_COUNT, i, numTables); 299 314 } 300 315 … … 309 324 bool psTimeFinalize(void) 310 325 { 311 bool result = false;312 313 314 326 if(timeMetadata != NULL) { 315 327 psFree(timeMetadata); 316 result = true;317 } 318 319 return result;328 timeMetadata = NULL; 329 } 330 331 return true; 320 332 } 321 333 -
trunk/psLib/src/astronomy/psTime.c
r2318 r2365 10 10 * @author Ross Harman, MHPCC 11 11 * 12 * @version $Revision: 1.4 2$ $Name: not supported by cvs2svn $13 * @date $Date: 2004-11-1 0 18:27:03$12 * @version $Revision: 1.43 $ $Name: not supported by cvs2svn $ 13 * @date $Date: 2004-11-15 20:15:30 $ 14 14 * 15 15 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii … … 209 209 } 210 210 211 // Get path to time data files212 metadataItem = psMetadataLookup(timeMetadata, "psLib.time.tables.dir");213 if(metadataItem == NULL) {214 psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_LOOKUP_METADATA_FAILED,215 "psLib.time.tables.dir");216 return false;217 }218 tableDir = psStringCopy(metadataItem->data.V);219 220 211 // Get number of tables 221 212 metadataItem = psMetadataLookup(timeMetadata, "psLib.time.tables.n"); … … 227 218 numTables = (psS32)metadataItem->data.S32; 228 219 229 // Table file names230 metadataItem = psMetadataLookup(timeMetadata, "psLib.time.tables.files");231 if(metadataItem == NULL) {232 psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_LOOKUP_METADATA_FAILED,233 "psLib.time.tables.files");234 return false;235 }236 tableNames = psStringCopy(metadataItem->data.V);237 238 220 // Get lower range of tables 239 221 metadataItem = psMetadataLookup(timeMetadata, "psLib.time.tables.from"); … … 245 227 tablesFrom = psVectorCopy(tablesFrom, metadataItem->data.V, PS_TYPE_F64); 246 228 if(tablesFrom->n != numTables) { 229 psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_BAD_VECTOR, tablesFrom->n, numTables); 230 psFree(tablesFrom); 247 231 return false; 248 232 } … … 258 242 if(tablesTo->n != numTables) { 259 243 psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_BAD_VECTOR, tablesTo->n, numTables); 244 psFree(tablesFrom); 245 psFree(tablesTo); 260 246 return false; 261 247 } 248 249 // Get path to time data files 250 metadataItem = psMetadataLookup(timeMetadata, "psLib.time.tables.dir"); 251 if(metadataItem == NULL) { 252 psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_LOOKUP_METADATA_FAILED, 253 "psLib.time.tables.dir"); 254 psFree(tablesFrom); 255 psFree(tablesTo); 256 return false; 257 } 258 tableDir = psStringCopy(metadataItem->data.V); 259 260 // Table file names 261 metadataItem = psMetadataLookup(timeMetadata, "psLib.time.tables.files"); 262 if(metadataItem == NULL) { 263 psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_LOOKUP_METADATA_FAILED, 264 "psLib.time.tables.files"); 265 266 psFree(tablesFrom); 267 psFree(tablesTo); 268 psFree(tableDir); 269 return false; 270 } 271 tableNames = psStringCopy(metadataItem->data.V); 262 272 263 273 // Read time tables 264 274 namesPtr = tableNames; 265 275 while((tableName=getToken(&namesPtr, " ", &status)) != NULL) { 266 fullTableName = (char*)psAlloc(strlen(tableDir)+strlen(tableName)+1+1); // Add one for last dir "/" 267 fullTableName[0]='\0'; // Old strings may come back from psAlloc, so set init pos to EOL 276 277 // Form path with table name, adding one to length for last '/' that may not occur in string in cong file 278 fullTableName = (char*)psAlloc(strlen(tableDir)+strlen(tableName)+1+1); 279 280 // Old strings may come back from psAlloc(), so set initial position to EOL 281 fullTableName[0]='\0'; 268 282 strcat(fullTableName, tableDir); 269 283 strcat(fullTableName, "/"); 270 284 strcat(fullTableName, tableName); 271 285 286 // Create and read table 272 287 if(i < numTables) { 273 288 table = psLookupTableAlloc(fullTableName, tablesFrom->data.F64[i], tablesTo->data.F64[i]); 274 psLookupTableRead(table);289 table = psLookupTableRead(table); 275 290 } else { 276 291 psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_BAD_TABLE_COUNT, i+1, numTables); … … 295 310 } 296 311 297 if(numTables > i+1) {298 psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_BAD_TABLE_COUNT, i +1, numTables);312 if(numTables != i) { 313 psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_BAD_TABLE_COUNT, i, numTables); 299 314 } 300 315 … … 309 324 bool psTimeFinalize(void) 310 325 { 311 bool result = false;312 313 314 326 if(timeMetadata != NULL) { 315 327 psFree(timeMetadata); 316 result = true;317 } 318 319 return result;328 timeMetadata = NULL; 329 } 330 331 return true; 320 332 } 321 333
Note:
See TracChangeset
for help on using the changeset viewer.
