IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 2365


Ignore:
Timestamp:
Nov 15, 2004, 10:15:30 AM (22 years ago)
Author:
harman
Message:

Updates resulting from testing

Location:
trunk/psLib/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/psLib/src/astro/psTime.c

    r2318 r2365  
    1010 *  @author Ross Harman, MHPCC
    1111 *
    12  *  @version $Revision: 1.42 $ $Name: not supported by cvs2svn $
    13  *  @date $Date: 2004-11-10 18:27:03 $
     12 *  @version $Revision: 1.43 $ $Name: not supported by cvs2svn $
     13 *  @date $Date: 2004-11-15 20:15:30 $
    1414 *
    1515 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    209209    }
    210210
    211     // Get path to time data files
    212     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 
    220211    // Get number of tables
    221212    metadataItem = psMetadataLookup(timeMetadata, "psLib.time.tables.n");
     
    227218    numTables = (psS32)metadataItem->data.S32;
    228219
    229     // Table file names
    230     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 
    238220    // Get lower range of tables
    239221    metadataItem = psMetadataLookup(timeMetadata, "psLib.time.tables.from");
     
    245227    tablesFrom = psVectorCopy(tablesFrom, metadataItem->data.V, PS_TYPE_F64);
    246228    if(tablesFrom->n != numTables) {
     229        psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_BAD_VECTOR, tablesFrom->n, numTables);
     230        psFree(tablesFrom);
    247231        return false;
    248232    }
     
    258242    if(tablesTo->n != numTables) {
    259243        psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_BAD_VECTOR, tablesTo->n, numTables);
     244        psFree(tablesFrom);
     245        psFree(tablesTo);
    260246        return false;
    261247    }
     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);
    262272
    263273    // Read time tables
    264274    namesPtr = tableNames;
    265275    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';
    268282        strcat(fullTableName, tableDir);
    269283        strcat(fullTableName, "/");
    270284        strcat(fullTableName, tableName);
    271285
     286        // Create and read table
    272287        if(i < numTables) {
    273288            table = psLookupTableAlloc(fullTableName, tablesFrom->data.F64[i], tablesTo->data.F64[i]);
    274             psLookupTableRead(table);
     289            table = psLookupTableRead(table);
    275290        } else {
    276291            psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_BAD_TABLE_COUNT, i+1, numTables);
     
    295310    }
    296311
    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);
    299314    }
    300315
     
    309324bool psTimeFinalize(void)
    310325{
    311     bool result = false;
    312 
    313 
    314326    if(timeMetadata != NULL) {
    315327        psFree(timeMetadata);
    316         result = true;
    317     }
    318 
    319     return result;
     328        timeMetadata = NULL;
     329    }
     330
     331    return true;
    320332}
    321333
  • trunk/psLib/src/astronomy/psTime.c

    r2318 r2365  
    1010 *  @author Ross Harman, MHPCC
    1111 *
    12  *  @version $Revision: 1.42 $ $Name: not supported by cvs2svn $
    13  *  @date $Date: 2004-11-10 18:27:03 $
     12 *  @version $Revision: 1.43 $ $Name: not supported by cvs2svn $
     13 *  @date $Date: 2004-11-15 20:15:30 $
    1414 *
    1515 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    209209    }
    210210
    211     // Get path to time data files
    212     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 
    220211    // Get number of tables
    221212    metadataItem = psMetadataLookup(timeMetadata, "psLib.time.tables.n");
     
    227218    numTables = (psS32)metadataItem->data.S32;
    228219
    229     // Table file names
    230     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 
    238220    // Get lower range of tables
    239221    metadataItem = psMetadataLookup(timeMetadata, "psLib.time.tables.from");
     
    245227    tablesFrom = psVectorCopy(tablesFrom, metadataItem->data.V, PS_TYPE_F64);
    246228    if(tablesFrom->n != numTables) {
     229        psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_BAD_VECTOR, tablesFrom->n, numTables);
     230        psFree(tablesFrom);
    247231        return false;
    248232    }
     
    258242    if(tablesTo->n != numTables) {
    259243        psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_BAD_VECTOR, tablesTo->n, numTables);
     244        psFree(tablesFrom);
     245        psFree(tablesTo);
    260246        return false;
    261247    }
     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);
    262272
    263273    // Read time tables
    264274    namesPtr = tableNames;
    265275    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';
    268282        strcat(fullTableName, tableDir);
    269283        strcat(fullTableName, "/");
    270284        strcat(fullTableName, tableName);
    271285
     286        // Create and read table
    272287        if(i < numTables) {
    273288            table = psLookupTableAlloc(fullTableName, tablesFrom->data.F64[i], tablesTo->data.F64[i]);
    274             psLookupTableRead(table);
     289            table = psLookupTableRead(table);
    275290        } else {
    276291            psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_BAD_TABLE_COUNT, i+1, numTables);
     
    295310    }
    296311
    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);
    299314    }
    300315
     
    309324bool psTimeFinalize(void)
    310325{
    311     bool result = false;
    312 
    313 
    314326    if(timeMetadata != NULL) {
    315327        psFree(timeMetadata);
    316         result = true;
    317     }
    318 
    319     return result;
     328        timeMetadata = NULL;
     329    }
     330
     331    return true;
    320332}
    321333
Note: See TracChangeset for help on using the changeset viewer.