IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
May 17, 2006, 6:17:58 PM (20 years ago)
Author:
jhoblitt
Message:

complete addstacMode()

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ippTools/src/dettool.c

    r7128 r7142  
    1616
    1717static detInputExpRow *rawDetrenTodetInputExpRow(rawDetrendExpRow *rawExp, psS32 det_id);
    18 static psArray *searchRawImfiles(pxConfig *config);
     18static psArray *searchRawImfiles(pxConfig *config, psMetadata *where);
    1919
    2020int main(int argc, char **argv)
     
    159159
    160160    // search from rawImfiles
    161     psArray *rawImfiles = searchRawImfiles(config);
     161    psArray *rawImfiles = searchRawImfiles(config, NULL);
    162162
    163163    // print imfile list
     
    177177}
    178178
    179 static psArray *searchRawImfiles(pxConfig *config)
     179static psArray *searchRawImfiles(pxConfig *config, psMetadata *where)
    180180{
    181181    PS_ASSERT_PTR_NON_NULL(config, NULL);
     182
     183    // use the default where if "where" is NULL
     184    if (!where) {
     185        where = config->where;
     186    }
    182187
    183188    // select exp_ids from detInputExp matching det_idp
    184189    // where query should be pre-generated
    185190    psArray *detInputExp =
    186         detInputExpSelectRowObjects(config->dbh, config->where, 0);
     191        detInputExpSelectRowObjects(config->dbh, where, 0);
    187192    if (!detInputExp) {
    188193        psError(PS_ERR_UNKNOWN, false, "no rawDetrendExp rows found");
     
    321326    PS_ASSERT_PTR_NON_NULL(config, false);
    322327
    323     // det_id, class_id, uri, & recipe are required
     328    // det_id, class_id, uri, stats, & recipe are required
    324329    bool status = false;
    325330    psString det_id = psMetadataLookupStr(&status, config->args, "-det_id");
     
    350355
    351356    // correlate the class_id against the input exposure(s)
    352     psArray *rawImfiles = searchRawImfiles(config);
     357
     358    // we have to generate our own where claus as we want to search only by the
     359    // det_id
     360    psMetadata *where = psMetadataAlloc();
     361    if (!psMetadataAddS32(where, PS_LIST_TAIL, "det_id", 0, "==",
     362            (psS32)atoi(det_id))) {
     363        psError(PS_ERR_UNKNOWN, false, "failed to add item exp_id");
     364        psFree(where);
     365        return false;
     366    }
     367
     368    psArray *rawImfiles = searchRawImfiles(config, where);
    353369
    354370    bool valid_class_id = false;
    355     for (long i = 0; i < psArrayLength(rawImfiles); i++) {
    356         if (class_id == ((rawImfileRow *)rawImfiles->data[i])->class_id) {
    357             valid_class_id = true;
    358             break;
     371    if (rawImfiles) {
     372        for (long i = 0; i < psArrayLength(rawImfiles); i++) {
     373            if (strcmp(class_id, ((rawImfileRow *)rawImfiles->data[i])->class_id) == 0) {
     374                valid_class_id = true;
     375                break;
     376            }
    359377        }
    360     }
    361     psFree(rawImfiles);
    362 
     378        psFree(rawImfiles);
     379    }
     380   
    363381    if (!valid_class_id) {
    364382        psError(PS_ERR_UNKNOWN, true,
     
    371389        (psS32)atol(det_id), class_id, uri, stats, recipe
    372390    );   
    373     psFree(rawImfiles);
    374391
    375392    // insert the new row into the detProcessedImfile table
Note: See TracChangeset for help on using the changeset viewer.