IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 10976


Ignore:
Timestamp:
Jan 8, 2007, 3:10:25 PM (19 years ago)
Author:
jhoblitt
Message:

add -faultexp & -pendingexp -faulted

Location:
trunk/ippTools/src
Files:
3 edited

Legend:

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

    r10974 r10976  
    3131static bool updateexpMode(pxConfig *config);
    3232static bool updateimfileMode(pxConfig *config);
     33static bool faultexpMode(pxConfig *config);
    3334static bool faultimfileMode(pxConfig *config);
    3435static bool rawimfileMode(pxConfig *config);
     
    3940static rawDetrendExpRow *newToRawDetrendExp(pxConfig *config, newExpRow *exp);
    4041static rawImfileRow *newToRawImfile(pxConfig *config, newImfileRow *exp);
    41 static psU32 mapCodeStrToInt(char *codeStr);
     42static psU32 mapCodeStrToInt(const char *codeStr);
     43static bool setFaultFlags(psDB *dbh, const char *tableName, psMetadata *where, const char *codeStr);
    4244
    4345
     
    5658
    5759    switch (config->mode) {
    58         MODECASE(P0TOOL_MODE_PENDINGEXP,      pendingexpMode);
    59         MODECASE(P0TOOL_MODE_PENDINGIMFILE,   pendingimfileMode);
    60         MODECASE(P0TOOL_MODE_UPDATEEXP,       updateexpMode);
    61         MODECASE(P0TOOL_MODE_UPDATEIMFILE,    updateimfileMode);
    62         MODECASE(P0TOOL_MODE_FAULTIMFILE,     faultimfileMode);
    63         MODECASE(P0TOOL_MODE_RAWIMFILE,       rawimfileMode);
     60        MODECASE(P0TOOL_MODE_PENDINGEXP,        pendingexpMode);
     61        MODECASE(P0TOOL_MODE_PENDINGIMFILE,     pendingimfileMode);
     62        MODECASE(P0TOOL_MODE_UPDATEEXP,         updateexpMode);
     63        MODECASE(P0TOOL_MODE_FAULTEXP,          faultexpMode);
     64        MODECASE(P0TOOL_MODE_UPDATEIMFILE,      updateimfileMode);
     65        MODECASE(P0TOOL_MODE_FAULTIMFILE,       faultimfileMode);
     66        MODECASE(P0TOOL_MODE_RAWIMFILE,         rawimfileMode);
    6467        default:
    6568            psAbort(argv[0], "invalid option (this should not happen)");
     
    8992    if (!status) {
    9093        psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -limit");
     94        return false;
     95    }
     96
     97    bool faulted = psMetadataLookupU64(&status, config->args, "-faulted");
     98    if (!status) {
     99        psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -faulted");
    91100        return false;
    92101    }
     
    117126    );
    118127
     128    if (faulted) {
     129        // list only faulted rows
     130        psStringAppend(&query, " %s", "AND newExp.flags > 0");
     131    } else {
     132        // don't list faulted rows
     133        psStringAppend(&query, " %s", "AND newExp.flags = 0");
     134    }
     135
    119136    // treat limit == 0 as "no limit"
    120137    if (limit) {
     
    255272}
    256273
    257 static bool faultimfileMode(pxConfig *config)
    258 {
    259     PS_ASSERT_PTR_NON_NULL(config, false);
    260 
     274static bool faultexpMode(pxConfig *config)
     275{
    261276    bool status = false;
    262277    psString codeStr = psMetadataLookupStr(&status, config->args, "-code");
     
    269284        return false;
    270285    }
     286
     287    if (!setFaultFlags(config->dbh, "newExp", config->where, codeStr)) {
     288        psError(PS_ERR_UNKNOWN, false, "failed to set set fault flag");
     289        return false;
     290    }
     291
     292    return true;
     293}
     294
     295static bool faultimfileMode(pxConfig *config)
     296{
     297    PS_ASSERT_PTR_NON_NULL(config, false);
     298
     299    bool status = false;
     300    psString codeStr = psMetadataLookupStr(&status, config->args, "-code");
     301    if (!status) {
     302        psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -code");
     303        return false;
     304    }
     305    if (!codeStr) {
     306        psError(PS_ERR_UNKNOWN, true, "-code is required");
     307        return false;
     308    }
     309
     310    if (!setFaultFlags(config->dbh, "newImfile", config->where, codeStr)) {
     311        psError(PS_ERR_UNKNOWN, false, "failed to set set fault flag");
     312        return false;
     313    }
     314
     315    return true;
     316}
     317
     318static bool setFaultFlags(psDB *dbh, const char *tableName, psMetadata *where, const char *codeStr)
     319{
     320    PS_ASSERT_PTR_NON_NULL(dbh, false);
     321    PS_ASSERT_PTR_NON_NULL(tableName, false);
     322    PS_ASSERT_PTR_NON_NULL(codeStr, false);
    271323
    272324    // map code string to numeric fault code
     
    286338    psFree(values);
    287339
    288     long rowsAffected = psDBUpdateRows(config->dbh, "newImfile", config->where, values);
     340    long rowsAffected = psDBUpdateRows(dbh, tableName, where, values);
    289341    if (rowsAffected < 0) {
    290342        // database error
     
    300352    return true;
    301353}
     354
    302355
    303356static bool updateexpMode(pxConfig *config)
     
    10881141}
    10891142
    1090 static psU32 mapCodeStrToInt(char *codeStr)
     1143static psU32 mapCodeStrToInt(const char *codeStr)
    10911144{
    10921145    if (strcasestr(codeStr, "none")) {
  • trunk/ippTools/src/regtool.h

    r10972 r10976  
    2828    P0TOOL_MODE_PENDINGIMFILE,
    2929    P0TOOL_MODE_UPDATEEXP,
     30    P0TOOL_MODE_FAULTEXP,
    3031    P0TOOL_MODE_UPDATEIMFILE,
    3132    P0TOOL_MODE_FAULTIMFILE,
  • trunk/ippTools/src/regtoolConfig.c

    r10973 r10976  
    5555    psMetadataAddU64(pendingexpArgs, PS_LIST_TAIL, "-limit",  0,
    5656        "limit result set to N items", 0);
     57    psMetadataAddBool(pendingexpArgs, PS_LIST_TAIL, "-faulted",  0,
     58        "only return imfiles with a fault status set", false);
    5759    psMetadataAddBool(pendingexpArgs, PS_LIST_TAIL, "-simple",  0,
    5860        "use the simple output format", false);
     
    118120    psMetadataAddBool(updateexpArgs, PS_LIST_TAIL, "-detrend",  0,
    119121        "declare this as detrend data", false);
     122
     123    // -faultexp
     124    psMetadata *faultexpArgs = psMetadataAlloc();
     125    psMetadataAddStr(faultexpArgs, PS_LIST_TAIL, "-exp_tag",  0,
     126        "search by exposure ID", NULL);
     127    psMetadataAddStr(faultexpArgs, PS_LIST_TAIL, "-code",  0,
     128        "set fault code (required)", NULL);
    120129   
    121130    // -updateimfile
     
    198207    psMetadata *argSets = psMetadataAlloc();
    199208    // find which mode we're running under
    200     PXTOOL_MODE("-pendingexp",   P0TOOL_MODE_PENDINGEXP,  pendingexpArgs);
    201     PXTOOL_MODE("-pendingimfile",P0TOOL_MODE_PENDINGIMFILE,pendingimfileArgs);
    202     PXTOOL_MODE("-updateexp",    P0TOOL_MODE_UPDATEEXP,   updateexpArgs);
    203     PXTOOL_MODE("-updateimfile", P0TOOL_MODE_UPDATEIMFILE,updateimfileArgs);
    204     PXTOOL_MODE("-faultimfile",  P0TOOL_MODE_FAULTIMFILE, faultimfileArgs);
    205     PXTOOL_MODE("-rawimfile",    P0TOOL_MODE_RAWIMFILE,   rawimfileArgs);
     209    PXTOOL_MODE("-pendingexp",   P0TOOL_MODE_PENDINGEXP,    pendingexpArgs);
     210    PXTOOL_MODE("-pendingimfile",P0TOOL_MODE_PENDINGIMFILE, pendingimfileArgs);
     211    PXTOOL_MODE("-updateexp",    P0TOOL_MODE_UPDATEEXP,     updateexpArgs);
     212    PXTOOL_MODE("-faultexp",     P0TOOL_MODE_FAULTEXP,      faultexpArgs);
     213    PXTOOL_MODE("-updateimfile", P0TOOL_MODE_UPDATEIMFILE,  updateimfileArgs);
     214    PXTOOL_MODE("-faultimfile",  P0TOOL_MODE_FAULTIMFILE,   faultimfileArgs);
     215    PXTOOL_MODE("-rawimfile",    P0TOOL_MODE_RAWIMFILE,     rawimfileArgs);
    206216
    207217    bool argErr = false;
Note: See TracChangeset for help on using the changeset viewer.